rocksDB要點

rocksDB定義

快速存儲系統,充分挖掘 Flash or RAM 硬件的讀寫特性,支持單個 KV 的讀寫以及批量讀寫。本質:犧牲了一部分讀的性能和增加了合併的開銷,換取了高效的寫性能。

LSM-Tree(Log-Structured-Merge-Tree)的理解

  1. 簡述:內存中構建“小樹”,到一定的規模,Merge到磁盤的“大樹”。
  2. 多level的文件格式:最熱最新的數據L0層,最冷最老的數據LN層的佈局,磁盤通過B樹索引。
  3. B樹+“有序文件集”批量寫入(定義爲同level)
  4. 數據按key有序,合併不同file、level上的數據時,類似merge-join。

 

基本文件格式

  1. memtable:內存文件數據格式,新數據進內存。
  2. sstfile:內容是有序的。
  3. logfile:

放大因子

  1. 寫放大:例如,用戶寫入了10字節,但實際寫到磁盤的有100字節。
  2. 讀放大:例如,用戶要讀取一個page,但實際下面讀取了3個pages。
  3. 空間放大:數據庫可能是100 MB,但實際佔用了200 MB的磁盤空間。
發佈了80 篇原創文章 · 獲贊 116 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章