RocksDB 写入流程详解
摘要: 最初的寫入流程,繼承自 leveldb,多個(gè) 寫線程組成一個(gè) group, leader 負(fù)責(zé) group 的 WAL 及 memtable 的提交,提交完后喚醒所有的 follwer,向上層返回。 支持 allow_concurrent_memtable_write 選項(xiàng),在1的基礎(chǔ)上,leader 提交完 WAL 后,group 里所有線程并發(fā)寫 memtable。
點(diǎn)此查看原文
最初的寫入流程,繼承自 leveldb,多個(gè) 寫線程組成一個(gè) group, leader 負(fù)責(zé) group 的 WAL 及 memtable 的提交,提交完后喚醒所有的 follwer,向上層返回。
支持 allow_concurrent_memtable_write 選項(xiàng),在1的基礎(chǔ)上,leader 提交完 WAL 后,group 里所有線程并發(fā)寫 memtable。原理如下圖所示,這個(gè)改進(jìn)在 sync=0的時(shí)候,有3倍寫入性能提升,在 sync=1時(shí),有2倍性能提升
支持 enable_pipelined_write 選項(xiàng),在2的基礎(chǔ)上,引入流水線,第一個(gè) group 的 WAL 提交后,在執(zhí)行 memtable 寫入時(shí),下一個(gè) group 同時(shí)開啟,已到達(dá) Pipeline 寫入的效果。
掃描二維碼獲取更多消息:?
總結(jié)
以上是生活随笔為你收集整理的RocksDB 写入流程详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nacos 计划发布v0.2版本,进一步
- 下一篇: 老司机教你分析日志:分析用户的地理位置信