亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        云存儲(chǔ)多卷負(fù)載均衡的LSM鍵值存儲(chǔ)系統(tǒng)

        2023-10-18 13:09:04周元輝陳書(shū)寧李大平萬(wàn)繼光
        關(guān)鍵詞:輪詢鍵值存儲(chǔ)系統(tǒng)

        徐 鵬,周元輝,陳書(shū)寧,劉 瑋,李大平,萬(wàn)繼光

        1(華中科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 武漢光電國(guó)家研究中心,武漢 430074) 2(北京平凱星辰科技發(fā)展有限公司,北京 100192)

        1 引 言

        建設(shè)“數(shù)字化中國(guó)”是《十四五規(guī)劃》提出的重要目標(biāo)之一,數(shù)字化建議意味著海量的數(shù)據(jù)[1].隨著網(wǎng)絡(luò)技術(shù)的不斷進(jìn)步,在一些場(chǎng)景下,用戶通過(guò)網(wǎng)絡(luò)獲取數(shù)據(jù)的速度接近甚至是超過(guò)了從本地存儲(chǔ)中獲取數(shù)據(jù)的速度.因此,數(shù)據(jù)上云是一大趨勢(shì),云存儲(chǔ)具有數(shù)據(jù)可靠性高[2,3]、擴(kuò)展性強(qiáng)[4,5]、按需付費(fèi)和性能穩(wěn)定等特點(diǎn),能夠?yàn)橛脩籼峁┴S富的服務(wù)[6,7].但是單個(gè)云存儲(chǔ)卷(以下簡(jiǎn)稱卷)可使用的最大IOPS和帶寬受到限制[8],無(wú)法滿足用戶的高性能,特別是IOPS需求.基于云存儲(chǔ)服務(wù)商的對(duì)云存儲(chǔ)卷的計(jì)費(fèi)規(guī)則和實(shí)際性能測(cè)試,發(fā)現(xiàn)相比于單個(gè)卷,在容量相同時(shí),組合使用多個(gè)小容量的卷能夠以相同的費(fèi)用獲得更高的IOPS和帶寬性能.然而,測(cè)試表明,簡(jiǎn)單組合使用多個(gè)卷的方式會(huì)導(dǎo)致各個(gè)成員卷之間的負(fù)載嚴(yán)重不均衡,不能充分發(fā)揮出多卷所累加的最大性能.

        為充分發(fā)揮多卷的性能,需要基于實(shí)際的存儲(chǔ)系統(tǒng)進(jìn)行分析和優(yōu)化.日志結(jié)構(gòu)歸并樹(shù)(Log-structured Merge-tree,LSM)[9]以讀性能為代價(jià)的設(shè)計(jì)思想極大地提升了寫(xiě)性能,因此已被廣泛應(yīng)用于各大互聯(lián)網(wǎng)服務(wù)廠商的鍵值存儲(chǔ)系統(tǒng)(例如Facebook的RocksDB[10]、Apache的Cassandra[11]、Google的BigTable[12]和LevelDB[13]以及阿里云的X-Engine[14]),成為了各類存儲(chǔ)系統(tǒng)的重要組成部分.對(duì)此,本文旨在充分發(fā)揮部署在LSM鍵值存儲(chǔ)系統(tǒng)的多云存儲(chǔ)卷性能.

        LSM的數(shù)據(jù)分層設(shè)計(jì)使得LSM鍵值存儲(chǔ)系統(tǒng)在處理讀請(qǐng)求時(shí)產(chǎn)生大量的I/O請(qǐng)求[15-17].雖然鍵值對(duì)在Li層內(nèi)的各sstable文件之內(nèi)和之間均保持有序且不存在重復(fù),但是Li層與Li+1層之間的鍵值對(duì)則不然.因此,在查找鍵值對(duì)時(shí),LSM鍵值存儲(chǔ)系統(tǒng)必須逐層進(jìn)行查找,且在未命中目標(biāo)鍵值對(duì)或遍歷完所有的層之前無(wú)法確保查詢結(jié)果的正確性.相較于將寫(xiě)請(qǐng)求在內(nèi)存中進(jìn)行聚合之后再批量地寫(xiě)入存儲(chǔ)的設(shè)計(jì)[18],在最壞情況下,LSM鍵值存儲(chǔ)系統(tǒng)處理讀請(qǐng)求時(shí)需要向每一層發(fā)出隨機(jī)I/O請(qǐng)求,導(dǎo)致大量的讀I/O放大.因而,依賴于隨機(jī)I/O請(qǐng)求的讀性能受到卷的IOPS性能和鍵值對(duì)在LSM各層分布的影響.

        現(xiàn)有的多卷負(fù)載均衡方案僅依靠寫(xiě)數(shù)據(jù)策略來(lái)最終決定數(shù)據(jù)在成員卷之間的分布,不僅無(wú)法充分應(yīng)對(duì)多變的讀負(fù)載(例如順序讀寫(xiě)、隨機(jī)讀寫(xiě)或晝夜變化等[19,20])的問(wèn)題,同時(shí)依然存在將LSM不同層鍵范圍重合度高的sstable(或者一部分)分配到同一個(gè)成員卷的問(wèn)題,導(dǎo)致成員卷之間的讀負(fù)載嚴(yán)重不均衡.

        因此,需要將在多卷的成員卷之間遷移讀負(fù)載熱數(shù)據(jù)的方式作為現(xiàn)有多卷負(fù)載均衡方案的補(bǔ)充.而為了實(shí)現(xiàn)讀負(fù)載均衡,需要實(shí)現(xiàn)鍵范圍在各個(gè)成員卷之間均勻分布,從而避免讀負(fù)載的熱數(shù)據(jù)引起單個(gè)成員卷的I/O壓力超過(guò)其購(gòu)買(mǎi)的IOPS性能、進(jìn)而造成多卷整體性能無(wú)法充分發(fā)揮的問(wèn)題.

        為此,以提升多卷讀性能為目標(biāo),提出一種云存儲(chǔ)多卷負(fù)載均衡的LSM鍵值存儲(chǔ)系統(tǒng)TANGO.TANGO通過(guò)優(yōu)化LSM的合并操作過(guò)程以實(shí)現(xiàn)多卷的讀寫(xiě)負(fù)載均衡.在合并操作新生成的sstable落盤(pán)前,先根據(jù)統(tǒng)計(jì)的多卷中各個(gè)成員卷的關(guān)鍵信息,判斷該sstable與各個(gè)成員卷的鍵范圍重疊情況,選擇鍵范圍重疊最小的成員卷執(zhí)行寫(xiě)入;針對(duì)讀為主的負(fù)載,無(wú)法通過(guò)合并操作達(dá)到負(fù)載均衡,TANGO采用后臺(tái)數(shù)據(jù)遷移方式進(jìn)一步達(dá)到負(fù)載均衡.由此,針對(duì)每個(gè)鍵范圍數(shù)據(jù)的讀I/O請(qǐng)求會(huì)被均勻分散至多個(gè)成員卷,實(shí)現(xiàn)多卷讀負(fù)載均衡的目標(biāo),從而充分發(fā)揮多卷的性能.

        本文的主要貢獻(xiàn)如下:

        1)將現(xiàn)有多路徑負(fù)載均衡或哈希負(fù)載均衡的方案應(yīng)用于使用多云存儲(chǔ)卷的LSM鍵值存儲(chǔ)系統(tǒng),并對(duì)云存儲(chǔ)卷進(jìn)行了大量的組合測(cè)試,通過(guò)實(shí)驗(yàn)證明同等存儲(chǔ)容量下多卷性能更好;但是,各成員卷之間仍然存在負(fù)載不均衡的問(wèn)題,不能充分發(fā)揮出多卷的最大性能.進(jìn)一步通過(guò)實(shí)驗(yàn)和觀察,發(fā)現(xiàn)了基于LSM鍵值存儲(chǔ)系統(tǒng)的多卷中各成員卷I/O負(fù)載嚴(yán)重不均衡的原因.以上發(fā)現(xiàn)為設(shè)計(jì)更為高效的多卷性能優(yōu)化方案提供了依據(jù).

        2)針對(duì)1)中分析的結(jié)果,提出一種云存儲(chǔ)多卷負(fù)載均衡的LSM鍵值存儲(chǔ)系統(tǒng)TANGO.在LSM中合并操作新生成的sstable確定落盤(pán)的目標(biāo)卷之前,先根據(jù)統(tǒng)計(jì)的多卷中各個(gè)成員卷的關(guān)鍵信息,判斷要寫(xiě)入sstable與各個(gè)成員卷的鍵范圍重疊情況,選擇鍵范圍重疊最小的成員卷寫(xiě)入.TANGO也通過(guò)選擇性復(fù)制的熱點(diǎn)數(shù)據(jù)遷移方法進(jìn)一步均衡讀請(qǐng)求熱點(diǎn)數(shù)據(jù)分布.TANGO方案從讀和寫(xiě)兩個(gè)角度對(duì)多卷性能進(jìn)行優(yōu)化,彌補(bǔ)了現(xiàn)有多卷使用方案應(yīng)對(duì)LSM鍵值存儲(chǔ)系統(tǒng)的讀請(qǐng)求熱數(shù)據(jù)分布嚴(yán)重不均的缺點(diǎn).

        3)在亞馬遜云的彈性塊存儲(chǔ)卷上實(shí)現(xiàn)了TANGO以及對(duì)比方案,并將所有方案進(jìn)行了詳細(xì)的對(duì)比和分析,從多卷整體性能、各成員卷平均性能、成員卷實(shí)時(shí)性能和遷移開(kāi)銷等方面驗(yàn)證了TANGO的高效性.

        2 背景及相關(guān)工作

        2.1 LSM鍵值存儲(chǔ)系統(tǒng)架構(gòu)

        如圖1所示,基于LSM的鍵值存儲(chǔ)系統(tǒng)中包含多層存儲(chǔ)結(jié)構(gòu)(L0、L1至底層),每層存儲(chǔ)容量有限,但每層的容量隨層數(shù)的增加而逐層增大.所有到來(lái)的寫(xiě)請(qǐng)求都會(huì)被緩存至內(nèi)存的緩存區(qū)memtable,而后寫(xiě)入到一個(gè)固定大小的sstable文件中,該sstable會(huì)被放入L0層.L0層中數(shù)據(jù)總量達(dá)到設(shè)定閾值時(shí)會(huì)觸發(fā)合并操作(compaction),該操作將L0層和L1層有鍵范圍重疊的多個(gè)sstable進(jìn)行整理,合并重復(fù)數(shù)據(jù)、刪去無(wú)效數(shù)據(jù)后,對(duì)剩下的鍵值對(duì)以鍵為序進(jìn)行排序,并且將鍵范圍相近的數(shù)據(jù)放在一起構(gòu)成新的sstable,之后再寫(xiě)入到L1層中.其它Li~Li+1層的合并操作以此類推.

        具體而言,合并操作通常需要執(zhí)行以下3個(gè)步驟:

        ①讀:將選定的Li和Li+1層sstable讀取到內(nèi)存.

        ②歸并:將鍵值對(duì)從這些sstable數(shù)據(jù)塊中的緊湊格式解包為鍵值對(duì)格式,然后將這些Li和Li+1層所有的鍵值對(duì)歸并排序、刪去Li和Li+1有相同鍵的鍵值對(duì).接著將余下排序好的鍵值對(duì)重新打包為緊湊的sstable數(shù)據(jù)塊格式,同時(shí)為每個(gè)新sstable生成對(duì)應(yīng)的索引塊和過(guò)濾器等元數(shù)據(jù)信息.

        ③寫(xiě):將這些新sstable寫(xiě)回存儲(chǔ)系統(tǒng)、插入到Li+1層,最后刪去Li和Li+1層的舊sstable.

        在上述寫(xiě)請(qǐng)求的數(shù)據(jù)流動(dòng)路徑下,LSM鍵值存儲(chǔ)系統(tǒng)處理讀請(qǐng)求時(shí),首先在內(nèi)存的memtable查找,然后從L0~Ln層依次進(jìn)行查找.在Li層查找時(shí),根據(jù)sstable的鍵值范圍確定每層的候選sstable,然后使用候選sstable的元數(shù)據(jù)查找候選數(shù)據(jù)塊,并在該數(shù)據(jù)塊中進(jìn)行查找.如果該層未讀命中,則繼續(xù)在下一層進(jìn)行查找,直至命中或所有層均未命中.

        2.2 多卷負(fù)載均衡方式

        亞馬遜云是目前應(yīng)用最為廣泛的云服務(wù),因此本文以亞馬遜云存儲(chǔ)為例進(jìn)行研究.在亞馬遜彈性塊云存儲(chǔ)(Elastic Block Store)的計(jì)費(fèi)策略下,實(shí)現(xiàn)多卷中各個(gè)成員卷之間的負(fù)載均衡是高效、低成本地充分提高和發(fā)揮多卷性能的關(guān)鍵之一.數(shù)據(jù)寫(xiě)入時(shí)在各個(gè)成員卷之間的落盤(pán)策略會(huì)對(duì)后續(xù)負(fù)載均衡狀況產(chǎn)生巨大影響.在基于LSM的鍵值存儲(chǔ)系統(tǒng)中,各層的寫(xiě)入都包含在合并操作中.因此合并操作決定了絕大部分鍵范圍在各個(gè)成員卷之間的分布情況.

        現(xiàn)有多卷負(fù)載均衡方案以調(diào)控寫(xiě)請(qǐng)求數(shù)據(jù)布局為主,可以歸納為3類:輪詢方式,RAID方式和哈希方式.

        ①輪詢方式:現(xiàn)有文獻(xiàn)中沒(méi)有發(fā)現(xiàn)針對(duì)云存儲(chǔ)多卷優(yōu)化的LSM鍵值存儲(chǔ)系統(tǒng)的工作.為證明本文提出方案的有效性,現(xiàn)將現(xiàn)有其它多路徑的負(fù)載均衡方法用于云存儲(chǔ)多卷作為對(duì)比.通過(guò)輪詢方式依次選取多卷中的成員卷[21,22],將上層通過(guò)合并操作新生成的sstable寫(xiě)入其中,可以讓數(shù)據(jù)量在所有成員卷之間均勻分布.當(dāng)然,也僅能實(shí)現(xiàn)數(shù)據(jù)量的均衡分布.

        在LSM鍵值存儲(chǔ)系統(tǒng)中,由于Li與Li+1層之間的鍵范圍存在重疊,且寫(xiě)負(fù)載的鍵值范圍不確定,所以合并操作所涉及的層數(shù)同樣存在較大的不確定性.因此,在多個(gè)成員卷之間以輪循方式寫(xiě)sstable時(shí),無(wú)法實(shí)現(xiàn)鍵范圍在各個(gè)成員卷之間的均衡分布.最終,導(dǎo)致輪循方案只能一定程度上解決寫(xiě)負(fù)載的均衡問(wèn)題,而無(wú)法有效避免讀負(fù)載的熱鍵范圍集中在某個(gè)成員卷上的問(wèn)題.

        ②RAID方式:文獻(xiàn)采用RAID0的方式組織多卷來(lái)充分發(fā)揮其所有成員卷的并行性能[23],但未注意到多卷之間的負(fù)載均衡問(wèn)題.先將多卷中的N個(gè)成員卷組成RAID0,接著將要寫(xiě)入到下一層的sstable切分為多個(gè)固定大小的數(shù)據(jù)塊(Chunk),然后將這些數(shù)據(jù)塊并行地寫(xiě)入到每個(gè)成員卷.具體地,sstable的大小、切分的數(shù)據(jù)塊大小以及成員卷的數(shù)量等因素綜合決定了數(shù)據(jù)塊在各個(gè)成員卷上的分布情況.RAID0布局策略不僅能使每個(gè)sstable的鍵范圍分散到各個(gè)成員卷上,還能夠充分利用多個(gè)成員卷的并行寫(xiě)性能.

        但RAID0布局方式存在以下問(wèn)題:首先,RAID0分割sstable進(jìn)行數(shù)據(jù)布局時(shí)沒(méi)有考慮各個(gè)數(shù)據(jù)塊所包含鍵范圍的熱度,仍然無(wú)法解決讀負(fù)載不均衡導(dǎo)致的讀I/O請(qǐng)求集中在單個(gè)成員卷上的問(wèn)題,從而會(huì)造成RAID0整體性能下降.其次,RAID0擴(kuò)容時(shí)需要進(jìn)行數(shù)據(jù)重構(gòu),會(huì)對(duì)所有數(shù)據(jù)產(chǎn)生影響,需要進(jìn)行大量的數(shù)據(jù)遷移,也會(huì)對(duì)性能產(chǎn)生影響.

        ③哈希方式:現(xiàn)有文獻(xiàn)中沒(méi)有發(fā)現(xiàn)結(jié)合云存儲(chǔ)多卷負(fù)載均衡和LSM鍵值存儲(chǔ)系統(tǒng)的哈希優(yōu)化方案.為證明本文提出方案的有效性,現(xiàn)將現(xiàn)有其它負(fù)載均衡的哈希方法[24]用于云存儲(chǔ)多卷作為對(duì)比.哈希布局方案通過(guò)哈希算法來(lái)管理多卷中的各個(gè)成員卷,基于sstable文件名進(jìn)行哈希,根據(jù)哈希結(jié)果將各個(gè)sstable分配到對(duì)應(yīng)的成員卷.哈希布局方案相比輪循方式更加隨機(jī),也能夠避免成員卷數(shù)量變動(dòng)時(shí)帶來(lái)的大量的數(shù)據(jù)遷移,減少對(duì)整體性能的影響.

        但是,若成員卷數(shù)量較少,則容易發(fā)生哈希沖突,從而導(dǎo)致各成員卷之間負(fù)載不均衡.此外,現(xiàn)有哈希布局方案同樣無(wú)法感知sstable內(nèi)的鍵范圍,存在將LSM不同層鍵范圍重合度高的sstable分配到同一個(gè)成員卷的問(wèn)題.

        3 問(wèn)題分析

        在本節(jié)中,首先展示了組合使用多個(gè)云存儲(chǔ)卷具有更高的性價(jià)比這一現(xiàn)象,然后揭示了目前多卷性能無(wú)法充分發(fā)揮這一問(wèn)題并作出了進(jìn)一步探索和說(shuō)明.最后,基于發(fā)現(xiàn)的現(xiàn)象和問(wèn)題,提出本文的設(shè)計(jì)思想.

        3.1 組合使用多個(gè)單卷性價(jià)比更高

        如表1所示,展示了大型云服務(wù)提供商亞馬遜的云存儲(chǔ)服務(wù)收費(fèi)情況.亞馬遜為單個(gè)云存儲(chǔ)卷的IOPS和帶寬都設(shè)置了最大值,并且提供了不同的容量性能模式.用戶可以根據(jù)自己需求選擇相應(yīng)類型的云存儲(chǔ)卷并進(jìn)行參數(shù)配置.用戶可基于初始IOPS選擇是否購(gòu)買(mǎi)額外的IOPS,購(gòu)買(mǎi)時(shí)以IOPS/GB為單位,但是不能超過(guò)最大IOPS和帶寬限制.所以如果只使用單個(gè)云存儲(chǔ)卷提供服務(wù),容易陷入帶寬和IOPS瓶頸.因此考慮通過(guò)多卷組合的方式以打破單卷的性能限制、獲得更高的存儲(chǔ)性能.

        表1 亞馬遜彈性塊存儲(chǔ)的gp3和io1性能和費(fèi)用概要Table 1 Summary of Amazon EBS performance and price

        以亞馬遜gp3類型的云存儲(chǔ)卷為例,1個(gè)容量3000GB的單卷與3個(gè)容量1000GB的多卷的總?cè)萘亢涂傎M(fèi)用都相同.表2示意了應(yīng)用廣泛的LSM鍵值存儲(chǔ)系統(tǒng)RocksDB在總?cè)萘亢涂傎M(fèi)用相同的gp3單卷(3000GB)和多卷(3×1000GB)上的隨機(jī)寫(xiě)性能.多卷時(shí),RocksDB采用輪循的方式在3個(gè)單卷之間寫(xiě)sstable.從表2中可以觀察到,相比同費(fèi)用和容量的單卷,多卷時(shí)RocksDB的隨機(jī)寫(xiě)IOPS和吞吐率均提升了一倍、平均時(shí)延降低了一半.因?yàn)閱尉硎艿搅藥挼南拗?導(dǎo)致實(shí)際使用的IOPS也受到明顯的影響.而3個(gè)存儲(chǔ)卷理論上帶寬可以提高2倍,但實(shí)際測(cè)試中只提高了1倍,性能并沒(méi)有完全發(fā)揮.

        表2 RocksDB在總?cè)萘亢涂傎M(fèi)用相同的gp3單卷和多卷上的隨機(jī)寫(xiě)性能(歸一化結(jié)果)Table 2 RocksDB random write performance with a single or three volumes(normalized)

        直觀來(lái)看,通過(guò)將單個(gè)大容量云存儲(chǔ)卷拆分為多個(gè)小容量卷的方式,可在費(fèi)用和容量相同的情況下獲得更高的性能.但是多卷性能沒(méi)有完全發(fā)揮,需要進(jìn)一步驗(yàn)證和探討.

        3.2 多卷性能無(wú)法充分發(fā)揮的現(xiàn)象

        測(cè)試采用的系統(tǒng)為RocksDB,負(fù)載通過(guò)YCSB(Yahoo!Cloud Servering Benchmark,YCSB)[25]進(jìn)行仿真.測(cè)試中配置了6個(gè)單卷,類型為亞馬遜彈性塊存儲(chǔ)gp3的卷,每個(gè)卷的容量為60GB、購(gòu)買(mǎi)的IOPS為3000.

        測(cè)試時(shí),先通過(guò)YCSB加載5000萬(wàn)條鍵值對(duì),然后運(yùn)行1000萬(wàn)條請(qǐng)求的測(cè)試負(fù)載,包含80%的讀操作和20%的更新操作.RocksDB生成的sstable被以輪循的方式分配到6個(gè)卷中.

        圖2 多卷整體和各成員卷的實(shí)時(shí)IOPS情況,一種灰度的形狀代表一個(gè)成員卷Fig.2 Realtime IOPS of the six volumes and each volume

        圖2示意了測(cè)試時(shí)多卷整體(上半圖)和每個(gè)成員卷(下半圖)的實(shí)時(shí)IOPS情況,通過(guò)不同的灰度表示不同的卷.從圖2可以觀察到,每個(gè)時(shí)間段,整體IOPS由于LSM聚合寫(xiě)的效果而超過(guò)購(gòu)買(mǎi)的18000,但立即又下降到10000~15000的水平;另外,每個(gè)時(shí)間段都有一個(gè)卷的IOPS長(zhǎng)時(shí)間運(yùn)行在最高IOPS(3000)水平,其它卷的IOPS則在1000~2000之間的水平.該現(xiàn)象導(dǎo)致了絕大部分單卷IOPS性能未被充分利用,所以多卷性能存在較大波動(dòng),且多卷性能的起伏與大部分單卷的IOPS密切相關(guān).

        圖3 鍵范圍1.4×1010~1.5×1010在各卷分布的局部放大,每一種灰度表示一個(gè)成員卷Fig.3 Distribution of the key range 1.4×1010 to 1.5×1010for each layer of the LSM over 6 volumes

        3.3 多卷性能無(wú)法充分發(fā)揮的原因

        圖3表示了LSM各層的鍵范圍(1.4×1010~1.5×1010)在6個(gè)成員卷上的分布情況,每種灰度表示一個(gè)成員卷.從圖3可以看到:數(shù)據(jù)在各個(gè)存儲(chǔ)卷上的分布是不均勻的,有的灰度在單層中占得比例更大一些,表明某些鍵范圍更多地分布該灰度表示的卷中;相鄰層之間鍵范圍重疊的數(shù)據(jù)灰度相同,說(shuō)明這些數(shù)據(jù)都被存儲(chǔ)在一個(gè)成員卷中.因此,若鍵范圍重疊較高的數(shù)據(jù)被頻繁讀取時(shí),大量的讀請(qǐng)求將會(huì)聚集在同一個(gè)成員卷上.因?yàn)槊總€(gè)存儲(chǔ)卷都存在帶寬和IOPS限制,熱數(shù)據(jù)較多的成員卷達(dá)到性能瓶頸后無(wú)法提供更高的性能,但是其它成員卷因?yàn)闊釘?shù)據(jù)較少,帶寬和IOPS反而得不到有效利用,從而使多卷的整體性能下降.

        3.4 問(wèn)題分析小結(jié)和設(shè)計(jì)思路

        LSM的數(shù)據(jù)分層機(jī)制造成了層與層之間鍵范圍的重疊,導(dǎo)致讀負(fù)載的小范圍熱數(shù)據(jù)分散在多層的多個(gè)sstable中,但是現(xiàn)有數(shù)據(jù)布局方案無(wú)法有效地將多卷中分布在多層、含有同一鍵范圍的熱sstable分散至多個(gè)成員卷.若多卷中數(shù)據(jù)無(wú)法根據(jù)鍵范圍情況均勻地分散到各個(gè)成員卷中,各成員卷的讀I/O數(shù)量將無(wú)法均衡.

        為此,以提升多卷讀性能為目標(biāo),提出一種云存儲(chǔ)多卷負(fù)載均衡的LSM鍵值存儲(chǔ)系統(tǒng)TANGO.TANGO通過(guò)優(yōu)化LSM的合并操作的寫(xiě)過(guò)程來(lái)實(shí)現(xiàn)多卷的讀負(fù)載均衡.在LSM鍵值存儲(chǔ)系統(tǒng)執(zhí)行合并操作并將新生成的Li+1層sstable寫(xiě)入到Li+1層中之前,先檢測(cè)每個(gè)成員卷所擁有的Li+2層sstable與要寫(xiě)入的sstable的鍵范圍重疊情況,選擇鍵范圍重疊最小的成員卷寫(xiě)入.這樣一來(lái),針對(duì)每個(gè)鍵范圍數(shù)據(jù)的讀I/O請(qǐng)求會(huì)被均勻分散至多個(gè)成員卷,能夠達(dá)到多卷讀負(fù)載均衡的目的,從而充分發(fā)揮多卷的性能.此外,TANGO主動(dòng)地通過(guò)選擇性復(fù)制的方式將滿負(fù)荷卷的I/O請(qǐng)求卸載至其它卷,進(jìn)一步處理由負(fù)載變化導(dǎo)致的各成員卷熱點(diǎn)數(shù)據(jù)變化的問(wèn)題.

        4 TANGO設(shè)計(jì)

        如圖4所示,為T(mén)ANGO的整體架構(gòu)圖,從讀和寫(xiě)兩個(gè)方面進(jìn)行多卷的負(fù)載均衡調(diào)度.

        圖4 TANGO整體架構(gòu)Fig.4 Architecture of TANGO

        在處理寫(xiě)請(qǐng)求時(shí),不論是將memtable經(jīng)由flush操作寫(xiě)入到L0層,或是將合并操作新生成的Li+1層sstable寫(xiě)入到Li+1層,都可以視為對(duì)新生成sstable的處理過(guò)程,都通過(guò)寫(xiě)入決策進(jìn)行寫(xiě)數(shù)據(jù)分布.

        寫(xiě)入決策:在寫(xiě)入新sstable時(shí),先檢測(cè)每個(gè)成員卷所擁有的sstable與要寫(xiě)入的新sstable的鍵范圍重疊情況,選擇鍵范圍重疊最小的成員卷寫(xiě)入.通過(guò)寫(xiě)入決策的調(diào)整,鍵范圍更均勻地分布在多個(gè)卷之間,主動(dòng)地均衡了各卷之間可能的讀負(fù)載.

        讀請(qǐng)求到來(lái)時(shí),會(huì)直接分發(fā)給數(shù)據(jù)所在的sstable,但是為了防止熱點(diǎn)數(shù)據(jù)過(guò)于集中,會(huì)定期通過(guò)負(fù)載遷移將讀熱點(diǎn)數(shù)據(jù)復(fù)制到負(fù)載較低的卷,以對(duì)讀負(fù)載在各個(gè)卷之間進(jìn)行重新分布.

        負(fù)載遷移:負(fù)載遷移針對(duì)的是熱的讀請(qǐng)求數(shù)據(jù),通過(guò)數(shù)據(jù)遷移操作來(lái)直接調(diào)整各個(gè)成員卷讀負(fù)載的大小.若某個(gè)成員卷的IOPS達(dá)到其付費(fèi)IOPS,則說(shuō)明該成員卷數(shù)據(jù)熱度過(guò)高,需要遷移部分熱數(shù)據(jù)到其它IOPS較低的成員卷,遷移時(shí)以sstable為最小單位.需要指出的是,遷出的數(shù)據(jù)通過(guò)復(fù)制的方式進(jìn)行,因此無(wú)須將數(shù)據(jù)遷回的操作.

        4.1 關(guān)鍵信息統(tǒng)計(jì)

        在進(jìn)行具體的讀寫(xiě)調(diào)度之前,需要收集每個(gè)成員卷信息,包括每個(gè)sstable的被訪問(wèn)情況以及鍵范圍等,然后計(jì)算出每個(gè)sstable的熱度值以整個(gè)成員卷的訪問(wèn)權(quán)重,為寫(xiě)入決策和數(shù)據(jù)遷移提供依據(jù).

        關(guān)鍵信息統(tǒng)計(jì)部分除了需要簡(jiǎn)單記錄各個(gè)成員卷中每個(gè)sstable的鍵范圍,還需要計(jì)算出每個(gè)sstable的熱度值和每個(gè)成員卷的訪問(wèn)權(quán)重.

        (1)

        其中,N(t-1,t]表示在時(shí)間間隔(t-1,t]內(nèi)第i個(gè)sstable被訪問(wèn)的次數(shù),WRio為sstable的大小除以256KB所得的實(shí)際寫(xiě)入的I/O請(qǐng)求數(shù)量(因?yàn)樵拼鎯?chǔ)卷會(huì)自動(dòng)地將小寫(xiě)請(qǐng)求盡可能地聚合為256KB的大寫(xiě)請(qǐng)求[26]),α為冷卻系數(shù),在0~1之間(默認(rèn)為0.5).

        (2)

        上述統(tǒng)計(jì)的關(guān)鍵信息反映了每個(gè)卷的總體負(fù)載情況、對(duì)每個(gè)卷的I/O訪問(wèn)以及卷內(nèi)的鍵范圍分布,為寫(xiě)入決策和負(fù)載遷移提供了均衡各卷負(fù)載的依據(jù).另外,上述統(tǒng)計(jì)信息可以從LSM的相關(guān)處理過(guò)程中直接獲得,且需要的計(jì)算開(kāi)銷低,所以不會(huì)帶來(lái)明顯的開(kāi)銷.

        4.2 寫(xiě)入決策

        4.2.1 鍵范圍重疊情況判斷

        寫(xiě)入sstable時(shí)除了對(duì)數(shù)據(jù)總量均勻分布的考量,還要盡量讓后續(xù)對(duì)該sstable所包含鍵范圍數(shù)據(jù)的讀取I/O請(qǐng)求分散在多個(gè)成員卷中,從而實(shí)現(xiàn)多個(gè)成員卷之間的I/O請(qǐng)求數(shù)量均衡.

        因此,寫(xiě)入新生成的sstable時(shí),需要避免寫(xiě)入到與該sstable對(duì)應(yīng)鍵范圍重疊比例較大的成員卷.所以,要先確認(rèn)新生成的Li+1層sstable與每個(gè)成員卷已有的Li+2層sstable鍵范圍的重疊情況,然后將新生成的sstable寫(xiě)入到重疊次數(shù)最小的成員卷.寫(xiě)入memtable時(shí)的操作相當(dāng)于L0層的特例,不再單獨(dú)說(shuō)明.

        在選擇成員卷寫(xiě)入新生成的Li+1層sstable時(shí),將該sstable與每個(gè)成員卷中Li+2層sstable的鍵范圍進(jìn)行對(duì)比.如果該sstable的鍵范圍與Li+2層某個(gè)成員卷的sstable存在鍵范圍重疊現(xiàn)象,則將該成員卷的重疊次數(shù)加1.

        4.2.2 選擇要寫(xiě)入的成員卷

        根據(jù)統(tǒng)計(jì)結(jié)果,選取重疊次數(shù)最小的成員卷寫(xiě)入新生成的sstable.當(dāng)有多個(gè)成員卷的重疊次數(shù)相同時(shí),優(yōu)先考慮訪問(wèn)權(quán)重最低的成員卷,若仍有相同項(xiàng),則隨機(jī)選擇一個(gè)成員卷寫(xiě)入新生成的sstable.

        如圖5所示,展示了一個(gè)合并操作生成的sstable寫(xiě)入時(shí)選擇成員卷的例子.圖5中,先對(duì)L1層的sstable 0(鍵范圍b-d)與L2層的sstable 1(鍵范圍a-b)和sstable 2(鍵范圍c-d)進(jìn)行合并,然后生成了新sstable 11(鍵范圍a-b)和sstable 12(鍵范圍c-d).通過(guò)鍵范圍重疊情況判斷可知,sstable 11與卷1、卷2、卷3、卷4的重疊次數(shù)分別為1、0、0、0,所以sstable 11可以寫(xiě)入到負(fù)載較低的卷2中;sstable 12與卷1、卷2、卷3、卷4的重疊次數(shù)分別為0、1、0、0,所以sstable 12可以寫(xiě)入到負(fù)載較低的卷3中.

        圖5 寫(xiě)入時(shí)選擇成員卷的示意圖Fig.5 Write the sstable to a volume with the minimal key range overlap

        至此,借助LSM鍵值存儲(chǔ)系統(tǒng)flush操作和合并操作寫(xiě)入新生成sstable的時(shí)機(jī),以較少的額外寫(xiě)操作,可以將相鄰層之間具有鍵范圍重疊的sstable均勻分散至多個(gè)成員卷,在整體上實(shí)現(xiàn)各成員卷之間的負(fù)載均衡.

        4.3 負(fù)載遷移

        數(shù)據(jù)在寫(xiě)入各成員卷后,因?yàn)樽x負(fù)載發(fā)生變化,導(dǎo)致部分?jǐn)?shù)據(jù)過(guò)熱,使得各成員卷之間的I/O壓力不均衡.為此,只能主動(dòng)遷移熱點(diǎn)數(shù)據(jù)來(lái)進(jìn)行平衡,將集中在單個(gè)成員卷上的熱點(diǎn)數(shù)據(jù)分散至負(fù)載較低的成員卷,從而使得多個(gè)成員卷的IOPS均勻且接近其購(gòu)買(mǎi)的IOPS.

        負(fù)載遷移功能彌補(bǔ)了寫(xiě)入決策無(wú)法應(yīng)對(duì)負(fù)載變化引起的各卷之間讀負(fù)載不均的問(wèn)題.由于負(fù)載遷移采用的是復(fù)制熱數(shù)據(jù)的方式,因此避免了遷回?cái)?shù)據(jù)的開(kāi)銷.

        5 實(shí)驗(yàn)與分析

        本章節(jié)基于亞馬遜彈性塊云存儲(chǔ)卷進(jìn)行測(cè)試,測(cè)試所用負(fù)載由YCSB生成.

        5.1 測(cè)試環(huán)境

        測(cè)試平臺(tái):使用應(yīng)用最為廣泛的亞馬遜云服務(wù)作為測(cè)試平臺(tái).測(cè)試時(shí),使用EC2 m5d.2xlarge云計(jì)算實(shí)例,該計(jì)算實(shí)例配置了8個(gè)vCPU、32GB內(nèi)存.組合使用6個(gè)容量均為60GB的gp3卷,理論上最高可提供18000的IOPS性能;作為對(duì)比,使用單個(gè)容量為360GB的gp3卷,該大容量的卷購(gòu)買(mǎi)3000的IOPS性能.

        對(duì)比方案:在應(yīng)用廣泛的LSM鍵值存儲(chǔ)系統(tǒng)RocksDB的基礎(chǔ)上,實(shí)現(xiàn)使用多個(gè)成員卷的TANGO及對(duì)比方案,同時(shí)對(duì)比使用單個(gè)大容量卷的性能.具體對(duì)比了TANGO、輪詢、RAID和哈希4種方案.多卷方案中,輪詢方案通過(guò)循環(huán)的方式為每個(gè)sstable選擇寫(xiě)入的成員卷;RAID采用RAID0的方式將sstable切分為塊大小后組織為條帶的形式寫(xiě)入所有的成員卷;哈希則是通過(guò)哈希sstable文件名來(lái)確定該sstable所寫(xiě)入的成員卷.

        測(cè)試工具:本文采用常用的云服務(wù)器標(biāo)準(zhǔn)測(cè)試集YCSB[25]進(jìn)行的測(cè)試,它提供了一個(gè)框架和一組默認(rèn)的7個(gè)工作負(fù)載,用于評(píng)估鍵值存儲(chǔ)的性能.1)負(fù)載Load:100%寫(xiě)操作,生成數(shù)據(jù)集滿足Uniform分布;2)負(fù)載A:50%讀操作,50%寫(xiě)操作,Zipfian分布;3)負(fù)載B:95%讀操作,5%寫(xiě)操作,Zipfian分布;4)負(fù)載C:100%讀操作,Zipfian分布;5)負(fù)載D:95%讀操作,5%寫(xiě)操作,Latest分布;6)負(fù)載E:95%范圍查詢,5%寫(xiě)操作,Zipfian分布;7)負(fù)載F:50%寫(xiě)操作,50%讀改寫(xiě)操作,Zipfian分布.

        測(cè)試時(shí),首先基于YCBS自帶的A~F負(fù)載評(píng)估各種方案的整體效果,最后使用YCSB的合成負(fù)載進(jìn)行驗(yàn)證.

        默認(rèn)參數(shù):RocksDB的鍵大小為16B、值大小為256B,sstable大小為8MB,同時(shí)僅將sstable的元數(shù)據(jù)緩存在內(nèi)存中,以精確觀察TANGO對(duì)多卷IOPS性能的利用情況.

        需要注意的是,觀察YCSB整體性能的測(cè)試獲取的是RocksDB之上的用戶IOPS請(qǐng)求,由于在RocksDB內(nèi)部將寫(xiě)請(qǐng)求聚合后再處理,因此統(tǒng)計(jì)得到的IOPS可能高于多個(gè)卷的IOPS之和.觀察每個(gè)卷IOPS性能的測(cè)試獲取的是與云存儲(chǔ)卷實(shí)際交互的I/O信息,因此統(tǒng)計(jì)得到的IOPS將在卷所購(gòu)買(mǎi)的IOPS性能附近.

        5.2 多卷整體性能評(píng)估

        5.2.1 YCSB默認(rèn)負(fù)載下的IOPS

        本小節(jié)使用YCSB的6種默認(rèn)負(fù)載(負(fù)載A~F)來(lái)模擬工作負(fù)載,分別測(cè)試評(píng)估輪詢、RAID、哈希和TANGO 4種方案性能.

        首先隨機(jī)加載5000萬(wàn)條鍵值對(duì)數(shù)據(jù),然后運(yùn)行1000萬(wàn)條鍵值對(duì)的工作負(fù)載.測(cè)試結(jié)果如圖6所示.6種工作負(fù)載下TANGO的性能都優(yōu)于其它多卷方案,且單卷相同容量時(shí)的IOPS明顯低于所有其它多卷方案.負(fù)載D時(shí),TANGO的IOPS為23013,相較于其它多卷方案的IOPS至少提升了52%.由于6種默認(rèn)負(fù)載的讀寫(xiě)比例和數(shù)據(jù)分布方式變量控制較為復(fù)雜,后續(xù)控制負(fù)載的變量只改變讀請(qǐng)求比例做進(jìn)一步觀察測(cè)試.

        圖6 不同YCSB負(fù)載下各種方案的多盤(pán)整體IOPS

        5.2.2 不同讀寫(xiě)比例合成負(fù)載下的IOPS

        本次測(cè)試基于YCBS的負(fù)載C合成的不同讀寫(xiě)比例的負(fù)載以評(píng)估TANGO及其對(duì)比方案的整體IOPS性能,相比YCSB的默認(rèn)負(fù)載,讀寫(xiě)比例設(shè)定更加靈活.首先隨機(jī)加載5000萬(wàn)條鍵值對(duì),然后執(zhí)行1000萬(wàn)條鍵值對(duì)的隨機(jī)請(qǐng)求,統(tǒng)計(jì)不同讀請(qǐng)求比例下的整體IOPS,結(jié)果如圖7所示.

        圖7 不同讀請(qǐng)求比例下各種方案的多卷整體IOPS

        從圖7中可以觀察到,組合使用6×60GB gp3卷的TANGO、輪詢、RAID以及哈希方案在不同讀操作比例負(fù)載下的IOPS,均顯著高于使用單個(gè)容量為360GB的gp3卷.

        在使用多個(gè)成員卷的方案中,TANGO在不同讀寫(xiě)比例的負(fù)載下均表現(xiàn)出最高的IOPS性能.在100%隨機(jī)讀的負(fù)載下,TANGO的IOPS為17363,實(shí)現(xiàn)了多卷理論上最高18000 IOPS的94.4%利用率;相較于輪詢、RAID和哈希方案的IOPS性能,TANGO分別提升了26%、21%和30%,是費(fèi)用相同的情況下單個(gè)大容量卷IOPS的7倍左右.

        隨著負(fù)載中寫(xiě)請(qǐng)求比例的增加,所有方案的IOPS性能均有增加;主要原因是LSM鍵值存儲(chǔ)系統(tǒng)對(duì)寫(xiě)請(qǐng)求I/O的聚合作用.在50%讀和50%寫(xiě)的混合負(fù)載下,TANGO的IOPS性能為33419,比RAID0高25%;雖然RAID0通過(guò)并行寫(xiě)6個(gè)卷提升了寫(xiě)性能,但無(wú)法在多個(gè)成員卷之間進(jìn)行熱點(diǎn)數(shù)據(jù)均衡.哈希方案由于無(wú)法有效地在多個(gè)成員卷之間分散鍵范圍,因此在讀寫(xiě)混合負(fù)載下致使單個(gè)成員卷的壓力超過(guò)該卷的付費(fèi)IOPS、限制了多卷整體IOPS的發(fā)揮.輪詢方案相對(duì)于RAID和哈希方案,能夠?qū)?xiě)均衡到不同的存儲(chǔ)卷上,從而間接地使讀操作均衡,因此性能提高較快.

        5.2.3 不同讀寫(xiě)比例合成負(fù)載下的平均響應(yīng)時(shí)間

        如圖8所示,不同讀請(qǐng)求比例下各種方案的平均響應(yīng)時(shí)間.可以看到TANGO方案的平均響應(yīng)時(shí)間最小,隨著讀請(qǐng)求比例降低,平均響應(yīng)時(shí)間持續(xù)減少.在讀比例為70%時(shí),TANGO的平均時(shí)延僅為41us,比其它多卷方案中最低的輪詢方案降低了22%.這是因?yàn)門(mén)ANGO在寫(xiě)的過(guò)程中借助合并操作,實(shí)行了深入的數(shù)據(jù)分散布局,將數(shù)據(jù)寫(xiě)入到鍵范圍重合度最低的成員卷中,以避免過(guò)多請(qǐng)求訪問(wèn)同一個(gè)成員卷從而造成排隊(duì)時(shí)間過(guò)長(zhǎng).

        圖8 不同讀請(qǐng)求比例下各種方案的平均響應(yīng)時(shí)間Fig.8 Average response time under varied read-write ratios

        5.3 各成員卷性能

        需要指出的是,受云計(jì)算實(shí)例和亞馬遜云的限制,無(wú)法獲取RAID方式中各成員卷的I/O性能.

        5.3.1 各成員卷的平均IOPS

        如圖9所示,顯示了兩種讀請(qǐng)求比例下3種方案各成員卷的平均IOPS.可以看到,對(duì)于輪詢和哈希方案,在90%和50%的讀請(qǐng)求比例下,各成員卷之間的平均IOPS參差不齊,始終存在較大的差距.在90%讀請(qǐng)求比例下,輪詢方案和哈希方案的IOPS最高成員卷與最低成員卷的IOPS相差分別達(dá)到35%和37%.對(duì)于TANGO方案,兩種讀比例下的各成員卷IOPS均在2900附近,差異都很小,尤其是在50%的讀請(qǐng)求下,各成員卷的IOPS相差小于1%,且均接近每個(gè)卷的3000最大IOPS.

        圖9 兩種讀請(qǐng)求比例下3種方案的成員卷的平均IOPS

        5.3.2 各成員卷的實(shí)時(shí)IOPS

        為更直觀地說(shuō)明各成員卷之間讀負(fù)載不均衡對(duì)總體性能的影響,本次測(cè)試使用YCBS合成的不同比例的讀寫(xiě)負(fù)載,使用iostat獲取每個(gè)卷的實(shí)時(shí)IOPS,每種標(biāo)記表示一個(gè)卷,結(jié)果如圖10所示.

        從圖10中可以觀察到,輪詢和哈希方案下各個(gè)成員卷的實(shí)時(shí)IOPS在2000~3000間呈現(xiàn)明顯的分層,大部分時(shí)間只有1個(gè)或2個(gè)成員卷能夠運(yùn)行在最高的3000的IOPS狀態(tài),因此多卷整體性能沒(méi)有被充分發(fā)揮.

        TANGO方案下,各個(gè)成員卷的IOPS均維持在單卷最高的3000的IOPS附近運(yùn)行,且成員卷之間的IOPS差距較小.所以TANGO方案下的多卷整體性能最好.

        圖10 兩種讀請(qǐng)求比例下多卷方案各成員卷的實(shí)時(shí)IOPS

        另外,由于TANGO在寫(xiě)入時(shí)將負(fù)載進(jìn)行均勻分布,使每個(gè)成員卷都能以最高性能運(yùn)行,整體性能上移,因此能夠在更快的時(shí)間內(nèi)完成操作.

        5.3.3 多卷方案各成員卷實(shí)時(shí)IOPS的標(biāo)準(zhǔn)差

        如圖11所示,不同讀請(qǐng)求比例下各種方案的實(shí)時(shí)IOPS標(biāo)準(zhǔn)差,該標(biāo)準(zhǔn)差由所有成員卷的最高IOPS與最低IOPS計(jì)算而來(lái).可以觀察到,整體上,TANGO的標(biāo)準(zhǔn)差遠(yuǎn)小于輪詢和哈希方案.隨著運(yùn)行時(shí)間推移,TANGO各成員卷IOPS之間的標(biāo)準(zhǔn)方差逐漸減少,且穩(wěn)定在100左右.因?yàn)門(mén)ANGO能夠識(shí)別冷熱數(shù)據(jù)并且進(jìn)行負(fù)載調(diào)度遷移,而輪詢和哈希方案無(wú)法減少各卷之間的I/O負(fù)載不均衡,其標(biāo)準(zhǔn)差穩(wěn)定在400左右.

        圖11 不同讀請(qǐng)求比例下各種方案的實(shí)時(shí)IOPS標(biāo)準(zhǔn)方差Fig.11 Realtime IOPS standard deviations of each volume for varied read-write ratio and approaches

        5.4 數(shù)據(jù)遷移開(kāi)銷

        TANGO的開(kāi)銷可以分為兩個(gè)部分:1) 寫(xiě)入決策改變合并操作中新生成sstable寫(xiě)入位置帶來(lái)的開(kāi)銷;2) 數(shù)據(jù)遷移的開(kāi)銷.寫(xiě)入決策的執(zhí)行可以減輕數(shù)據(jù)遷移的壓力,因?yàn)閿?shù)據(jù)被按照鍵范圍分布的更加均勻.

        寫(xiě)入決策需要統(tǒng)計(jì)各個(gè)成員卷的關(guān)鍵信息,判斷鍵范圍重疊情況,所有的信息統(tǒng)計(jì)和判斷操作都是通過(guò)額外線程來(lái)執(zhí)行的.因?yàn)閟stable的粒度在MB級(jí)別,所以只需要少量的存儲(chǔ)空間和CPU計(jì)算資源即可,不會(huì)引起明顯的性能開(kāi)銷.由于TANGO僅改變了sstable的寫(xiě)位置,因此不會(huì)對(duì)sstable的持久化和合并操作造成額外影響.

        因?yàn)樵诙嗑泶鎯?chǔ)體中,熱點(diǎn)聚集于某個(gè)存儲(chǔ)卷中的多個(gè)sstable中,并且該卷的性能達(dá)到上限后限制了其余卷的訪問(wèn),因此需要進(jìn)行熱數(shù)據(jù)的遷移來(lái)進(jìn)行讀負(fù)載均衡.

        因此,TANGO的主要開(kāi)銷是數(shù)據(jù)遷移.為了驗(yàn)證TANGO方案的遷移開(kāi)銷,引入了一個(gè)基于IOPS的數(shù)據(jù)遷移方案進(jìn)行對(duì)比.基于IOPS的遷移方案將I/O壓力最高的卷中的熱數(shù)據(jù)遷移到當(dāng)前I/O壓力最小的卷.

        表3 TANGO與基于IOPS策略的遷移數(shù)據(jù)量和次數(shù)對(duì)比(歸一化后的結(jié)果)Table 3 Migration times and data size(normalized)

        測(cè)試結(jié)果如表3和圖12所示,表3展示了兩種遷移方案的遷移次數(shù)和遷移數(shù)據(jù)總量的對(duì)比,圖12展示了每次遷移耗時(shí)的分布情況.從表3可以觀察到,基于IOPS的遷移方案遷移次數(shù)比TANGO多了65%,遷移數(shù)據(jù)量也比TANGO多了65.5%.從圖12可以觀察到,基于IOPS的遷移方案中75%的遷移耗時(shí)100ms左右,因基于IOPS的方案從IOPS最高的存儲(chǔ)卷中遷移sstable時(shí)讀取較慢,這進(jìn)一步增加其遷移耗時(shí).表3和圖12的結(jié)果表明,TANGO的讀負(fù)載遷移開(kāi)銷較低.

        圖12 TANGO與基于IOPS策略的單次遷移耗時(shí)對(duì)比Fig.12 Time for one migration

        6 總 結(jié)

        相比同容量的單個(gè)云存儲(chǔ)卷,組合使用多個(gè)小容量的單卷能夠獲得更好的性能.但是簡(jiǎn)單地組合使用多個(gè)成員卷并不能充分發(fā)揮出多卷的最大性能,且現(xiàn)有的多卷負(fù)載均衡方案依然存在單個(gè)成員卷讀訪問(wèn)熱度過(guò)高而使整體性能無(wú)法完全發(fā)揮的問(wèn)題.為此,提出云存儲(chǔ)多卷負(fù)載均衡的LSM鍵值存儲(chǔ)系統(tǒng)TANGO.TANGO從讀和寫(xiě)兩方面入手來(lái)調(diào)整負(fù)載在多卷之間的分布:在寫(xiě)方面,通過(guò)改善LSM的合并操作來(lái)優(yōu)化初始數(shù)據(jù)布局,選擇鍵范圍重疊最小的成員卷寫(xiě)入新生成的sstable;在讀方面,通過(guò)遷移少量熱點(diǎn)數(shù)據(jù)來(lái)進(jìn)一步均衡各成員卷間的負(fù)載.在亞馬遜云存儲(chǔ)卷上評(píng)估表明,相比相同存儲(chǔ)容量的單卷,采用了TANGO方案的同等容量的多卷可提高7倍左右的性能;相比采用其它方案的多卷,TANGO能提升20%以上的性能,且各成員卷間負(fù)載更加均衡.

        猜你喜歡
        輪詢鍵值存儲(chǔ)系統(tǒng)
        分布式存儲(chǔ)系統(tǒng)在企業(yè)檔案管理中的應(yīng)用
        哈爾濱軸承(2020年2期)2020-11-06 09:22:36
        非請(qǐng)勿進(jìn) 為注冊(cè)表的重要鍵值上把“鎖”
        天河超算存儲(chǔ)系統(tǒng)在美創(chuàng)佳績(jī)
        基于等概率的ASON業(yè)務(wù)授權(quán)設(shè)計(jì)?
        一鍵直達(dá) Windows 10注冊(cè)表編輯高招
        依托站點(diǎn)狀態(tài)的兩級(jí)輪詢控制系統(tǒng)時(shí)延特性分析
        利用時(shí)間輪詢方式操作DDR3實(shí)現(xiàn)多模式下數(shù)據(jù)重排
        華為震撼發(fā)布新一代OceanStor 18000 V3系列高端存儲(chǔ)系統(tǒng)
        一種基于STM32的具有斷電保護(hù)機(jī)制的采集存儲(chǔ)系統(tǒng)設(shè)計(jì)
        數(shù)據(jù)鏈輪詢多網(wǎng)優(yōu)化設(shè)計(jì)方法研究*
        人妻丝袜无码国产一区| 黄片国产一区二区三区| 国产日本精品视频一区二区| 亚洲人成77777在线播放网站| 国内精品视频一区二区三区| 久久精品视频按摩| 日韩中文字幕熟女人妻| 日本天堂免费观看| 国产成人无码精品午夜福利a| 国产v精品成人免费视频400条| 国产女主播福利在线观看| 无码人妻精品一区二区三区夜夜嗨| 久久午夜伦鲁片免费无码| a级国产精品片在线观看| 日本高清一区二区不卡| 女人高潮内射99精品| 亚洲成在人线av| 国产日韩午夜视频在线观看 | 国产91中文| 国产成人福利av一区二区三区| 一本色道久在线综合色| 女人被狂躁c到高潮| 国产成人久久精品二区三区牛| 丝袜美腿一区二区在线观看| 日韩女优精品一区二区三区 | 狠狠人妻久久久久久综合| 精品理论一区二区三区| 不卡av网站一区二区三区| 中文乱码字慕人妻熟女人妻| 亚洲中文字幕在线爆乳| av网址在线一区二区| 国产av一区二区三区天堂综合网| 亚洲女人被黑人巨大进入| 特黄三级一区二区三区| 丰满人妻猛进入中文字幕| 暖暖视频在线观看免费| 日本女优中文字幕看片| 国产成人精品一区二区三区av| 久久久久av无码免费网| 亚洲一级黄色毛片| 日韩精品久久伊人中文字幕|