RocksDB和LevelDB都属于嵌入式数据库,内部没有设计成C/S网络结构,必须和服务部署在同一台服务器。LevleDB是Google的两位Fellow(Jeaf Dean和Sanjay Ghemawat)设计和开发的嵌入式Key-Value系统,读写性能非常彪悍,官方网站报道其写性能40万/s,读性能达到6万/s,写操作要远快于读操作。RocksDB是Facebook公司在LevelDB基础之上开发的一个嵌入式Key-Value系统,在很多方面对LevelDB做了优化和增强,更像是一个完整的产品,比如:
LevelDB是单线程合并文件,RocksDb可以支持多线程合并文件,充分利用多核的特性,加快文件合并的速度,避免文件合并期间引起系统停顿;
LevelDB只有一个Memtable,若Memtable满了还没有来得及持久化,则会引起系统停顿,RocksDB可以根据需要开辟多个Memtable;
LevelDB只能获取单个Key-Value,RocksDB支持一次获取多个Key-Value。
LevleDB不支持备份,RocksDB支持全量和增量备份。
微信开源的PaxosStore,默认就是以RocksDB作为其单机的数据读写引擎,上层通过Paxos协议来保证多副本之间的数据一致性。
开源数据库TiDB,其中的TiKV组件(Server)负责Key-Value的读写,底层也是采用的RocksDB来作为单机的数据读写引擎,上层通过Raft协议来保证多副本之间的数据一致性。
文章转载自jameswhale的技术人生,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。