一種多層關聯(lián)存儲架構的數(shù)據(jù)同步方法及數(shù)據(jù)同步系統(tǒng)的制作方法
【專利摘要】一種多層關聯(lián)存儲架構的數(shù)據(jù)同步方法包括:主模塊接收外部寫操作的請求,將數(shù)據(jù)寫到寫緩存,并根據(jù)對所述寫緩存的寫操作記錄一個數(shù)字序列;當主模塊的寫緩存數(shù)據(jù)量達到一閾值,數(shù)據(jù)從寫緩存刷新輸出至固態(tài)硬盤文件;主模塊為刷新輸出操作記錄一個數(shù)字序列;主模塊按數(shù)字序列中數(shù)字的順序,將寫操作與刷新輸出操作分別同步給從模塊;從模塊接收同步的寫操作,將主模塊的寫緩存數(shù)據(jù)同步到本地寫緩存的對應位置;從模塊接收到同步的刷新輸出操作,將主模塊的固態(tài)硬盤文件同步到本地固態(tài)硬盤文件的對應位置。本發(fā)明將寫緩存和固態(tài)硬盤文件之間的關系解耦,各自同步自己的數(shù)據(jù),可保證數(shù)據(jù)的準確性和一致性。本發(fā)明還提供一種多層關聯(lián)存儲架構的數(shù)據(jù)同步系統(tǒng)。
【專利說明】—種多層關聯(lián)存儲架構的數(shù)據(jù)同步方法及數(shù)據(jù)同步系統(tǒng)
【技術領域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲領域,尤其涉及一種多層關聯(lián)存儲架構的數(shù)據(jù)同步方法及數(shù)據(jù)同步系統(tǒng)。
【背景技術】
[0002]圖1所示為現(xiàn)有的一種存儲架構及其同步方式的示意圖。其中,主模塊用于處理外部寫請求與讀請求,從模塊用于從主模塊接收同步數(shù)據(jù)更新,且從模塊僅能處理外部讀請求。如圖1所示,此種同步方式的同步原理是:將服務部署多份,一個主模塊,多個從模塊;當外部寫請求發(fā)往主模塊時,每來一次外部寫請求,主模塊記錄一個數(shù)字序列(sequence),數(shù)字序列隨著寫請求的增加而順序遞增;主模塊按照數(shù)字序列中數(shù)字的順序,將寫操作同步發(fā)送給各個從模塊;各個從模塊接收到主模塊發(fā)來的寫操作時,更新本地數(shù)據(jù),并記錄本地數(shù)據(jù)的數(shù)字序列;當主模塊與從模塊兩邊的數(shù)字序列一致時,表示從模塊的數(shù)據(jù)已經(jīng)是最新。此種同步方式的基本思想是將每次的寫操作同步給從模塊,從而保證從模塊的數(shù)據(jù)能實時更新,并且與主模塊數(shù)據(jù)一致。
[0003]然而,此種同步方式的設計初衷是為了滿足較簡單的存儲模型,如一層存儲以及無關聯(lián)的多層存儲。但若遇到本公司現(xiàn)在采用的多層關聯(lián)式存儲架構(如圖2所示),此種同步方式并不適用。
[0004]現(xiàn)在采用的一種存儲架構是將數(shù)據(jù)存儲在固態(tài)硬盤文件(ssd file),根據(jù)固態(tài)硬盤的實現(xiàn)原理,在固態(tài)硬盤文件之上加了一個寫緩存(writebuffer),以提高固態(tài)硬盤的寫入性能,并最大化的延長固態(tài)硬盤使用壽命。在圖2所示的存儲架構中,數(shù)據(jù)在固態(tài)硬盤文件的存儲位置,決定了該數(shù)據(jù)在寫緩存中的存儲位置偏移量,數(shù)據(jù)在寫緩存與固態(tài)硬盤文件的存儲位置必須一一對應。
[0005]如果將圖1所示的同步方式應用于圖2所示的存儲架構中,則會存在如下問題:
[0006](I)數(shù)據(jù)一致性問題。按照此種同步方式,主模塊將寫操作按數(shù)字序列中數(shù)字的順序同步給從模塊后,從模塊先寫寫緩存,當寫緩存中的數(shù)據(jù)量達到規(guī)定閾值時,將寫緩存中的數(shù)據(jù)全部刷新輸出(flush)到固態(tài)硬盤文件。這個過程中,很難保證從模塊寫寫緩存時,每條數(shù)據(jù)在寫緩存的相對位置與主模塊相同;另外,當從模塊將數(shù)據(jù)從寫緩存刷新輸出到固態(tài)硬盤文件時,也很難保證刷新輸出的數(shù)據(jù)塊在固態(tài)硬盤文件中的存儲位置與主模塊相同,如果在寫緩存或固態(tài)硬盤文件中任何一個存儲位置不與主模塊相同,那么此數(shù)據(jù)將變成無效數(shù)據(jù),無法被用戶讀取到。
[0007](2)設計復雜度問題。如果要解決⑴中的數(shù)據(jù)準確性問題,同步邏輯的設計將會變得很復雜。
【發(fā)明內(nèi)容】
[0008]有鑒于此,本發(fā)明提供一種可保證數(shù)據(jù)一致性且設計簡單的多層關聯(lián)存儲架構的數(shù)據(jù)同步方法和多層關聯(lián)存儲架構的數(shù)據(jù)同步系統(tǒng)。[0009]上述的多層關聯(lián)存儲架構的數(shù)據(jù)同步方法和多層關聯(lián)存儲架構的數(shù)據(jù)同步系統(tǒng)是通過以下技術方案實現(xiàn)的:
[0010]一種多層關聯(lián)存儲架構的數(shù)據(jù)同步方法,包括:主模塊接收外部寫操作的請求,將數(shù)據(jù)寫到寫緩存,并根據(jù)所述主模塊對所述寫緩存的寫操作記錄一第一數(shù)字序列;當主模塊的寫緩存數(shù)據(jù)量達到一閾值時,數(shù)據(jù)從寫緩存刷新輸出至固態(tài)硬盤文件,輸出時數(shù)據(jù)在固態(tài)硬盤文件的存儲位置與在寫緩存中的存儲位置一一對應;主模塊為刷新輸出操作記錄一第二數(shù)字序列;主模塊根據(jù)第一數(shù)字序列中數(shù)字的順序將寫操作同步給從模塊,并根據(jù)第二數(shù)字序列中數(shù)字的順序將刷新輸出操作同步給從模塊;從模塊接收到同步的寫操作時,將主模塊的寫緩存數(shù)據(jù)同步到本地寫緩存的對應位置;從模塊接收到同步的刷新輸出操作時,將主模塊的固態(tài)硬盤文件同步到本地固態(tài)硬盤文件的對應位置。
[0011]一種多層關聯(lián)存儲架構的數(shù)據(jù)同步系統(tǒng),多層關聯(lián)存儲架構的數(shù)據(jù)同步系統(tǒng),包括:主模塊,用于處理外部寫操作的請求與讀請求;從模塊,用于處理外部讀請求;主模塊寫緩存,用于緩存外部寫操作的請求;主模塊固態(tài)硬盤文件,用于在寫緩存的數(shù)據(jù)量達到一閾值時,接收由寫緩存刷新輸出的數(shù)據(jù);從模塊寫緩存,用于接收主模塊寫緩存的同步數(shù)據(jù);從模塊固態(tài)硬盤文件,用于接收主模塊固態(tài)硬盤文件的同步數(shù)據(jù);其中,從模塊寫緩存和從模塊固態(tài)硬盤文件對數(shù)據(jù)的同步是分開進行的。
[0012]綜上所述,本發(fā)明至少具有如下優(yōu)點:
[0013](I)能保證數(shù)據(jù)的一致性。主模塊將寫緩存的數(shù)據(jù)同步到從模塊的寫緩存,將固態(tài)硬盤文件數(shù)據(jù)同步到從模塊的固態(tài)硬盤文件,保證了在從模塊中,數(shù)據(jù)在寫緩存和固態(tài)硬盤文件都能存儲 到正確位置,從而數(shù)據(jù)同步的一致性和準確性。
[0014](2)設計簡單,提高了系統(tǒng)的可靠性。同步時,寫緩存和固態(tài)硬盤文件之間的關系被解耦,各自同步自己的數(shù)據(jù),不用再關心寫緩存和固態(tài)硬盤文件中數(shù)據(jù)的存儲位置是否
--對應。
[0015]為讓本發(fā)明的上述和其他目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附圖式,作詳細說明如下。
【專利附圖】
【附圖說明】
[0016]圖1所示為現(xiàn)有的一種存儲架構及其同步方式的示意圖。
[0017]圖2所示為現(xiàn)在采用的一種存儲架構的示意圖。
[0018]圖3所示為本發(fā)明所揭示的多層關聯(lián)存儲架構的數(shù)據(jù)同步方法的流程圖。
[0019]圖4所示為本發(fā)明所揭示的多層關聯(lián)存儲架構的數(shù)據(jù)同步系統(tǒng)的架構及同步方式的示意圖。
【具體實施方式】
[0020]為更進一步闡述本發(fā)明為實現(xiàn)預定發(fā)明目的所采取的技術手段及功效,以下結合附圖及較佳實施例,對依據(jù)本發(fā)明提出的多層關聯(lián)存儲架構的數(shù)據(jù)同步方法及多層關聯(lián)存儲架構的數(shù)據(jù)同步系統(tǒng)的【具體實施方式】、結構、特征及其功效,詳細說明如后。
[0021]圖3所示為本發(fā)明所揭示的多層關聯(lián)存儲架構的數(shù)據(jù)同步方法的流程圖。如圖3所示,本發(fā)明所揭示的多層關聯(lián)存儲架構的數(shù)據(jù)同步方法包括如下步驟:[0022]SlOl:主模塊接收外部寫操作的請求,將數(shù)據(jù)寫到寫緩存(writebuffer),并根據(jù)對所述寫緩存的寫操作記錄一第一數(shù)字序列(sequence);
[0023]S102:當主模塊的寫緩存數(shù)據(jù)量達到一閾值,數(shù)據(jù)從寫緩存刷新輸出(flush)至固態(tài)硬盤文件(ssd file),輸出時須保證數(shù)據(jù)在固態(tài)硬盤文件的存儲位置與在寫緩存中的存儲位置對應;
[0024]S103:主模塊為刷新輸出操作記錄一第二數(shù)字序列;
[0025]S104:主模塊根據(jù)第一數(shù)字序列中數(shù)字的順序將寫操作同步給從模塊,并根據(jù)第二數(shù)字序列中數(shù)字的順序將刷新輸出操作同步給從模塊;
[0026]S105:從模塊接收到同步的寫操作時,將主模塊的寫緩存數(shù)據(jù)同步到本地寫緩存的對應位置;
[0027]S106:從模塊接收到同步的刷新輸出操作時,將主模塊的固態(tài)硬盤文件同步到本地固態(tài)硬盤文件的對應位置。
[0028]其中,所述主模塊用于處理外部寫操作的請求與讀請求,所述從模塊用于從主模塊接收同步數(shù)據(jù)更新,且所述從模塊僅能處理外部讀請求。
[0029]進一步地,所述數(shù)據(jù)同步方法還包括:
[0030]寫緩存接收主模塊寫入的數(shù)據(jù),并將寫入的數(shù)據(jù)以4k為單位整理成N個數(shù)據(jù)塊;
[0031]當主模塊的寫緩存數(shù)據(jù)量達到所述閾值,數(shù)據(jù)從寫緩存刷新輸出至固態(tài)硬盤文件時,將輸出的數(shù)據(jù)以所述的數(shù)據(jù)塊為單位輸出。
·[0032]具體的,所述的閾值為4k的M倍,M為大于或等于N的整數(shù)。
[0033]綜上所述,本發(fā)明的多層關聯(lián)存儲架構的數(shù)據(jù)同步方法至少具有如下優(yōu)點:
[0034](I)能保證數(shù)據(jù)的準確性。主模塊將寫緩存的數(shù)據(jù)同步到從模塊的寫緩存,將固態(tài)硬盤文件數(shù)據(jù)同步到從模塊的固態(tài)硬盤文件,保證了在從模塊中,數(shù)據(jù)在寫緩存和固態(tài)硬盤文件都能存儲到正確位置,從而保證了數(shù)據(jù)同步的一致性和準確性。
[0035](2)設計簡單,提高了系統(tǒng)的可靠性。同步時,寫緩存和固態(tài)硬盤文件之間的關系被解耦,各自同步自己的數(shù)據(jù),不用再關心寫緩存和固態(tài)硬盤文件中數(shù)據(jù)的存儲位置是否--對應。
[0036]圖4所示為本發(fā)明所揭示的多層關聯(lián)存儲架構的數(shù)據(jù)同步系統(tǒng)的架構及同步方式的示意圖。如圖4所示,本發(fā)明的多層關聯(lián)存儲架構的數(shù)據(jù)同步系統(tǒng),包括:
[0037]主模塊201,用于處理外部寫操作的請求與讀請求;
[0038]從模塊301,用于處理外部讀請求;
[0039]主模塊寫緩存202,用于緩存外部寫操作的請求;
[0040]主模塊固態(tài)硬盤文件203,用于在寫緩存的數(shù)據(jù)量達到一閾值時,接收由寫緩存刷新輸出的數(shù)據(jù),數(shù)據(jù)在主模塊固態(tài)硬盤文件203中的存儲位置與在主模塊寫緩存202中的存儲位置對應;
[0041]從模塊寫緩存302,用于接收主模塊寫緩存202的同步數(shù)據(jù);
[0042]從模塊固態(tài)硬盤文件303,用于接收主模塊固態(tài)硬盤文件203的同步數(shù)據(jù);
[0043]其中,從模塊寫緩存302和從模塊固態(tài)硬盤文件303對數(shù)據(jù)的同步是分開進行的。
[0044]進一步地,主模塊201還用于在外部寫操作的請求寫入寫緩存202時,根據(jù)對寫緩存202的寫操作記錄一第一數(shù)字序列,并根據(jù)該數(shù)字序列中數(shù)字的順序將寫操作同步給從模塊301,從模塊寫緩存302是在從模塊301接收到同步的寫操作時才進行數(shù)據(jù)的同步。
[0045]進一步地,主模塊201還用于在主模塊寫緩存202的數(shù)據(jù)刷新輸出至主模塊固態(tài)硬盤文件203時,根據(jù)該刷新輸出操作記錄一第二數(shù)字序列,并根據(jù)該數(shù)字序列中數(shù)字的順序將刷新輸出操作同步給從模塊301,從模塊固態(tài)硬盤文件303是在從模塊301接收到同步的刷新輸出操作時才進行數(shù)據(jù)的同步。
[0046]進一步地,主模塊寫緩存202還用于在接收主模塊201寫入的數(shù)據(jù)時,將寫入的數(shù)據(jù)以4k為單位整理成N個數(shù)據(jù)塊,當數(shù)據(jù)從主模塊寫緩存202刷新輸出至主模塊固態(tài)硬盤文件203時,輸出的數(shù)據(jù)即以所述的數(shù)據(jù)塊為單位輸出。
[0047]具體的,所述的閾值為4k的M倍,其中M為大于或等于N的整數(shù)。
[0048]綜上所述,本發(fā)明的多層關聯(lián)存儲架構的數(shù)據(jù)同步系統(tǒng)至少具有如下優(yōu)點:
[0049](I)能保證數(shù)據(jù)的準確性。主模塊將寫緩存的數(shù)據(jù)同步到從模塊的寫緩存,將固態(tài)硬盤文件數(shù)據(jù)同步到從模塊的固態(tài)硬盤文件,保證了在從模塊中,數(shù)據(jù)在寫緩存和固態(tài)硬盤文件都能存儲到正確位置,從而保證了數(shù)據(jù)同步一致性和準確性。
[0050](2)設計簡單,提高了系統(tǒng)的可靠性。同步時,寫緩存和固態(tài)硬盤文件之間的關系被解耦,各自同步自己的數(shù)據(jù),不用再關心寫緩存和固態(tài)硬盤文件中數(shù)據(jù)的存儲位置是否--對應。
[0051]需要說明的是,本發(fā)明實施例還提供一種計算機可讀存儲介質,其內(nèi)存儲有計算機可執(zhí)行指令,上述的計算機可讀存儲介質例如為非易失性存儲器例如光盤、硬盤、或者閃 存。
[0052]該計算機可執(zhí)行指令用于使計算機進行以下操作:主模塊接收外部寫操作的請求,將數(shù)據(jù)寫到寫緩存,并根據(jù)外部對所述寫緩存的寫操作請求記錄一第一數(shù)字序列;當主模塊的寫緩存數(shù)據(jù)量達到一閾值時,數(shù)據(jù)從寫緩存刷新輸出至固態(tài)硬盤文件;主模塊為刷新輸出操作記錄一第二數(shù)字序列;主模塊按第一數(shù)字序列和第二數(shù)字序列中數(shù)字的順序,將寫操作與刷新輸出操作分別同步給從模塊;從模塊接收到同步的寫操作時,將主模塊的寫緩存數(shù)據(jù)同步到本地寫緩存的對應位置;從模塊接收到同步的刷新輸出操作時,將主模塊的固態(tài)硬盤文件同步到本地固態(tài)硬盤文件的對應位置。
[0053]進一步地,該計算機可執(zhí)行指令還可用于使計算機進行以下操作:寫緩存接收主模塊寫入的數(shù)據(jù),并將寫入的數(shù)據(jù)以4k為單位整理成N個數(shù)據(jù)塊;
[0054]當數(shù)據(jù)從寫緩存刷新輸出至固態(tài)硬盤文件時,將輸出的數(shù)據(jù)以所述的數(shù)據(jù)塊為單位輸出。
[0055]藉由上述指令,本發(fā)明將寫緩存和固態(tài)硬盤文件之間的關系解耦,各自同步自己的數(shù)據(jù),可保證數(shù)據(jù)的準確性和一致性,以及同步處理的簡單性,并提高了系統(tǒng)的可靠性。
[0056]以上所述,僅是本發(fā)明的較佳實施例而已,并非對本發(fā)明作任何形式上的限制,雖然本發(fā)明已以較佳實施例揭示如上,然而并非用以限定本發(fā)明,任何本領域技術人員,在不脫離本發(fā)明技術方案范圍內(nèi),當可利用上述揭示的技術內(nèi)容作出些許更動或修飾為等同變化的等效實施例,但凡是未脫離本發(fā)明技術方案內(nèi)容,依據(jù)本發(fā)明的技術實質對以上實施例所作的任何簡介修改、等同變化與修飾,均仍屬于本發(fā)明技術方案的范圍內(nèi)。
【權利要求】
1.一種多層關聯(lián)存儲架構的數(shù)據(jù)同步方法,包括: 主模塊接收外部寫操作的請求,將數(shù)據(jù)寫到寫緩存,并根據(jù)對所述寫緩存的寫操作記錄一第一數(shù)字序列; 當主模塊的寫緩存數(shù)據(jù)量達到一閾值時,數(shù)據(jù)從寫緩存刷新輸出至固態(tài)硬盤文件,輸出時數(shù)據(jù)在固態(tài)硬盤文件的存儲位置與在寫緩存中的存儲位置一一對應; 主模塊為刷新輸出操作記錄一第二數(shù)字序列; 主模塊根據(jù)第一數(shù)字序列中數(shù)字的順序將寫操作同步給從模塊,并根據(jù)第二數(shù)字序列中數(shù)字的順序將刷新輸出操作同步給從模塊; 從模塊接收到同步的寫操作時,將主模塊的寫緩存數(shù)據(jù)同步到本地寫緩存的對應位置; 從模塊接收到同步的刷新輸出操作時,將主模塊的固態(tài)硬盤文件同步到本地固態(tài)硬盤文件的對應位置。
2.如權利要求1所述的多層關聯(lián)存儲架構的數(shù)據(jù)同步方法,其特征在于,所述主模塊用于處理外部寫操作的請求與讀請求,所述從模塊用于從主模塊接收同步數(shù)據(jù)更新,且所述從模塊僅能處理外部讀請求。
3.如權利要求1所述的多層關聯(lián)存儲架構的數(shù)據(jù)同步方法,其特征在于,所述數(shù)據(jù)同步方法還包括: 寫緩存接收主模塊寫入的數(shù)據(jù),并將寫入的數(shù)據(jù)以4k為單位整理成N個數(shù)據(jù)塊;` 當數(shù)據(jù)從寫緩存刷新輸出至固態(tài)硬盤文件時,將輸出的數(shù)據(jù)以所述的數(shù)據(jù)塊為單位輸出。
4.如權利要求3所述的多層關聯(lián)存儲架構的數(shù)據(jù)同步方法,其特征在于,所述的閾值為4k的M倍,其中M為大于或等于N的整數(shù)。
5.一種多層關聯(lián)存儲架構的數(shù)據(jù)同步系統(tǒng),包括: 主模塊,用于處理外部寫操作的請求與讀請求; 從模塊,用于處理外部讀請求; 主模塊寫緩存,用于緩存外部寫操作的請求; 主模塊固態(tài)硬盤文件,用于在寫緩存的數(shù)據(jù)量達到一閾值時,接收由寫緩存刷新輸出的數(shù)據(jù); 從模塊寫緩存,用于接收主模塊寫緩存的同步數(shù)據(jù); 從模塊固態(tài)硬盤文件,用于接收主模塊固態(tài)硬盤文件的同步數(shù)據(jù); 其特征在于,從模塊寫緩存和從模塊固態(tài)硬盤文件對數(shù)據(jù)的同步是分開進行的。
6.如權利要求5所述的多層關聯(lián)存儲架構的數(shù)據(jù)同步系統(tǒng),其特征在于,主模塊還用于在外部寫操作的請求寫入主模塊寫緩存時,根據(jù)該外部寫操作的請求記錄一第一數(shù)字序列,并根據(jù)該第一數(shù)字序列中數(shù)字的順序將寫操作同步給從模塊,從模塊寫緩存是在從模塊接收到同步的寫操作時才進行數(shù)據(jù)的同步。
7.如權利要求5所述的多層關聯(lián)存儲架構的數(shù)據(jù)同步系統(tǒng),其特征在于,主模塊還用于在主模塊寫緩存的數(shù)據(jù)刷新輸出至主模塊固態(tài)硬盤文件時,根據(jù)該刷新輸出操作記錄一第二數(shù)字序列,并根據(jù)該第二數(shù)字序列中數(shù)字的順序將刷新輸出操作同步給從模塊,從模塊固態(tài)硬盤文件是在從模塊接收到同步的刷新輸出操作時才進行數(shù)據(jù)的同步。
8.如權利要求5所述的多層關聯(lián)存儲架構的數(shù)據(jù)同步系統(tǒng),其特征在于,主模塊寫緩存還用于在接收主模塊寫入的數(shù)據(jù)時,將寫入的數(shù)據(jù)以4k為單位整理成N個數(shù)據(jù)塊,當數(shù)據(jù)從主模塊寫緩存刷新輸出至主模塊固態(tài)硬盤文件時,輸出的數(shù)據(jù)即以所述的數(shù)據(jù)塊為單位輸出。
9.如權利要求8所述的多層關聯(lián)存儲架構的數(shù)據(jù)同步系統(tǒng),其特征在于,所述的閾值為4k的M倍,其中M為大于或等于N`的整數(shù)。
【文檔編號】G06F3/06GK103793181SQ201210435819
【公開日】2014年5月14日 申請日期:2012年11月5日 優(yōu)先權日:2012年11月5日
【發(fā)明者】舒軍, 田明, 黃利華 申請人:騰訊科技(深圳)有限公司