順序?qū)懭?,需要面對垃圾回收問題,垃圾存儲空間是由改寫操 作產(chǎn)生的,在郵件數(shù)據(jù)存儲中,改寫的數(shù)據(jù)量不大,可在負(fù)載低于預(yù)設(shè)閾值時進(jìn)行垃圾回 收;如果追求性能,也可犧牲少量存儲空間而忽略垃圾回收。
[0032] 地址映射將非連續(xù)的虛擬地址映射為連續(xù)的物理地址,并在映射表中記錄映射關(guān) 系。其中,虛擬地址為應(yīng)用程序提交的讀寫請求地址,物理地址為數(shù)據(jù)在郵件存儲系統(tǒng)內(nèi)的 存儲地址。在此基礎(chǔ)上,郵件存儲系統(tǒng)執(zhí)行數(shù)據(jù)更新:向某物理地址寫數(shù)據(jù)時,數(shù)據(jù)不直接 寫入該地址,而是寫入其邏輯地址(邏輯庫中與其偏移量相同的地址),并在適當(dāng)時候修改 映射表,令邏輯地址取代該物理地址。
[0033] 假設(shè)郵件存儲系統(tǒng)由N塊磁盤組成,劃分出Ν+1個庫,任取其中之一作為邏輯庫, 其余為物理庫,則郵件存儲系統(tǒng)的遠(yuǎn)程數(shù)據(jù)更新過程如下:
[0034] (1)向某源存儲庫寫數(shù)據(jù)時,數(shù)據(jù)并不直接寫入該庫,而是寫入邏輯庫;
[0035] (2)根據(jù)寫入數(shù)據(jù)、本次循環(huán)中邏輯庫中已寫數(shù)據(jù)的誤差校驗數(shù)據(jù),生成邏輯庫的 新的誤差校驗數(shù)據(jù);
[0036] (3)如果邏輯庫未寫滿,轉(zhuǎn)到步驟⑴;
[0037] (4)否則,修改地址映射關(guān)系,令邏輯庫取代源存儲庫,本次循環(huán)結(jié)束;
[0038] (5)被取代的源存儲庫此時無映射關(guān)系,可在下一循環(huán)中作為邏輯庫。
[0039] 在以上寫操作過程中,由于進(jìn)行了地址映射,所以是依次向每個物理庫順序?qū)懭?入數(shù)據(jù)的,不會同時向兩個物理庫寫數(shù)據(jù),也不會在一個物理庫未寫滿的情況下,向另外一 個物理庫寫數(shù)據(jù)。
[0040] 邏輯庫的誤差校驗數(shù)據(jù)是根據(jù)本次循環(huán)中已寫數(shù)據(jù)生成的,稱為增量誤差校驗數(shù) 據(jù)。寫新數(shù)據(jù)時,可根據(jù)新數(shù)據(jù)、增量誤差校驗數(shù)據(jù)計算新的誤差校驗數(shù)據(jù)。隨著寫數(shù)據(jù)的 增加,增量誤差校驗數(shù)據(jù)的誤差校驗范圍也漸進(jìn)擴大,直至擴展到整個邏輯庫。
[0041] 擴展誤差校驗數(shù)據(jù)時無需讀取舊數(shù)據(jù),僅需讀取增量誤差校驗數(shù)據(jù),因此可增加 一個輔助緩存,與邏輯庫中誤差校驗數(shù)據(jù)所在磁盤,以流水方式生成新的誤差校驗數(shù)據(jù)(1 個讀增量誤差校驗數(shù)據(jù),1個寫新的誤差校驗數(shù)據(jù)),此時,可有效消除讀誤差校驗數(shù)據(jù)對 寫入性能的影響。
[0042] 假設(shè)每個庫包含3個組,輔助緩存暫存邏輯庫中的增量誤差校驗數(shù)據(jù)。具體執(zhí)行 過程如下:
[0043] (1)向任一源存儲庫的組0寫數(shù)據(jù)時,數(shù)據(jù)寫入邏輯庫的組0,并生成組0的誤差 校驗,寫入邏輯庫的誤差校驗區(qū);
[0044] (2)組0寫滿后,向源存儲庫的組1寫數(shù)據(jù)時,數(shù)據(jù)寫入邏輯庫的組1,并根據(jù)寫數(shù) 據(jù)、增量誤差校驗(組〇的誤差校驗,在邏輯庫的誤差校驗區(qū)),生成新的誤差校驗數(shù)據(jù)(組 0,組1的誤差校驗),寫入輔助緩存;
[0045] (3)組1寫滿后,向源存儲庫的組2寫數(shù)據(jù)時,數(shù)據(jù)寫入邏輯庫的組2,并根據(jù)寫數(shù) 據(jù)、增量誤差校驗(組〇,組1的誤差校驗,在輔助緩存),生成新的誤差校驗數(shù)據(jù)(組〇,組 1,組2的誤差校驗),寫入邏輯庫的誤差校驗區(qū);
[0046] (4)邏輯庫寫滿后,修改映射表,令其取代源存儲庫,而源存儲庫作為下一循環(huán)中 的邏輯庫。
[0047] 為保證最后生成的誤差校驗數(shù)據(jù)寫入邏輯庫的誤差校驗區(qū),需按如下規(guī)則流水: 若邏輯庫的組數(shù)為奇數(shù),則首先向誤差校驗區(qū)寫誤差校驗數(shù)據(jù);否則,首先向輔助緩存寫誤 差校驗數(shù)據(jù)。
[0048] 采用固態(tài)硬盤作為輔助緩存時:從輔助緩存讀增量誤差校驗數(shù)據(jù),新的誤差校驗 數(shù)據(jù)也寫入輔助緩存,直至寫最后組數(shù)據(jù)時,從輔助緩存讀增量誤差校驗數(shù)據(jù),并將新的誤 差校驗數(shù)據(jù)寫入磁盤。
[0049] 為使邏輯庫中誤差校驗數(shù)據(jù)所在磁盤大部分時間也可待機,進(jìn)一步提高節(jié)能效率 的同時又不影響性能,可采用如下流水方式:設(shè)置兩個輔助緩存輔助緩存1和輔助緩存2, 輪流從其中之一讀增量誤差校驗數(shù)據(jù),向另一個寫新的誤差校驗數(shù)據(jù),直至生成邏輯庫的 最終誤差校驗數(shù)據(jù),再將其寫入磁盤。
[0050] 綜上所述,本發(fā)明提出了一種郵件高效處理方法,保持了并行訪問的低能耗,又解 決了并行訪問帶來的局部寫入問題,具有突出的寫入性能和節(jié)能效率。
[0051] 顯然,本領(lǐng)域的技術(shù)人員應(yīng)該理解,上述的本發(fā)明的各模塊或各步驟可以用通用 的計算系統(tǒng)來實現(xiàn),它們可以集中在單個的計算系統(tǒng)上,或者分布在多個計算系統(tǒng)所組成 的網(wǎng)絡(luò)上,可選地,它們可以用計算系統(tǒng)可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲 在存儲系統(tǒng)中由計算系統(tǒng)來執(zhí)行。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0052] 應(yīng)當(dāng)理解的是,本發(fā)明的上述【具體實施方式】僅僅用于示例性說明或解釋本發(fā)明的 原理,而不構(gòu)成對本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何 修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨 在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修 改例。
【主權(quán)項】
1. 一種郵件高效處理方法,其特征在于,包括:將郵件存儲系統(tǒng)的存儲陣列中的一個 存儲區(qū)作為邏輯存儲區(qū),在更新源存儲空間時,將郵件數(shù)據(jù)寫入邏輯存儲區(qū)。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述郵件存儲系統(tǒng)由N塊磁盤組成,將每 個磁盤平均分成N+1個存儲區(qū),N個相同偏移量的存儲區(qū)組成一個庫,共組成N+1個庫,選擇 其中一個作為邏輯庫,其余為物理庫,每個物理庫包含1個誤差校驗區(qū)、N-1個數(shù)據(jù)區(qū);在物 理庫i中,誤差校驗區(qū)記為PBi,位于磁盤N-1-i;第v個數(shù)據(jù)區(qū)記為DB(i,v),當(dāng)i+v〈N-l 時,DB(i,v)位于磁盤v,否則位于磁盤v+1 ;其中,0 <i〈N,0 <v〈N_l;PBi的值由通過以 下運算求得:每個存儲區(qū)包含Μ個大小相等的塊,每個庫中,相同偏移量的塊集成一個條塊;所述郵 件存儲系統(tǒng)采用如下并行訪問數(shù)據(jù)來排列:將每個物理庫中的Ν-1個數(shù)據(jù)區(qū)平均分成Ρ組, 每組包含Q個塊;每組中偏移量相同的塊能夠被并行訪問,每個條塊中僅部分塊提供并行 性; 所述郵件存儲系統(tǒng)僅對物理庫進(jìn)行分組,邏輯庫不參與分組,也不參與編址,對郵件存 儲系統(tǒng)的上層應(yīng)用是透明的;在組地址分配上,郵件存儲系統(tǒng)采用以下策略,在每個物理 庫中,序號相鄰的組的邏輯地址相鄰;即庫i中組Ρ的存儲區(qū)q中第m個塊的邏輯地址為: NumB(M·Q·P·i+M·Q·p+Q·m+q); 其中NumB為塊包含的數(shù)據(jù)塊數(shù),0彡ρ〈Ρ,0彡i〈N,0彡q〈Q,0彡m〈M。3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,該方法還包括,在邏輯存儲區(qū)寫滿后,修 改映射表使所述邏輯存儲區(qū)取代源存儲空間,具體包括: 步驟(1).向某源存儲庫寫數(shù)據(jù)時,數(shù)據(jù)寫入對應(yīng)的邏輯庫; 步驟(2).根據(jù)寫入數(shù)據(jù)、本次循環(huán)中邏輯庫中已寫數(shù)據(jù)的誤差校驗數(shù)據(jù),生成邏輯庫 的新的誤差校驗數(shù)據(jù); 步驟(3).如果邏輯庫未寫滿,轉(zhuǎn)到步驟(1); 步驟(4).如果邏輯庫寫滿,修改地址映射關(guān)系,令邏輯庫取代源存儲庫,本次循環(huán)結(jié) 束; 步驟(5).被取代的源存儲庫此時無映射關(guān)系,在下一循環(huán)中作為邏輯庫。
【專利摘要】本發(fā)明提供了一種郵件高效處理方法,該方法包括:將郵件存儲系統(tǒng)的存儲陣列中的一個存儲區(qū)作為邏輯存儲區(qū),在更新源存儲空間時,將郵件數(shù)據(jù)寫入邏輯存儲區(qū)。本發(fā)明提出了一種郵件高效處理方法,保持了并行訪問的低能耗,又解決了并行訪問帶來的局部寫入問題,具有突出的寫入性能和節(jié)能效率。
【IPC分類】G06Q10/10, G06F3/06
【公開號】CN105260882
【申請?zhí)枴緾N201510801284
【發(fā)明人】陳虹宇, 羅陽, 苗寧
【申請人】四川神琥科技有限公司
【公開日】2016年1月20日
【申請日】2015年11月19日