国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種分布式持久性內(nèi)存文件系統(tǒng)的一致性機(jī)制

2020-03-21 01:11:08陸游游陳游旻屠要峰舒繼武
關(guān)鍵詞:持久性原語(yǔ)服務(wù)器端

陳 波 陸游游 蔡 濤 陳游旻 屠要峰 舒繼武

1(江蘇大學(xué)計(jì)算機(jī)科學(xué)與通信工程學(xué)院 江蘇鎮(zhèn)江 212013) 2(清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系 北京 100084) 3(中興通訊股份有限公司 南京 210012)(chenbo_9312@163.com)

近年來,新興的非易失存儲(chǔ)器[1-3](non-volatile memory, NVM)具有字節(jié)可尋址、非易失、存儲(chǔ)密度高和訪問延遲低等特性,其通過內(nèi)存總線連接CPU的NVM形態(tài)也被稱為持久性內(nèi)存(persistent memory, PM).NVM的出現(xiàn)重新定義了計(jì)算機(jī)體系結(jié)構(gòu)中易失性與非易失性的界限,以往由系統(tǒng)軟件保障的數(shù)據(jù)一致性轉(zhuǎn)變?yōu)橛蒀PU硬件保障.另一方面,遠(yuǎn)程直接內(nèi)存訪問(remote direct memory access, RDMA)因其高速、超低延時(shí)、零拷貝和內(nèi)核旁路的網(wǎng)絡(luò)傳輸特性,逐漸被應(yīng)用到數(shù)據(jù)中心.RDMA可以實(shí)現(xiàn)應(yīng)用程序間點(diǎn)對(duì)點(diǎn)的通信,同時(shí)避免了上下文切換、冗余內(nèi)存拷貝和內(nèi)核網(wǎng)絡(luò)協(xié)議棧等開銷.持久性內(nèi)存和RDMA的出現(xiàn)為構(gòu)建新型存儲(chǔ)系統(tǒng)[4-12]提供了新的機(jī)遇.

持久性內(nèi)存和RDMA具有的新特性對(duì)存儲(chǔ)系統(tǒng)的一致性設(shè)計(jì)提出了2項(xiàng)挑戰(zhàn):1)現(xiàn)代處理器利用多核和內(nèi)部緩存來提高整體運(yùn)行速度,通常采用亂序執(zhí)行技術(shù),導(dǎo)致最終寫入內(nèi)存的數(shù)據(jù)并非是預(yù)期的結(jié)果,針對(duì)持久性內(nèi)存會(huì)出現(xiàn)數(shù)據(jù)一致性的問題.此時(shí),為了將數(shù)據(jù)順序地寫入持久性內(nèi)存,CPU需要主動(dòng)執(zhí)行數(shù)據(jù)刷寫指令,然而此過程開銷高昂,降低CPU的處理能力,影響持久性內(nèi)存和RDMA的性能優(yōu)勢(shì);2)RDMA的通訊過程需要注冊(cè)內(nèi)存,且提供了單向原語(yǔ)可以繞過服務(wù)器端CPU直接讀寫已注冊(cè)的內(nèi)存.為了性能考慮,RDMA會(huì)將數(shù)據(jù)先寫入至末級(jí)高速緩存,由于CPU不能及時(shí)將數(shù)據(jù)刷寫至持久性內(nèi)存,因此,一旦出現(xiàn)系統(tǒng)崩潰,原始數(shù)據(jù)將無法有效恢復(fù).

對(duì)于數(shù)據(jù)的一致性策略,現(xiàn)有的存儲(chǔ)系統(tǒng)要么完全不考慮數(shù)據(jù)一致性例如Octopus[13],要么使用常見的Redo/Undo[14]日志機(jī)制、Log-Structure技術(shù)或影子分頁(yè)[15](shadow paging)技術(shù)等來保障操作的原子性.然而,使用Redo/Undo日志會(huì)導(dǎo)致數(shù)據(jù)重復(fù)寫問題,在加重?cái)?shù)據(jù)持久化開銷的同時(shí),還會(huì)浪費(fèi)帶寬和加速持久性內(nèi)存磨損;而影子分頁(yè)技術(shù)采用異地更新數(shù)據(jù)塊的方法,將原有指向舊數(shù)據(jù)塊的指針更新指向新的數(shù)據(jù)塊,但這將有可能導(dǎo)致所有的數(shù)據(jù)更新蔓延到根節(jié)點(diǎn)[15].針對(duì)服務(wù)器端不可感知客戶端寫入數(shù)據(jù)的問題,一種可行的方案是采用客戶端執(zhí)行RDMA send原語(yǔ)發(fā)送數(shù)據(jù)給服務(wù)器端,服務(wù)器端將數(shù)據(jù)寫到指定的地址,然后執(zhí)行數(shù)據(jù)持久化操作,但此方式引入了冗余拷貝[16].

為此,本文提出并實(shí)現(xiàn)了一種分布式持久性內(nèi)存文件系統(tǒng)的一致性機(jī)制CCM,該機(jī)制主要包括:首先提出并實(shí)現(xiàn)了一種基于操作日志的一致性保障策略,將元數(shù)據(jù)地址和數(shù)據(jù)的地址與大小寫入操作日志,并原子地修改操作日志的尾指針且持久化,這樣系統(tǒng)崩潰后,可通過持久化的操作日志進(jìn)行恢復(fù),這樣可保證元數(shù)據(jù)和數(shù)據(jù)的一致性.然后,設(shè)計(jì)了一種客戶端對(duì)服務(wù)器端遠(yuǎn)程寫一致性策略,該策略中客戶端使用RDMA write-with-imm原語(yǔ)遠(yuǎn)程寫入服務(wù)器端內(nèi)存,此原語(yǔ)附帶客戶端標(biāo)識(shí)符,服務(wù)器端可以感知其攜帶的客戶端標(biāo)識(shí)符,進(jìn)而服務(wù)器端CPU可以定位需要刷寫的地址,對(duì)客戶端寫入的數(shù)據(jù)執(zhí)行持久化操作,保證數(shù)據(jù)的持久化.最后,實(shí)現(xiàn)了一種服務(wù)器端的數(shù)據(jù)異步持久化,通過對(duì)元數(shù)據(jù)、數(shù)據(jù)和操作日志執(zhí)行異步刷寫,降低了持久化操作的開銷.

1 相關(guān)工作

為保證系統(tǒng)發(fā)生故障后能恢復(fù)一致性的狀態(tài),現(xiàn)有的持久性內(nèi)存存儲(chǔ)系統(tǒng)一般使用日志的方式來保障一致性,也有不少系統(tǒng)未考慮一致性這個(gè)問題.下面從持久性內(nèi)存文件系統(tǒng)一致性機(jī)制和面向RDMA的分布式持久性內(nèi)存文件系統(tǒng)一致性機(jī)制2個(gè)方面介紹相關(guān)工作.

1) 持久性內(nèi)存文件系統(tǒng)一致性機(jī)制

本文的一致性指的是系統(tǒng)斷電或故障后數(shù)據(jù)仍舊一致.目前在單機(jī)上的典型的持久性內(nèi)存文件系統(tǒng)一致性研究工作有:NOVA[17]是加利福利亞大學(xué)圣地亞哥分校提出的基于混合內(nèi)存的日志結(jié)構(gòu)文件系統(tǒng),它巧妙地結(jié)合了日志結(jié)構(gòu)組織方式與易失/非易失性內(nèi)存的特性,利用日志結(jié)構(gòu)修改的原子性和混合內(nèi)存快速地隨機(jī)訪問性能設(shè)計(jì)并實(shí)現(xiàn)了一套強(qiáng)一致性的操作接口.它為每個(gè)索引節(jié)點(diǎn)分配一個(gè)日志,提高了文件系統(tǒng)讀寫和恢復(fù)階段的并發(fā)性能,針對(duì)多個(gè)索引節(jié)點(diǎn)間的操作,它采用了Journaling的方式保障數(shù)據(jù)修改的原子性.BPFS[18]是微軟公司提出的字節(jié)尋址的持久性內(nèi)存文件系統(tǒng),它通過修改CPU緩存控制器和內(nèi)存控制器等硬件的方式來保障數(shù)據(jù)寫入的順序性,并利用硬件級(jí)別的原子寫操作和影子技術(shù)實(shí)現(xiàn)了數(shù)據(jù)塊的原地更新,保障數(shù)據(jù)的一致性.但是針對(duì)跨目錄間的數(shù)據(jù)移動(dòng)拷貝操作它需要較大的空間記錄原子操作的更新,開銷較大.PMFS[19]是英特爾公司為持久性內(nèi)存設(shè)計(jì)的輕量級(jí)文件系統(tǒng),針對(duì)元數(shù)據(jù)和數(shù)據(jù)分別采用Journaling和寫時(shí)復(fù)制技術(shù)來保障一致性,然而不能同時(shí)保障元數(shù)據(jù)和數(shù)據(jù)修改的一致性.Ext4-DAX[20]繞過操作系統(tǒng)的頁(yè)緩存,可以更高效地讀寫持久性存儲(chǔ)設(shè)備.針對(duì)元數(shù)據(jù)的修改采用Journaling保障一致性,針對(duì)數(shù)據(jù)的修改未提供類似的機(jī)制,所以不能保障數(shù)據(jù)修改的原子性.Aerie[21]是惠普公司提出的面向持久性內(nèi)存的文件系統(tǒng)操作接口,實(shí)現(xiàn)了應(yīng)用程序直接讀寫持久性內(nèi)存而無需內(nèi)核的介入,然而其未考慮數(shù)據(jù)的一致性.除此之外,Wu等人[22]提出的面向持久性內(nèi)存的文件系統(tǒng)SCMFS,構(gòu)建在虛擬內(nèi)存空間之上,并利用內(nèi)存管理單元將文件系統(tǒng)的地址映射至持久性內(nèi)存的物理地址,同樣未考慮文件系統(tǒng)的一致性.這些工作均是單機(jī)的持久性內(nèi)存文件系統(tǒng)一致性機(jī)制研究工作.

2) 面向RDMA持久性內(nèi)存文件系統(tǒng)一致性機(jī)制

在面向RDMA的分布式持久性內(nèi)存系統(tǒng)下,Islam等人[23]結(jié)合RDMA和持久性內(nèi)存的特性在HDFS基礎(chǔ)上實(shí)現(xiàn)了分布式文件系統(tǒng)NVFS,它利用RDMA的高性能特性設(shè)計(jì)并實(shí)現(xiàn)了一套高效的網(wǎng)絡(luò)通信接口,利用字節(jié)尋址的持久性內(nèi)存構(gòu)建緩沖池,將寫前日志和計(jì)算的中間結(jié)果保存在NVM,這極大提高了系統(tǒng)整體性能,然而它未考慮數(shù)據(jù)的一致性.Lu等人[13]設(shè)計(jì)并實(shí)現(xiàn)了分布式持久性內(nèi)存文件系統(tǒng)Octopus,它將文件系統(tǒng)的讀寫操作與RDMA讀寫原語(yǔ)相結(jié)合起來,實(shí)現(xiàn)了一套高性能的遠(yuǎn)程過程調(diào)用和讀寫接口.同時(shí),利用RDMA的讀寫和原子操作實(shí)現(xiàn)了分布式事務(wù)機(jī)制,充分發(fā)揮RDMA的性能優(yōu)勢(shì),減少了傳統(tǒng)事務(wù)操作中網(wǎng)絡(luò)通信和CPU處理所帶來的開銷.然而,它未考慮本地的數(shù)據(jù)和元數(shù)據(jù)一致性.

上述研究工作在一致性方面的相關(guān)工作總結(jié)如表1所示:

Table 1 Related Works About Consistency表1 一致性機(jī)制相關(guān)工作

2 分布式持久性內(nèi)存文件系統(tǒng)一致性機(jī)制框架設(shè)計(jì)

本文提出了一種分布式持久性內(nèi)存文件系統(tǒng)的一致性機(jī)制CCM,其整體系統(tǒng)結(jié)構(gòu)如圖1所示:分為客戶端和服務(wù)器端,服務(wù)器端的設(shè)計(jì)由存儲(chǔ)管理、遠(yuǎn)程過程調(diào)用和一致性組成.

Fig.1 Architecture of CCM圖1 一致性機(jī)制結(jié)構(gòu)圖

2.1 存儲(chǔ)管理

服務(wù)器端存儲(chǔ)管理主要包含元數(shù)據(jù)和數(shù)據(jù)管理、Hash索引管理和日志管理3個(gè)方面.1)元數(shù)據(jù)和數(shù)據(jù)管理:存儲(chǔ)于持久性內(nèi)存,其中元數(shù)據(jù)區(qū)存儲(chǔ)著數(shù)據(jù)文件大小,修改時(shí)間和數(shù)據(jù)地址等信息,數(shù)據(jù)區(qū)存儲(chǔ)著文件和目錄數(shù)據(jù)塊,存儲(chǔ)方式如圖2所示,采用寫時(shí)復(fù)制方式,相比于Log-Structure組織方式,能減少垃圾回收的開銷.服務(wù)器端各數(shù)據(jù)區(qū)組成分布式持久共享內(nèi)存池,從而能不依賴本地文件系統(tǒng)直接管理數(shù)據(jù)對(duì)象,減少了IO請(qǐng)求在內(nèi)存中的拷貝.2)Hash索引管理:存儲(chǔ)于DRAM,存儲(chǔ)著元數(shù)據(jù)的索引信息,通過Hash表索引文件或目錄的元數(shù)據(jù),其中每一個(gè)條目包含文件名,文件索引節(jié)點(diǎn)和指向具有相同Hash值的下一個(gè)條目,通過文件全路徑可以計(jì)算出元數(shù)據(jù)的索引信息,進(jìn)而得到索引節(jié)點(diǎn)的物理地址.3)日志管理:用于保存文件系統(tǒng)操作的日志,存儲(chǔ)于持久性內(nèi)存.

Fig.2 The layout of metadata and data圖2 元數(shù)據(jù)和數(shù)據(jù)組織方式

2.2 遠(yuǎn)程過程調(diào)用

如圖1所示,客戶端與服務(wù)器端通信的方式是采用RPC機(jī)制,本文使用RDMA write_with_imm原語(yǔ)構(gòu)建RPC機(jī)制,imm_data的內(nèi)容是客戶端標(biāo)識(shí)符,保證全局唯一性,相比于RDMA write原語(yǔ),可以減少服務(wù)器端CPU輪詢消息緩存區(qū)的時(shí)間開銷.在數(shù)據(jù)讀寫密集的場(chǎng)景下服務(wù)器端CPU容易出現(xiàn)瓶頸[16],本文將使用客戶端主動(dòng)讀寫數(shù)據(jù)的方式,即客戶端發(fā)送讀寫請(qǐng)求至服務(wù)器端,服務(wù)器端將該請(qǐng)求的元數(shù)據(jù)(讀寫內(nèi)存地址信息)返回給客戶端,客戶端主動(dòng)讀寫服務(wù)器端內(nèi)存,這種方式的好處是:利用RDMA硬件特性將服務(wù)器端CPU的處理負(fù)載均攤到客戶端.

2.3 一致性

面向RDMA的分布式持久性內(nèi)存文件系統(tǒng)的一致性問題主要來源2個(gè)方面:1)CPU不能保障將數(shù)據(jù)從高速緩存順序持久化至持久性內(nèi)存,因此,需要軟件系統(tǒng)執(zhí)行硬件指令強(qiáng)制刷寫數(shù)據(jù)至持久性內(nèi)存;2)客戶端使用RDMA直寫操作繞過服務(wù)器端CPU將數(shù)據(jù)直接寫入服務(wù)器端的內(nèi)存,此時(shí)服務(wù)器端CPU沒有感知到內(nèi)存的寫入操作,因此也無法執(zhí)行對(duì)應(yīng)的持久化操作.此外,強(qiáng)制持久化的硬件指令開銷高昂,例如,CLFLUSH指令延遲大約200 ns[24],這極大浪費(fèi)了CPU的處理帶寬.

針對(duì)服務(wù)器端CPU無法主動(dòng)執(zhí)行刷寫操作的問題,本文設(shè)計(jì)了一種客戶端對(duì)服務(wù)器端遠(yuǎn)程寫一致性策略,可以獲取客戶端的寫入操作.針對(duì)持久化操作開銷高的問題,本文實(shí)現(xiàn)了一種服務(wù)器端的數(shù)據(jù)異步持久化,該方法通過對(duì)元數(shù)據(jù)、數(shù)據(jù)和操作日志執(zhí)行異步持久化來降低持久化操作引入的開銷.

3 一致性保障技術(shù)

我們面向分布式持久性內(nèi)存文件系統(tǒng)實(shí)現(xiàn)了一致性機(jī)制CCM,其關(guān)鍵技術(shù)包括3個(gè)方面:1)基于操作日志的一致性保障策略;2)客戶端對(duì)服務(wù)器端的遠(yuǎn)程寫一致性;3)服務(wù)器端的數(shù)據(jù)異步持久化.

3.1 基于操作日志的一致性保障策略

Fig.3 Operation log圖3 操作日志

操作日志記錄著每一次操作的元信息,其內(nèi)容如圖3所示,記錄著該操作的類型、日志長(zhǎng)度、Inode號(hào)、元數(shù)據(jù)首地址和數(shù)據(jù)首地址及大小.具體執(zhí)行過程是:客戶端向服務(wù)器端執(zhí)行讀寫操作,服務(wù)器端將該操作的元信息寫入日志并持久化,原子更新日志尾指針并持久化,此保障此次操作的一致性.

例如追加寫文件A,首先服務(wù)器端將舊版本元數(shù)據(jù)和數(shù)據(jù)拷貝至新的地址,并對(duì)新版本元數(shù)據(jù)進(jìn)行修改,此時(shí),操作日志記錄操作的類型為追加寫,元數(shù)據(jù)地址為新版本元數(shù)據(jù)的首地址,數(shù)據(jù)地址為新版本數(shù)據(jù)的首地址和文件A即將追加寫入的數(shù)據(jù)大小,然后將待寫入數(shù)據(jù)的地址信息返回給客戶端,客戶端根據(jù)該地址信息寫入數(shù)據(jù).本系統(tǒng)的一致性依賴于操作日志的尾指針是否持久化,需要保證在所有刷寫操作完成之后原子更新日志尾指針并持久化.當(dāng)系統(tǒng)崩潰時(shí)重放日志可恢復(fù)到一致性狀態(tài),如果日志寫入一半,系統(tǒng)崩潰,由于之前的日志狀態(tài)是一致的,持久性內(nèi)存的分配信息可恢復(fù),不會(huì)出現(xiàn)持久性內(nèi)存泄漏的問題.

Fig.4 Remote data flushing圖4 遠(yuǎn)程寫感知的流程圖

3.2 客戶端對(duì)服務(wù)器端遠(yuǎn)程寫一致性

RDMA中客戶端主動(dòng)寫操作流程是客戶端向服務(wù)器端發(fā)送寫請(qǐng)求,服務(wù)器端接收請(qǐng)求后將該請(qǐng)求的元數(shù)據(jù)返回給客戶端,客戶端接收元數(shù)據(jù)后執(zhí)行RDMA write原語(yǔ),將數(shù)據(jù)寫入服務(wù)器端對(duì)應(yīng)的地址.然而,客戶端執(zhí)行RDMA write原語(yǔ)寫服務(wù)器端內(nèi)存的方式存在一個(gè)問題,即服務(wù)器端CPU對(duì)客戶端遠(yuǎn)程寫數(shù)據(jù)的不可感知性,當(dāng)系統(tǒng)崩潰時(shí),無法保證服務(wù)器端的數(shù)據(jù)持久化.

因此,本文設(shè)計(jì)了一種客戶端對(duì)服務(wù)器端的遠(yuǎn)程寫一致性策略,使服務(wù)器端能感知客戶端的寫入操作,其流程如圖4(a)所示,客戶端在接收到元數(shù)據(jù)后,使用RDMA write_with_imm原語(yǔ)執(zhí)行遠(yuǎn)程寫,該原語(yǔ)與RDMA write類似,不同點(diǎn)是當(dāng)執(zhí)行遠(yuǎn)程寫時(shí),服務(wù)器端接收隊(duì)列消費(fèi)一個(gè)接收請(qǐng)求,獲得一個(gè)32 b的imm_data和感知客戶端的寫入操作,進(jìn)而執(zhí)行持久化操作.存在另一種方式,使得服務(wù)器端也可感知客戶端的寫入操作,如圖4(b)所示,客戶端利用RDMA send原語(yǔ)發(fā)送數(shù)據(jù)至服務(wù)器端,然后服務(wù)器端將數(shù)據(jù)從接收緩沖區(qū)拷貝至指定的地址.相比于RDMA send原語(yǔ),使用RDMA write_with_imm原語(yǔ)執(zhí)行遠(yuǎn)程寫操作可減少1次內(nèi)存拷貝開銷.

Fig.5 The detailed process of flushing data圖5 數(shù)據(jù)刷寫過程

3.3 服務(wù)器端數(shù)據(jù)異步持久化

在數(shù)據(jù)持久化過程中,CPU刷寫操作的開銷非常高昂,等待服務(wù)器端完成刷寫操作會(huì)產(chǎn)生較高的延遲,本文不阻塞主線程的執(zhí)行,通過數(shù)據(jù)異步持久化,避免了延遲的產(chǎn)生,提高了服務(wù)器端CPU的處理效率.異步持久化后的狀態(tài)信息由客戶端維護(hù),即當(dāng)客戶端發(fā)起請(qǐng)求時(shí),服務(wù)器端通過判斷操作日志當(dāng)前尾指針與上次尾指針的地址大小,將上一次異步請(qǐng)求的持久化狀態(tài)返回給客戶端,讓客戶端獨(dú)立管理操作一致性的狀態(tài)信息.

現(xiàn)在分析不同場(chǎng)景下服務(wù)器端使用異步刷寫保障一致性的方法.數(shù)據(jù)刷寫過程如圖5所示.1)當(dāng)執(zhí)行至遠(yuǎn)程寫數(shù)據(jù)或異步刷寫數(shù)據(jù)時(shí)系統(tǒng)崩潰,將部分或全部元數(shù)據(jù)、數(shù)據(jù)或日志寫入持久性內(nèi)存,但操作日志尾指針未修改,則重放操作日志會(huì)恢復(fù)至上一次一致性狀態(tài),此次操作的所有記錄無效;2)當(dāng)執(zhí)行完修改操作日志尾指針時(shí)系統(tǒng)崩潰,由于尾指針未執(zhí)行持久化刷寫操作,結(jié)果和步驟1相同;3)當(dāng)執(zhí)行完刷寫操作日志尾指針或更新Hash表時(shí)系統(tǒng)崩潰,此時(shí)操作日志的尾指針已持久化,表明此次操作所有數(shù)據(jù)已持久化,通過重放日志可以重新執(zhí)行此操作,恢復(fù)當(dāng)前一致性狀態(tài).

執(zhí)行異步持久化時(shí),本文為1~16 KB的小文件實(shí)現(xiàn)了Batch刷寫方法,即基于寫入次數(shù)或?qū)懭霐?shù)據(jù)量批處理優(yōu)化方法,該方法的好處是可以減少異步線程的調(diào)度開銷,提高系統(tǒng)性能.

4 實(shí) 驗(yàn)

由于一致性機(jī)制會(huì)影響系統(tǒng)的性能,本節(jié)實(shí)驗(yàn)將從3個(gè)方面對(duì)分布式持久性內(nèi)存文件系統(tǒng)的一致性機(jī)制進(jìn)行測(cè)試.1)對(duì)比測(cè)試客戶端對(duì)服務(wù)器端的遠(yuǎn)程寫帶寬的性能;2)測(cè)試服務(wù)器端數(shù)據(jù)的異步持久化對(duì)寫帶寬的性能影響;3)同類數(shù)據(jù)一致性機(jī)制寫帶寬性能測(cè)試.

4.1 實(shí)驗(yàn)環(huán)境

在實(shí)驗(yàn)測(cè)試中,本文測(cè)試的IO大小為1 KB~1 MB,定義1~16 KB的文件為小文件,超過16 KB定義為大文件.使用的實(shí)驗(yàn)環(huán)境配置如表2所示:客戶端和服務(wù)器端配置為相同運(yùn)行環(huán)境,當(dāng)前還缺乏商用的持久性內(nèi)存設(shè)備,本文測(cè)試環(huán)境使用CLWB和PCOMMIT指令模擬持久性內(nèi)存操作延遲.

Table 2 Experiment Configuration表2 實(shí)驗(yàn)環(huán)境配置

4.2 遠(yuǎn)程寫帶寬性能測(cè)試

本節(jié)主要測(cè)試客戶端對(duì)服務(wù)器端的遠(yuǎn)程寫帶寬,并與客戶端使用RDMA send原語(yǔ)發(fā)送數(shù)據(jù)至服務(wù)器端的一致性策略進(jìn)行比較,實(shí)驗(yàn)結(jié)果如圖6所示,客戶端使用RDMA write-with-imm原語(yǔ)對(duì)服務(wù)器端遠(yuǎn)程寫一致性策略在IO大小為1 KB~1 MB時(shí),帶寬傳輸速率提升9%~45%,主要原因是該策略減少一次內(nèi)存拷貝開銷.客戶端使用RDMA send原語(yǔ)將數(shù)據(jù)發(fā)到給服務(wù)器端時(shí),服務(wù)器端CPU需從緩沖區(qū)將數(shù)據(jù)拷貝到數(shù)據(jù)區(qū),這一次的內(nèi)存拷貝影響了服務(wù)器端CPU的處理能力.

Fig.6 Write bandwidth of RDMA verbs圖6 RDMA不同原語(yǔ)寫帶寬測(cè)試

4.3 數(shù)據(jù)異步持久化對(duì)寫帶寬性能影響測(cè)試

本節(jié)實(shí)驗(yàn)使用的IO大小范圍為1 KB~1 MB,實(shí)驗(yàn)結(jié)果如圖7所示,在IO大小為1 MB時(shí),異步持久化的寫帶寬相比同步刷寫模式提升了7倍左右,這是由于同步刷寫大文件耗時(shí)長(zhǎng)從而影響了服務(wù)器端CPU的處理能力,而異步線程刷寫過程大文件并不影響主線程的執(zhí)行效率.當(dāng)IO大小為1~16 KB之間時(shí),異步持久化的寫帶寬性能低于同步刷寫,主要是異步線程占用的資源過多,為此本文設(shè)計(jì)了Batch的優(yōu)化方法,明顯提高了小文件刷寫的性能,當(dāng)IO大小為4 KB和16 KB時(shí),寫帶寬性能分別提高2.5倍和1.4倍.

Fig.7 Write bandwidth of sync and async圖7 同步和異步寫帶寬測(cè)試

綜合以上優(yōu)化方法,服務(wù)器端使用數(shù)據(jù)異步持久化后,實(shí)驗(yàn)結(jié)果如圖8所示,采用write-with-imm原語(yǔ)的一致性機(jī)制CCM相比使用send-recv原語(yǔ)的一致性機(jī)制具有更高的寫帶寬,當(dāng)IO大小為256 KB和1 MB時(shí),前者較后者寫帶寬性能提升29%和35%,主要原因是前者減少1次內(nèi)存拷貝,在RDMA作為網(wǎng)絡(luò)通信方式時(shí),該拷貝所帶來的時(shí)間開銷會(huì)嚴(yán)重影響服務(wù)器端的處理效率.在IO大小為1 MB時(shí),分布式持久性內(nèi)存文件系統(tǒng)的一致性機(jī)制CCM寫帶寬達(dá)到5 582 MBps,與Octopus(5 629 MBps)相比,性能影響控制在1%以內(nèi),相比于原生的網(wǎng)絡(luò)帶寬(6 305 MBps),寫帶寬性能達(dá)到88%.

Fig.8 Impact of consistency mechanism圖8 一致性機(jī)制對(duì)寫帶寬的影響測(cè)試

4.4 同類數(shù)據(jù)一致性機(jī)制寫帶寬性能測(cè)試

Fig.9 Write bandwidth of consistency mechanism圖9 不同一致性機(jī)制寫寬帶測(cè)試

本節(jié)實(shí)驗(yàn)的對(duì)比對(duì)象為Ordered Journaling一致性機(jī)制,實(shí)驗(yàn)結(jié)果如圖9所示,當(dāng)IO大小為1 MB時(shí),Ordered Journaling的一致性機(jī)制寫帶寬為5 389 MBps,相比于Octopus,對(duì)寫帶寬性能的影響為5%,而本文所設(shè)計(jì)的一致性機(jī)制CCM的寫帶寬為5 582 MBps,相比于Octopus,對(duì)寫帶寬性能的影響為1%,這主要是因?yàn)镺rdered Journaling機(jī)制會(huì)存在元數(shù)據(jù)重復(fù)寫的開銷,而CCM設(shè)計(jì)了基于操作日志的一致性保障策略,避免了多余的寫操作.

5 總 結(jié)

非易失性內(nèi)存具有字節(jié)尋址、低功耗和讀寫性能接近DRAM等特性,有望代替DRAM成為新的主存器件.RDMA能有效提高吞吐率、降低網(wǎng)絡(luò)通信延遲,為設(shè)計(jì)高效的分布式文件系統(tǒng)提供了支撐.本文的工作建立在我們之前的工作Octopus之上,為分布式持久性內(nèi)存文件系統(tǒng)提供一致性保障.本文設(shè)計(jì)了一種客戶端對(duì)服務(wù)器端遠(yuǎn)程寫一致性策略和實(shí)現(xiàn)了服務(wù)器端的數(shù)據(jù)異步持久化.實(shí)驗(yàn)結(jié)果表明,相比于Octopus,分布式持久性內(nèi)存文件系統(tǒng)一致性機(jī)制對(duì)寫帶寬性能的影響控制在1%以內(nèi).

猜你喜歡
持久性原語(yǔ)服務(wù)器端
測(cè)試原語(yǔ):存儲(chǔ)器故障最小檢測(cè)序列的統(tǒng)一特征
湖北省持久性有機(jī)物(POPs)產(chǎn)排特性分析
化工管理(2021年7期)2021-05-13 00:44:56
具有授粉互惠關(guān)系的非自治周期植物傳粉系統(tǒng)的持久性
淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
成功(2018年10期)2018-03-26 02:56:14
密碼消息原語(yǔ)通信協(xié)議介紹及安全分析
在Windows中安裝OpenVPN
一類離散Schoner競(jìng)爭(zhēng)模型的持久性
持久性發(fā)疹性斑狀毛細(xì)血管擴(kuò)張一例
基于原語(yǔ)自動(dòng)生成的安全協(xié)議組合設(shè)計(jì)策略及應(yīng)用研究
網(wǎng)頁(yè)防篡改中分布式文件同步復(fù)制系統(tǒng)
宜宾县| 霍城县| 五寨县| 黑山县| 牡丹江市| 石城县| 龙岩市| 宁夏| 清丰县| 喀什市| 平潭县| 营山县| 葫芦岛市| 濉溪县| 竹山县| 罗甸县| 玉环县| 梅河口市| 东宁县| 进贤县| 嘉禾县| 麻栗坡县| 平遥县| 平顺县| 凤山市| 瑞丽市| 自贡市| 衡南县| 秦皇岛市| 六枝特区| 溧阳市| 石河子市| 自治县| 安国市| 柘城县| 海口市| 吉林省| 巴东县| 平塘县| 荣昌县| 潜江市|