System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術屬于存儲寫性能優化,具體涉及一種lsm-tree結構存儲寫性能優化方法及系統。
技術介紹
1、隨著數據量和用戶訪問量的急劇增加,越來越多的企業選擇基于日志結構合并樹lsm-tree(log-structured?merge-tree)的key-value數據庫作為底層的存儲引擎。由于lsm-tree可以將多個隨機的寫請求聚合成一個連續的寫請求寫入外存,所以lsm-tree有效的保障了系統的寫性能。為了保障讀性能,lsm-tree后續會調用一系列的compaction操作將外存中的數據進行排序和整理。然而compaction操作會占用大量的i/o資源,帶來嚴重的寫放大問題。一方面,寫放大問題會造成系統整體吞吐量的下降;另一方面,如果外存使用的是solid?state?drive,嚴重的寫放大會大幅降低其使用壽命,進而會影響系統的可靠性并帶來高昂的存儲開銷。因此減少寫放大可以節約出更多的i/o資源去服務用戶請求,并且可以降低數據的存儲成本。
2、為了應對海量數據的存儲和查詢,越來越多的企業采用了分布式數據庫系統。由于key-value數據庫具有設計簡單、吞吐量大和擴展性好的特點,在實際的分布式數據庫部署中通常會為每個存儲節點配置key-value數據庫以提升其訪問性能。在整個分布式數據庫系統中,每個存儲節點的性能都會直接影響到系統的整體性能,因此十分有必要對單機key-value數據庫進行優化。在key-value數據庫中,數據以key-l數據庫的一種,和傳統的關系型數據庫相比,key-value數據庫在處理超
3、由于lsm-tree具有良好的寫性能,很多key-value數據庫,例如谷歌的leveldb和bigtable,臉書的rocksdb和cassandra都紛紛采用lsm-tree作為其存儲結構,lsm-tree中的數據被分成了多個層:c0,c1,…,ck,ck+1,其中c0層存儲在內存中,其他層存儲在外存中。數據在這些層內按照key的大小依次排列著,并且這些層的容量依次成倍增加。當key-value對寫入lsm-tree時,首先會被插入到位于內存中的c0層。當c0層寫滿時,c0層中的數據會和c1層中數據進行合并,合并后的結果會被寫入c1層。同樣當c1層寫滿時,ck層也會和ck+1層進行合并,合并后的結果被保存在ck+1層。這些合并操作被稱為compaction操作。compaction的意義在于維持每層中數據按照key的大小進行順序存放,這樣就可以保證在查詢key時,每層最多訪問一次,進而保障了讀性能。但是compaction操作也會引入很多的i/o操作,會和用戶請求競爭系統的i/o資源,引起系統的寫放大,進而影響系統性能。
4、key-value分離技術:key-value分離技術顧名思義,即唯一標識數據的字符串或數字key和與key相關聯的數據value分開存儲,相關的工作包括wisckey數據結構和百度的atlas系統,wisckey將value直接寫入日志文件log,而將key和value所在的地址封裝起來寫入lsm-tree。
5、由于compaction只處理lsm-tree中的數據,存儲在log中的value并不會卷入compaction操作,所以系統可以通過分離key與value的方式來減少寫放大。但是這種方法也會造成一些問題。首先對于查詢單個的key-value對時,系統會在lsm-tree中找到對應的value的位置,然后再從log中讀取value。所以在讀取單個的key-value對時,相比于key-value整體存儲的方式,采用key與value分離的存儲方式可能會增加額外的系統i/o。其次,系統對log中的value進行垃圾回收時需要讀取lsm-tree中對應的key的數據,在這一過程中會產生很多隨機的i/o操作,影響系統性能。并且系統還需要考慮lsm-tree和log中數據一致性的問題,這會增加系統設計的復雜度。key與value分離的技術主要可以解決value很大情況下的寫放大問題。在很多實際工作負載中,value的大小可能只有幾十個字節甚至幾個字節,采用該技術對寫放大問題的解決并不能產生明顯的效果。
6、流水線compaction方式:流水線compaction技術(簡稱pcp)通過發掘cpu和i/o的并行性來提升compaction的速度。compaction過程可以分為讀取數據,數據排序和寫回數據三個階段。其中,讀取數據就是把需要compaction的sstable文件從外存讀進內存。數據排序就是將這些sstable文件按照key的順序重新排序,再封裝成新的sstable文件。最后的寫回數據就是將這些新生成的sstable文件寫回外存。為了充分利用了cpu和i/o的并行性,pcp將讀取數據、數據排序和寫回數據三個階段以流水線的方式進行運行。pcp采用流水線的方式充分挖掘了cpu和i/o的并行性,提升了compaction的性能。但是pcp并沒有從根本上減少compaction帶來的寫放大,只是提升了硬件的利用率,緩解了compaction對系統帶來的影響。
技術實現思路
1、本專利技術所要解決的技術問題在于針對上述現有技術中的不足,提供一種lsm-tree結構存儲寫性能優化方法及系統,用于解決compaction模式操作占用大量i/o資源帶來寫放大的技術問題。
2、本專利技術采用以下技術方案:
3、lsm-tree結構存儲寫性能優化方法,包括以下步驟:
4、設計分組日志結構gls,用于取消lsm-tree結構中同層數據完全有序的限制;
5、分別對lsm-tree結構進行寫操作和讀操作,通過分組日志結構gls維持組內數據有序,實現寫性能優化。
6、優選地,分組日志結構gls具體為:
7、分組日志結構gls分為多個層,包括c0,c1,…,ck,ck+1,c0層存儲在內存中,c1,…,ck,ck+1層存儲在外存中,每層設置有m個組,通過compaction模式維持每個組內數據按照數據項的唯一標識符大小順序進行排列;然后通過compaction模式將排列后的數據寫入下層,此時只有一個單位的數據被寫入下層。
8、優選地,key-valu本文檔來自技高網...
【技術保護點】
1.LSM-Tree結構存儲寫性能優化方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的LSM-Tree結構存儲寫性能優化方法,其特征在于,分組日志結構GLS具體為:
3.根據權利要求2所述的LSM-Tree結構存儲寫性能優化方法,其特征在于,Key-Value數據庫對每層只寫入一次;當某層中的所有組都被寫滿時,通過Compaction模式將這個層的所有組轉化為下一層的對應組。
4.根據權利要求1所述的LSM-Tree結構存儲寫性能優化方法,其特征在于,當LSM-tree結構中含有個Key-Value數據庫時,LSM-tree結構的深度為,表示任意相鄰兩層可容納Key-Value對數量的上限的比值,任意相鄰兩層可容納Key-Value對數量的上限比值為:,表示層可容納Key-Value對數量的上限,表示層可容納Key-Value對數量,表示層可容納Key-Value對數量,表示層可容納Key-Value對數量的上限。
5.根據權利要求1所述的LSM-Tree結構存儲寫性能優化方法,其特征在于,對LSM-tree結構進行寫操作
6.根據權利要求1所述的LSM-Tree結構存儲寫性能優化方法,其特征在于,對LSM-tree結構進行讀操作具體為:
7.一種LSM-Tree結構存儲寫性能優化系統,其特征在于,包括:
8.根據權利要求7所述的LSM-Tree結構存儲寫性能優化系統,其特征在于,分組日志結構GLS分為多個層,包括C0,C1,…,Ck,Ck+1,C0層存儲在內存中,C1,…,Ck層存儲在外存中,每層設置有m個組,通過Compaction模式維持每個組內數據按照數據項的唯一標識符大小順序進行排列;然后通過Compaction模式將排列后的數據寫入下層,此時只有一個單位的數據被寫入到下層;
9.一種存儲一個或多個程序的計算機可讀存儲介質,其特征在于,所述一個或多個程序包括指令,所述指令當由計算設備執行時,使得所述計算設備執行權利要求1至6任一所述的方法。
10.一種計算設備,其特征在于,包括:
...【技術特征摘要】
1.lsm-tree結構存儲寫性能優化方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的lsm-tree結構存儲寫性能優化方法,其特征在于,分組日志結構gls具體為:
3.根據權利要求2所述的lsm-tree結構存儲寫性能優化方法,其特征在于,key-value數據庫對每層只寫入一次;當某層中的所有組都被寫滿時,通過compaction模式將這個層的所有組轉化為下一層的對應組。
4.根據權利要求1所述的lsm-tree結構存儲寫性能優化方法,其特征在于,當lsm-tree結構中含有個key-value數據庫時,lsm-tree結構的深度為,表示任意相鄰兩層可容納key-value對數量的上限的比值,任意相鄰兩層可容納key-value對數量的上限比值為:,表示層可容納key-value對數量的上限,表示層可容納key-value對數量,表示層可容納key-value對數量,表示層可容納key-value對數量的上限。
5.根據權利要求1所述的lsm-tr...
【專利技術屬性】
技術研發人員:張黎首,王宇辰,康愷,朱義方,楊堤,李天宇,
申請(專利權)人:國網上海市電力公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。