Paper Reading:【FAST 2016】Wisckey-Separating Keys from Values

LSM-Tree and LevelDB

Wisckey 是針對 LSM-Tree 在 SSD 存儲下的優(yōu)化呀打。LSM-Tree 目前應用已經很廣了钉鸯,主要應用在日志系統(tǒng)和KeyValue存儲引擎,比較著名的實現是LevelDB。LSM-Tree 利用了磁盤具有順序讀寫比隨機讀寫快的特點腿倚,提供了可持久化的高性能 KeyValue 存儲囤萤。

LSM-Tree 主要有以下特點:

  • 隨機 IO 會轉化為順序 IO昼窗,降低了由于磁盤隨機IO帶來的延遲(latency)
  • 每個層級滿了之后,會往更高層級合并文件涛舍,會帶來寫的放大
  • 對于新寫入數據訪問友好澄惊,但是訪問一些冷數據的話會造成讀放大

由于 LSM-Tree 存在讀寫放大的問題,首先會造成是性能損耗富雅,還有一個會影響磁盤壽命掸驱。

WiscKey

WiscKey 針對讀寫放大的問題,主要采取了 Key-Value 分離的方案没佑。

在 Key-Value 分離之后毕贼,首先 LSM-Tree 整體會縮小,即使往上層合并 SSTable 文件的時候蛤奢,由于樹的節(jié)點小了鬼癣,造成的寫放大規(guī)模也會相應的降低,那么相應地讀放大問題也會相應減弱啤贩。


Key-Value 分離

在論文中提到的一個例子待秃,假設一個 key 大小為 16-B,value 指針為 12-B痹屹,value 為 1-KB章郁,那么當數據量為 100GB的時候,此時的 LSM-Tree 實際是2GB左右痢掠,能夠輕易的緩存在內存里面驱犹。

挑戰(zhàn)

Key-Value 分離當然也帶來了很多的挑戰(zhàn):

  • 并發(fā)范圍查詢(Range Query)
  • 垃圾回收(Garbage Collection)
  • 數據一致性(Consistency)

下面會繼續(xù)討論 WiscKey 是怎么解決這些問題的

并發(fā)范圍查詢

首先在一般的 HHD 硬盤嘲恍,肯定隨機訪問的性能是不好的,那么對于 SSD 來說雄驹,在并發(fā)的情況下佃牛,隨機讀寫性能也沒有那么差。實際上WiscKey 就是針對 LSM-Tree 在 SSD 上的優(yōu)化医舆。

SSD中順序IO和隨機IO

如上圖俘侠,那么我們控制好對 SSD 數據塊的寫入大小和寫入頻率,理論上隨機讀寫能夠得到接近順序讀寫的性能蔬将。

垃圾回收

WiscKey 用了一種特殊的垃圾回收機制:在 tail 一塊一塊的讀數據爷速,找到有效的數據就插入 head ,無效就拋棄霞怀。雖然這樣能夠較好的收集磁盤空間惫东,但是其實也是存在讀寫放大的問題,需要控制好垃圾回收的時機和頻率毙石。


image.png

數據一致性

由于 WiscKey 的 Key 和 Value 是分離的廉沮,很容易造成數據不一致。

WiscKey 提出了相應的解決方案徐矩,其實主要總結分位以下兩種情況:

Key 有效 Value 無效

給用戶返回 Value 不存在即可滞时。但是這里Value無效其實有兩種情況,一是未寫入Value滤灯,二是Value不完整坪稽。后者可以通過一些磁盤校驗位解決問題。

Key 不在 Value 有效

垃圾回收拋棄此 Value即可

參考文章:

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末鳞骤,一起剝皮案震驚了整個濱河市窒百,隨后出現的幾起案子,更是在濱河造成了極大的恐慌弟孟,老刑警劉巖贝咙,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異拂募,居然都是意外死亡庭猩,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門陈症,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蔼水,“玉大人,你說我怎么就攤上這事录肯∨恳福” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長优炬。 經常有香客問我颁井,道長,這世上最難降的妖魔是什么蠢护? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任雅宾,我火速辦了婚禮,結果婚禮上葵硕,老公的妹妹穿的比我還像新娘眉抬。我一直安慰自己,他們只是感情好懈凹,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布蜀变。 她就那樣靜靜地躺著,像睡著了一般介评。 火紅的嫁衣襯著肌膚如雪库北。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天们陆,我揣著相機與錄音贤惯,去河邊找鬼。 笑死棒掠,一個胖子當著我的面吹牛,可吹牛的內容都是我干的屁商。 我是一名探鬼主播烟很,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蜡镶!你這毒婦竟也來了雾袱?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤官还,失蹤者是張志新(化名)和其女友劉穎芹橡,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體望伦,經...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡林说,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了屯伞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腿箩。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖劣摇,靈堂內的尸體忽然破棺而出珠移,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布钧惧,位于F島的核電站暇韧,受9級特大地震影響,放射性物質發(fā)生泄漏浓瞪。R本人自食惡果不足惜懈玻,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望追逮。 院中可真熱鬧酪刀,春花似錦、人聲如沸钮孵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽巴席。三九已至历涝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間漾唉,已是汗流浹背荧库。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赵刑,地道東北人分衫。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像般此,于是被迫代替她去往敵國和親蚪战。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內容