基于LSM-Tree的持久化存儲(chǔ)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
發(fā)布時(shí)間:2020-05-30 21:52
【摘要】:隨著互聯(lián)網(wǎng)的高速發(fā)展,人們生活的各個(gè)方面都離不開(kāi)互聯(lián)網(wǎng),人們?cè)谙硎芑ヂ?lián)網(wǎng)帶來(lái)便捷生活的同時(shí),也使得互聯(lián)網(wǎng)數(shù)據(jù)高速增長(zhǎng)。如何快速查詢和存儲(chǔ)海量數(shù)據(jù)已成為人們研究的重點(diǎn),這也使得NoSQL數(shù)據(jù)庫(kù)快速發(fā)展。比較典型的NoSQL數(shù)據(jù)存儲(chǔ)形式是鍵值存儲(chǔ),即一個(gè)鍵對(duì)應(yīng)一個(gè)值。鍵值存儲(chǔ)系統(tǒng)可以理解為一個(gè)可持久化的更大容量的哈希表。存儲(chǔ)系統(tǒng)最重要的部分是存儲(chǔ)引擎,本文研究了當(dāng)前最流行的日志結(jié)構(gòu)合并樹(shù)(LSM-Tree)存儲(chǔ)引擎;谌罩窘Y(jié)構(gòu)合并樹(shù)的存儲(chǔ)引擎核心思想是順序?qū)懭?將修改的數(shù)據(jù)排序后保存在內(nèi)存,達(dá)到一定規(guī)模后再將內(nèi)存中修改的數(shù)據(jù)批量刷入磁盤,并且在寫(xiě)入過(guò)程中與之前已經(jīng)存在的磁盤數(shù)據(jù)進(jìn)行合并,合并的過(guò)程中丟棄掉舊的鍵值數(shù)據(jù)。日志結(jié)構(gòu)合并樹(shù)最大的問(wèn)題就是合并操作產(chǎn)生的磁盤I/O開(kāi)銷,極大地影響了寫(xiě)性能,嚴(yán)重情況下寫(xiě)速度取決于合并速度。本文的研究目的就是解決日志結(jié)構(gòu)合并樹(shù)的寫(xiě)放大問(wèn)題,提高合并效率,從而提升日志結(jié)構(gòu)合并樹(shù)的寫(xiě)入性能。與傳統(tǒng)的日志結(jié)構(gòu)合并樹(shù)實(shí)現(xiàn)相比,本文通過(guò)增加一層索引層,并采用鍵值分開(kāi)存儲(chǔ)的方式。鍵的后面緊跟著的不再是值,而是指向值所在的地址,稱其為值索引,以此避免值參與合并壓縮操作,從而減少合并帶來(lái)的磁盤I/O開(kāi)銷,提升合并速度。鍵值分開(kāi)存儲(chǔ)在犧牲一定讀性能的前提下,大大減少了合并操作引起的磁盤I/O開(kāi)銷,極大地提高了寫(xiě)性能。本文基于日志結(jié)構(gòu)合并樹(shù),采取了鍵值分離的存儲(chǔ)方式,增加了索引層以及獨(dú)特的舊數(shù)據(jù)回收算法,設(shè)計(jì)與實(shí)現(xiàn)了一個(gè)鍵值存儲(chǔ)系統(tǒng)。并與基于傳統(tǒng)的日志結(jié)構(gòu)合并樹(shù)的存儲(chǔ)系統(tǒng)Leveldb進(jìn)行讀寫(xiě)性能對(duì)比,實(shí)驗(yàn)結(jié)果表明了本系統(tǒng)具有更好的寫(xiě)性能,特別是在值字節(jié)數(shù)較多以及寫(xiě)壓力大的場(chǎng)景下,性能優(yōu)勢(shì)更加明顯。
【圖文】:
.2 第零層磁盤索引表文件測(cè)試因?yàn)榇疟P索引表模塊的第零層文件比較特殊,文件間鍵范圍沖突,為測(cè)試件讀寫(xiě)是否正常,首先插入兩條鍵值對(duì)<foo,v1>和<zoo,z1>,接著強(qiáng)制存索引表的內(nèi)容寫(xiě)入磁盤索引表模塊的第零層文件;再插入鍵值對(duì)<foo,強(qiáng)制刷入第零層文件,此時(shí)第零層有兩個(gè)文件,均包含有關(guān) foo 的鍵值對(duì)用讀接口查詢 foo 對(duì)應(yīng)的值,用測(cè)試框架判斷是否為最新值 v2。.3 故障恢復(fù)測(cè)試為模擬故障恢復(fù),先向系統(tǒng)插入鍵值對(duì)<foo,v1>,以及鍵值對(duì)<bar,v2>兩條鍵值記錄的索引記錄均在內(nèi)存索引表中,隨后關(guān)閉數(shù)據(jù)庫(kù)并重新打開(kāi)通過(guò)數(shù)據(jù)日志文件的日志重新生成兩條鍵值記錄的索引記錄,調(diào)用讀接取 foo 對(duì)應(yīng)的值,用測(cè)試框架判斷是否為最新值 v2。除了上述功能測(cè)試外,測(cè)試模塊還有其他上百個(gè)功能測(cè)試用例,,因篇幅有不再詳細(xì)介紹,測(cè)試結(jié)果如圖 5-1 所示。
第五章 測(cè)試與分析試系統(tǒng)對(duì)大值(值字節(jié)數(shù)較多)隨機(jī)寫(xiě)入的性能,將每個(gè)寫(xiě)入的鍵值為 100000 個(gè)字節(jié),隨機(jī)寫(xiě)入若干條這樣的鍵值記錄,并根據(jù)總時(shí)間計(jì)機(jī)寫(xiě)一條大值記錄所花費(fèi)的時(shí)間。 測(cè)試結(jié)果與分析試方案提到性能測(cè)試共分為五組,每組測(cè)試的數(shù)據(jù)規(guī)模不一樣,下面系統(tǒng)在不同數(shù)據(jù)規(guī)模下的測(cè)試結(jié)果。
【學(xué)位授予單位】:電子科技大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2019
【分類號(hào)】:TP333;TP311.13
本文編號(hào):2688778
【圖文】:
.2 第零層磁盤索引表文件測(cè)試因?yàn)榇疟P索引表模塊的第零層文件比較特殊,文件間鍵范圍沖突,為測(cè)試件讀寫(xiě)是否正常,首先插入兩條鍵值對(duì)<foo,v1>和<zoo,z1>,接著強(qiáng)制存索引表的內(nèi)容寫(xiě)入磁盤索引表模塊的第零層文件;再插入鍵值對(duì)<foo,強(qiáng)制刷入第零層文件,此時(shí)第零層有兩個(gè)文件,均包含有關(guān) foo 的鍵值對(duì)用讀接口查詢 foo 對(duì)應(yīng)的值,用測(cè)試框架判斷是否為最新值 v2。.3 故障恢復(fù)測(cè)試為模擬故障恢復(fù),先向系統(tǒng)插入鍵值對(duì)<foo,v1>,以及鍵值對(duì)<bar,v2>兩條鍵值記錄的索引記錄均在內(nèi)存索引表中,隨后關(guān)閉數(shù)據(jù)庫(kù)并重新打開(kāi)通過(guò)數(shù)據(jù)日志文件的日志重新生成兩條鍵值記錄的索引記錄,調(diào)用讀接取 foo 對(duì)應(yīng)的值,用測(cè)試框架判斷是否為最新值 v2。除了上述功能測(cè)試外,測(cè)試模塊還有其他上百個(gè)功能測(cè)試用例,,因篇幅有不再詳細(xì)介紹,測(cè)試結(jié)果如圖 5-1 所示。
第五章 測(cè)試與分析試系統(tǒng)對(duì)大值(值字節(jié)數(shù)較多)隨機(jī)寫(xiě)入的性能,將每個(gè)寫(xiě)入的鍵值為 100000 個(gè)字節(jié),隨機(jī)寫(xiě)入若干條這樣的鍵值記錄,并根據(jù)總時(shí)間計(jì)機(jī)寫(xiě)一條大值記錄所花費(fèi)的時(shí)間。 測(cè)試結(jié)果與分析試方案提到性能測(cè)試共分為五組,每組測(cè)試的數(shù)據(jù)規(guī)模不一樣,下面系統(tǒng)在不同數(shù)據(jù)規(guī)模下的測(cè)試結(jié)果。
【學(xué)位授予單位】:電子科技大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2019
【分類號(hào)】:TP333;TP311.13
【參考文獻(xiàn)】
相關(guān)期刊論文 前5條
1 梁國(guó)棟;;解密內(nèi)存屏障[J];程序員;2014年06期
2 何劍;;大小端存儲(chǔ)模式對(duì)編程的影響及對(duì)策[J];揚(yáng)州職業(yè)大學(xué)學(xué)報(bào);2009年02期
3 任園園;劉建平;;CRC-32的算法研究與程序?qū)崿F(xiàn)[J];中國(guó)新技術(shù)新產(chǎn)品;2008年18期
4 袁培森;皮德常;;用于內(nèi)存數(shù)據(jù)庫(kù)的Hash索引的設(shè)計(jì)與實(shí)現(xiàn)[J];計(jì)算機(jī)工程;2007年18期
5 陽(yáng)慧;LRU算法的研究及實(shí)現(xiàn)[J];計(jì)算機(jī)時(shí)代;2004年02期
相關(guān)碩士學(xué)位論文 前2條
1 張?jiān)旅?基于LSM-tree鍵值系統(tǒng)讀性能優(yōu)化[D];中國(guó)科學(xué)技術(shù)大學(xué);2018年
2 余斌;海量非結(jié)構(gòu)化數(shù)據(jù)分布式分析與檢索[D];浙江大學(xué);2012年
本文編號(hào):2688778
本文鏈接:http://www.sikaile.net/kejilunwen/jisuanjikexuelunwen/2688778.html
最近更新
教材專著