MySQL分支MyRocks
-
MyRocks:RocksDB是facebook基于LevelDB实现的,目前为facebook内部大量业务提供服务。经过facebook大量工作,将RocksDB为MySQL的一个存储引擎移植到MySQL,称之为MyRocks。 经过两年的发展,MyRocks已经比较成熟(RC阶段),现已进入了facebook MySQL的主分支了。MyRocks是开源的,参见git 。
RocksDB与innodb的比较:innodb空间浪费, B tree分裂导致page内有较多空闲,page利用率不高。innodb现有的压缩效率也不高,压缩以block为单位,也会造成浪费。
写入放大:innodb 更新以页为单位,最坏的情况更新N行会更新N个页。RocksDB append only方式。另外,innodb开启double write也会增加写入。RocksDB对齐开销小:SST file (默认2MB)需要对齐,但远大于4k, RocksDB_block_size(默认4k) 不需要对齐,因此对齐浪费空间较少。
RocksDB索引前缀相同值压缩存储:RocksDB占总数据量90%的最底层数据,行内不需要存储系统列seqid。(innodb聚簇索引列包含trxid,roll_ptr等信息。
MyRocks也是基于行锁,锁信息都保存在内存中。MyRocks也支持MVCC,MVCC通过快照的方式实现,类似于PostgreSQL。MyRocks目前只支持两种隔离级别,RC和RR。RR表现和innodb并不一样,RocksDB 的快照不是在事务开始的时候建立,而是延迟到第一次读的时候建立.
项目地址: http://myrocks.io/
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏