Tag Archives: transaction

用 Go 寫的 Badger

Dgraph 在推銷自家發展出來的 Badger:「Introducing Badger: A fast key-value store written natively in Go」。 標靶是 RocksDB,號稱比 RocksDB 快好幾倍: Based on benchmarks, Badger is at least 3.5x faster than RocksDB when doing random reads. For value sizes between 128B to 16KB, data loading … Continue reading

Posted in Computer, Library, Murmuring, Programming, Software | Tagged , , , , , , , , , , , , , , | Leave a comment

MySQL GTID Replication 的惡搞修復

Percona 的「Database Daily Ops Series: GTID Replication」這篇在講當 MySQL 的 GTID Replication 爛掉時可能的修法,算是頗惡搞的方法,修好後還是要跑 pt-table-checksum 確認兩邊的資料是否一致,如果有狀況的話還是得拿出 pt-table-sync 同步。 第一招是用 pt-slave-restart,跳過會造成問題 SQL,讓他強制同步 (唔): This passes the master’s UUID and it skips all global transactions breaking replication on a specific slave server[.] 第二招是 mysqlslavetrx,也是類似的作法,只是拿的是 … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Software | Tagged , , , , , , , , , , , | Leave a comment

MyRocks 與 InnoDB 對於不同硬碟效能的差異

在「MyRocks: use less IO on writes to have more IO for reads」這邊有提到當使用 Disk Array、Slow SSD 與 Fast SSD 時效能 MyRocks 與 InnoDB 的效能差異。 可以看到當 I/O 層能提供的 IOPS capacity 愈高,MyRocks 與 InnoDB 之間的差異就愈低... 換句話說,RocksDB 對 IOPS 比較有效率的應用,這點在「Why is MyRocks more write-efficient … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Software | Tagged , , , , , , , , | Leave a comment

InnoDB 的 Isolation Level 以及 Performance Schema 對效能的影響

雖然 Mark Callaghan 現在的主力都在 MyRocks 上,但他還是對 InnoDB 上的效能頗關注 (畢竟是個成熟而且競爭的產品)。而這篇「Sysbench, InnoDB, transaction isolation and the performance schema」講到 MySQL 5.6.26 裡的 InnoDB,了解 isolation level 與 performance schema 對效能的差異。結果可以在這邊翻到。 關掉 performance schema 會讓效能變好是預期的,不過看起來比預期小很多。另外某些情況下 RR (REPEATABLE-READ) 的效能會比 RC (READ-COMMITTED) 好倒是頗意外,這邊也有給出原因: Using repeatable-read boosts performance … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Software | Tagged , , , , , , , , , , , | Leave a comment

Facebook 備份 MySQL 資料並且確認正確性的方法

Facebook 再多花了一些篇幅數對於 MySQL 資料備份以及確認正確性的方法:「Continuous MySQL backup validation: Restoring backups」。 首先是 Continuous Restore Tier (CRT) 這塊,可以看到他們在這塊很仰賴 HDFS 當作備份的第一層基地,包括了 Full logical backups (用 mysqldump)、Differential (diff) backups 以及 Binary log (binlog) backups (stream 進 HDFS)。 另外上了 GTID,對於後續的處理會比較方便: All of our database servers also … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Network, Social, Software | Tagged , , , , , , , , , , , , , , , , | Leave a comment

PostgreSQL 對 Vacuum 效能的改善

在「No More Full-Table Vacuums」這邊提到了 PostgreSQL 在 vacuum 時效能的大幅改善,尤其是大型資料庫在 vacuum 時需要對整個表格從頭到尾掃一次以確保 transaction id 的正確性: Current releases of PostgreSQL need to read every page in the database at least once every 2 billion write transactions (less, with default settings) to verify that … Continue reading

Posted in Computer, Database, Murmuring, PostgreSQL, Software | Tagged , , , , , , , , , , | Leave a comment

PostgreSQL 9.5 釋出,UPSERT!

PostgreSQL 9.5 正式發行,這次新增了大家期待已久的 UPSERT 功能:「PostgreSQL 9.5: UPSERT, Row Level Security, and Big Data」。 SQL:2003 正式定義出 UPSERT,被稱為 Merge,不過看網路上一般還是比較習慣 UPSERT 這個用法: A relational database management system uses SQL MERGE (also called upsert) statements to INSERT new records or UPDATE existing records depending … Continue reading

Posted in Computer, Database, Murmuring, PostgreSQL, Programming, Software | Tagged , , , , , , , , , , , | Leave a comment

繼續學 Isolation...

在「測試 MariaDB 上 Galera Cluster 的 Isolation」這邊與「從頭學一次 Isolation level 的 REPEATABLE-READ 與 SERIALIZABLE」對應了 Stripe 的「Call me Maybe: MariaDB Galera Cluster」以及 Percona 的「Clarification on “Call me Maybe: MariaDB Galera Cluster”」這兩篇文章,兩邊在空中交火... 而「Call me Maybe: Percona XtraDB Cluster」這篇是目前最新的一篇 (文章日期有點怪怪的,不應該是 2015/09/04)。 畢竟 Galera Cluster … Continue reading

Posted in Computer, Database, MariaDB, Murmuring, MySQL, Software | Tagged , , , , , , , , , , , , , | Leave a comment

從頭學一次 Isolation level 的 REPEATABLE-READ 與 SERIALIZABLE

在「測試 MariaDB 上 Galera Cluster 的 Isolation」這篇提到了 Stripe 的 Kyle Kingsbury 寫了「Call me Maybe: MariaDB Galera Cluster」這篇文章,在討論 Galera Cluster 的 Isolation 問題。 Percona 的 CTO Vadim Tkachenko 寫了回應的文章:「Clarification on “Call me Maybe: MariaDB Galera Cluster”」。 看完後再跑去翻了一些資料,首先是 SQL 92 對 Isolation … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Programming, Software | Tagged , , , , , , , , , , , , , , , | Leave a comment

Berkeley DB 的介紹

在滿滿都是 NoSQL 的世代中,意外在「Berkeley DB: Architecture」這邊看到 Berkeley DB 的介紹... 2006 年 Berkeley DB 的公司 Sleepycat 被 Oracle 收購。在收購後 Oracle 改變了 open source 授權部份,從之前的 Sleepycat License 改成了 AGPLv3。 Berkeley DB 算是早期功能很完整的 database library,由於 page level locking、crash-safe 加上有 transaction,也曾經被 MySQL 拿去當作 engine,不過在 MySQL … Continue reading

Posted in Computer, Database, Murmuring, Software | Tagged , , , , , , , , , , , , , , , , , , , , , , | Leave a comment