如何提升写leveldb的效率?
Tachone opened this issue · comments
我们的程序使用两个paxos group,启用了checkpoint机制,机器是ssd硬盘。在写请求qps很高的情况下有时候会出现replay线程写leveldb的速度很大程度上落后于当前内存中的状态,造成checkpoint落后很多。当paxos log不断增加时, 有可能一直追不上最新的状态, 但是我们发现这种情况下磁盘的io使用率并不高, 想问下你们有没有遇到过这种情况, 或者有没有建议的优化方式?
可以试下 RocksDB
replay线程是从paxos log不断读取数据重放状态机,这里的性能取决于ExecuteForCheckpoint的速度,不会写leveldb. Tachone notifications@github.com 于2018年10月15日周一 上午11:40写道:
…
我们的程序使用两个paxos group,启用了checkpoint机制,机器是ssd硬盘。在写请求qps很高的情况下有时候会出现replay线程写leveldb的速度很大程度上落后于当前内存中的状态,造成checkpoint落后很多。当paxos log不断增加时, 有可能一直追不上最新的状态, 但是我们发现这种情况下磁盘的io使用率并不高, 想问下你们有没有遇到过这种情况, 或者有没有建议的优化方式? — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <#148>, or mute the thread https://github.com/notifications/unsubscribe-auth/ASn3_Pe20_IZx6VSsn4NpawHFE7TU17Eks5ulAOWgaJpZM4XbiRN .
-- Best Regards, Lynncui
是的。 我们的镜像数据存储在leveldb中, ExecuteForCheckpoint() 中做的就是把paxos log重放写进leveldb, 有什么建议的优化方式吗?
使用rocksdb 是一种可行的方法。