亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

數(shù)據(jù)云端存儲(chǔ)方法

文檔序號(hào):8445373閱讀:760來(lái)源:國(guó)知局
數(shù)據(jù)云端存儲(chǔ)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及網(wǎng)絡(luò)存儲(chǔ),特別涉及一種大數(shù)據(jù)存儲(chǔ)處理方法。
【背景技術(shù)】
[0002] 在大規(guī)模存儲(chǔ)系統(tǒng)中,為了提高存儲(chǔ)系統(tǒng)的可靠性、改善IO性能以及滿足海量數(shù) 據(jù)存儲(chǔ)需求,將多個(gè)存儲(chǔ)集群聯(lián)合起來(lái),形成統(tǒng)一的存儲(chǔ)設(shè)備,例如將數(shù)據(jù)分散存儲(chǔ)到集群 中的不同磁盤上以保證并行性,并采用冗余校驗(yàn)機(jī)制,在保證數(shù)據(jù)安全性的同時(shí)可獲得大 容量和高數(shù)據(jù)傳輸率,對(duì)于順序讀寫數(shù)據(jù)的存儲(chǔ)系統(tǒng),一般對(duì)數(shù)據(jù)傳輸帶寬要求不苛刻,但 對(duì)數(shù)據(jù)可靠性、存儲(chǔ)空間要求較高。即使考慮視頻回放、備份恢復(fù)等對(duì)帶寬的額外需求,采 用存儲(chǔ)集群時(shí),也存在著嚴(yán)重的性能浪費(fèi),同時(shí)伴隨著嚴(yán)重的能源浪費(fèi)和磁盤損耗,為了計(jì) 算校驗(yàn)數(shù)據(jù),數(shù)據(jù)寫入需要額外的讀寫開銷和延時(shí),降低了存儲(chǔ)集群的吞吐能力。另一方 面,當(dāng)向存儲(chǔ)集群寫入的數(shù)據(jù)塊隨機(jī)時(shí),磁盤就需要尋址到新的數(shù)據(jù)位置,此時(shí),隨機(jī)讀寫 傳輸性能比順序讀寫傳輸性能更低。

【發(fā)明內(nèi)容】

[0003] 為解決上述現(xiàn)有技術(shù)所存在的問(wèn)題,本發(fā)明提出了一種數(shù)據(jù)云端存儲(chǔ)方法,包 括:
[0004] 通過(guò)存儲(chǔ)集群的區(qū)段映射進(jìn)行地址轉(zhuǎn)換,將應(yīng)用程序發(fā)來(lái)的非順序的讀寫請(qǐng)求地 址映射到連續(xù)的實(shí)際地址空間以實(shí)現(xiàn)連續(xù)寫入,利用基于緩存的存儲(chǔ)集群寫優(yōu)化存儲(chǔ)架 構(gòu),在緩存中緩存并構(gòu)造與存儲(chǔ)集群條塊對(duì)齊的寫數(shù)據(jù),以整個(gè)條塊的方式將數(shù)據(jù)寫入存 儲(chǔ)集群。
[0005] 優(yōu)選地,所述通過(guò)存儲(chǔ)集群的區(qū)段映射進(jìn)行地址轉(zhuǎn)換,進(jìn)一步包括:
[0006] 將應(yīng)用程序發(fā)來(lái)的非順序的虛擬地址映射為連續(xù)的存儲(chǔ)集群實(shí)際物理地址,定義 映射元數(shù)據(jù)、映射存儲(chǔ)區(qū),并記錄映射關(guān)系到地址轉(zhuǎn)換表,以每次寫操作的寫區(qū)段為單位進(jìn) 行地址映射;
[0007] 其中所述映射元數(shù)據(jù)描述一個(gè)映射區(qū)段的映射元數(shù)據(jù),形式為(ViStart,Pistart, Leni,next),Vistart,Pistart,Leni,next分別為映射區(qū)段i的虛擬起始地址、物理起始地址區(qū) 段長(zhǎng)度和相鄰映射元數(shù)據(jù)索引;
[0008] 所述映射存儲(chǔ)區(qū)是外存中映射元數(shù)據(jù)的存儲(chǔ)區(qū)段;
[0009] 所述地址轉(zhuǎn)換表記錄每個(gè)虛擬地址對(duì)應(yīng)的元數(shù)據(jù)索引和外存數(shù)據(jù)結(jié)構(gòu);
[0010] 在進(jìn)行地址轉(zhuǎn)換時(shí),先根據(jù)虛擬地址從地址轉(zhuǎn)換表獲得元數(shù)據(jù)索引,然后在映射 存儲(chǔ)區(qū)由索引值獲得元數(shù)據(jù),并根據(jù)元數(shù)據(jù)進(jìn)行區(qū)段地址轉(zhuǎn)換,從虛擬區(qū)段(vstart,VEnd)中 的Vstart到VEnd,其中Vstart為虛擬區(qū)段的虛擬起始地址,ViEnd為虛擬區(qū)段的虛擬結(jié)束地址,根 據(jù)虛擬地址逐個(gè)查詢。
[0011] 優(yōu)選地,還包括:利用LSM樹進(jìn)行映射區(qū)段查詢,在內(nèi)存中建立映射元數(shù)據(jù)的LSM 樹,用(Vistart,viEnd,Pimeta)表示葉子節(jié)點(diǎn),Vstart為區(qū)段i的虛擬起始地址,ViEnd為區(qū)段i的 虛擬結(jié)束地址,Pimeta是指向元數(shù)據(jù)(Vistart,Pistart,Leni,next)的已讀入內(nèi)存的指針;
[0012] 父節(jié)點(diǎn)的關(guān)鍵字是所有子樹中的最大關(guān)鍵字,每個(gè)葉子節(jié)點(diǎn)只包含兩個(gè)關(guān)鍵字, 表示一個(gè)順序區(qū)段,查找時(shí),如果被查找值位于某個(gè)區(qū)段則查找成功,否則可由其父節(jié)點(diǎn)的 關(guān)鍵字確定其相鄰區(qū)段,映射按虛擬地址由低到高的順序排列在鏈表中;
[0013] 并且,利用LSM樹查詢映射區(qū)段的過(guò)程如下:
[0014] 1)分別查找Vkstart,VkEnd在LSM樹中的位置,其中區(qū)段(Vkstart,VkEnd)為請(qǐng)求k的虛 擬地址區(qū)段;
[0015] 2)將Vkstart,VkEnd之間所有存在的映射作為要查找的映射;
[0016] 設(shè)定LSM樹的最大節(jié)點(diǎn)數(shù),當(dāng)超過(guò)該最大節(jié)點(diǎn)數(shù)時(shí)便構(gòu)建一棵新的LSM樹,查找時(shí) 先根據(jù)虛擬地址確定所在的LSM樹再進(jìn)行查找。
[0017] 本發(fā)明相比現(xiàn)有技術(shù),具有以下優(yōu)點(diǎn):
[0018] 本發(fā)明提出了一種存儲(chǔ)方法,在寫入磁盤過(guò)程中避免了因生成校驗(yàn)數(shù)據(jù)而產(chǎn)生的 額外讀寫開銷,通過(guò)數(shù)據(jù)的順序?qū)懭胗行p少了尋址操作,提高了存儲(chǔ)性能。
【附圖說(shuō)明】
[0019] 圖1是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)云端存儲(chǔ)方法的流程圖。
【具體實(shí)施方式】
[0020] 下文與圖示本發(fā)明原理的附圖一起提供對(duì)本發(fā)明一個(gè)或者多個(gè)實(shí)施例的詳細(xì)描 述。結(jié)合這樣的實(shí)施例描述本發(fā)明,但是本發(fā)明不限于任何實(shí)施例。本發(fā)明的范圍僅由權(quán) 利要求書限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細(xì)節(jié) 以便提供對(duì)本發(fā)明的透徹理解。出于示例的目的而提供這些細(xì)節(jié),并且無(wú)這些具體細(xì)節(jié)中 的一些或者所有細(xì)節(jié)也可以根據(jù)權(quán)利要求書實(shí)現(xiàn)本發(fā)明。
[0021] 本發(fā)明的一方面提供了一種數(shù)據(jù)云端存儲(chǔ)方法,以提高順序數(shù)據(jù)存儲(chǔ)中存儲(chǔ)集群 的寫入性能。圖1是根據(jù)本發(fā)明實(shí)施例的方法流程圖。
[0022] 本發(fā)明利用區(qū)段映射進(jìn)行地址轉(zhuǎn)換,將非順序的讀寫請(qǐng)求地址映射到連續(xù)的地址 空間,以實(shí)現(xiàn)連續(xù)寫入。特別適合順序數(shù)據(jù)存儲(chǔ)中的大塊數(shù)據(jù)的地址轉(zhuǎn)換;利用基于緩存的 存儲(chǔ)集群寫優(yōu)化存儲(chǔ)架構(gòu),在緩存中緩存并構(gòu)造與存儲(chǔ)集群條塊對(duì)齊的寫數(shù)據(jù),然后整個(gè) 條塊寫入存儲(chǔ)集群,實(shí)現(xiàn)對(duì)存儲(chǔ)集群的完全寫。
[0023] 在寫數(shù)據(jù)地址轉(zhuǎn)換和對(duì)齊寫數(shù)據(jù)過(guò)程中,首先引入虛擬地址、物理地址的定義。虛 擬地址是應(yīng)用程序發(fā)來(lái)的讀寫請(qǐng)求地址;物理地址是數(shù)據(jù)在存儲(chǔ)集群存儲(chǔ)空間內(nèi)的實(shí)際地 址。地址轉(zhuǎn)換過(guò)程實(shí)現(xiàn)虛擬地址到物理地址的映射,即將非順序(可能部分順序)的虛擬 地址映射為連續(xù)的物理地址,并記錄映射關(guān)系到地址轉(zhuǎn)換表。經(jīng)過(guò)地址轉(zhuǎn)換后,寫操作在物 理地址空間內(nèi)完全順序化。
[0024] 對(duì)齊寫數(shù)據(jù)是對(duì)物理地址順序化的寫請(qǐng)求進(jìn)行聚合或拆分,在內(nèi)存緩存區(qū)內(nèi)組織 成為與存儲(chǔ)集群條塊對(duì)齊的寫請(qǐng)求,即1個(gè)寫請(qǐng)求在存儲(chǔ)集群上恰好占滿1個(gè)或多個(gè)完整 的條塊。為了防止掉電導(dǎo)致緩存區(qū)內(nèi)數(shù)據(jù)丟失,采用非易失性RAM鏡像內(nèi)存緩存區(qū)內(nèi)的寫 請(qǐng)求。
[0025] 在本發(fā)明的區(qū)段映射中實(shí)現(xiàn)地址轉(zhuǎn)換,以每次寫操作的寫區(qū)段為單位進(jìn)行地址映 射,主要數(shù)據(jù)結(jié)構(gòu)如下。
[0026] 1)映射元數(shù)據(jù):開$式為(ViStart,PiStart,Leni,next),描述一個(gè)映射區(qū)段,ViStart, PistartAeivnext分別為映射區(qū)段i的虛擬起始地址、物理起始地址區(qū)段長(zhǎng)度和相鄰映射元 數(shù)據(jù)索引,外存數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)稱元數(shù)據(jù);
[0027] 2)映射存儲(chǔ)區(qū):外存中映射元數(shù)據(jù)的存儲(chǔ)區(qū)段;
[0028] 3)地址轉(zhuǎn)換表:記錄每個(gè)虛擬地址對(duì)應(yīng)的元數(shù)據(jù)索引(index),外存數(shù)據(jù)結(jié)構(gòu)。
[0029] 地址轉(zhuǎn)換時(shí),先根據(jù)虛擬地址從地址轉(zhuǎn)換表獲得元數(shù)據(jù)索引,然后在映射存儲(chǔ)區(qū) 由索引值獲得元數(shù)據(jù),并根據(jù)元數(shù)據(jù)進(jìn)行區(qū)段地址轉(zhuǎn)換。
[0030] 地址轉(zhuǎn)換時(shí)可以從虛擬區(qū)段(Vstart,VEnd)中的VEnd,其中Vstart為虛擬區(qū)段 的虛擬起始地址,ViEnd為虛擬區(qū)段的虛擬結(jié)束地址,根據(jù)虛擬地址逐個(gè)查詢,最壞情況是查 詢所有塊的虛擬地址。
[0031] 為了進(jìn)一步提高地址轉(zhuǎn)換效率,可以考慮引入LSM樹進(jìn)行映射區(qū)段查詢。在內(nèi)存 中建立映射元數(shù)據(jù)的LSM樹,用(ViStart,ViEnd,pimrta)表示葉子節(jié)點(diǎn),其中Vstart為區(qū)段i的虛 擬起始地址,ViEnd為區(qū)段i的虛擬結(jié)束地址,pimeta是指向元數(shù)據(jù)(ViStal^PistartAeivnext) 的指針(已讀入內(nèi)存)。
[0032] 父節(jié)點(diǎn)的關(guān)鍵字是所有子樹中的最大關(guān)鍵字,每個(gè)葉子節(jié)點(diǎn)只包含兩個(gè)關(guān)鍵字, 表示一個(gè)順序區(qū)段。查找時(shí)如果查找值位于某個(gè)區(qū)段則查找成功,否則可由其父節(jié)點(diǎn)的關(guān) 鍵字,確定其相鄰區(qū)段,映射按虛擬地址由低到高的順序排列在鏈表中(由映射插入規(guī)則, 虛擬區(qū)段不會(huì)相交)。
[0033] 設(shè)請(qǐng)求k的虛擬地址區(qū)段為(Vkstart,VkEnd),利用LSM樹查詢映射區(qū)段的過(guò)程如下:
[0034] 1)分別查找Vkstart,VkEnd在LSM樹中的位置;
[0035] 2)將Vkstart,VkEnd之間所有存在的映射作為要查找的映射。
[0036] 為了防止LSM樹過(guò)大,優(yōu)選地可設(shè)定LSM樹的最大節(jié)點(diǎn)數(shù),當(dāng)超過(guò)該最大節(jié)點(diǎn)數(shù)時(shí) 便構(gòu)建一棵新的LSM樹,查找時(shí)先根據(jù)虛擬地址確定所在的LSM樹再進(jìn)行查找。
[0037] 在數(shù)據(jù)寫入請(qǐng)求對(duì)齊方面,順序數(shù)據(jù)存儲(chǔ)中為了實(shí)現(xiàn)對(duì)存儲(chǔ)集群的完全寫,需要 運(yùn)行一個(gè)對(duì)齊寫請(qǐng)求的驅(qū)動(dòng)程序,主要包括2個(gè)線程和1個(gè)寫請(qǐng)求隊(duì)列,2個(gè)線程分別是接 收和發(fā)送線程。
[0038] 1)接收線程:監(jiān)控和接收應(yīng)用程序發(fā)送給存儲(chǔ)集群的寫請(qǐng)求,首先進(jìn)行上述地址 轉(zhuǎn)換,轉(zhuǎn)換為物理空間內(nèi)連續(xù)的寫請(qǐng)求,并將其加入到寫請(qǐng)求隊(duì)列中。
[0039] 2)發(fā)送線程:當(dāng)寫請(qǐng)求隊(duì)列不為空時(shí)從寫請(qǐng)求隊(duì)列中取出并處理寫請(qǐng)求。
[0040] 首先,需要獲取存儲(chǔ)集群的參數(shù),包括條塊單位、成員磁盤數(shù),再由條塊單位乘以 成員磁盤數(shù),獲得條塊大小。可通過(guò)讀取存儲(chǔ)集群配置文件獲得條塊單位和成員磁盤數(shù)。
[0041] 設(shè)寫請(qǐng)求表示為(buf,cnt,
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1