新四季網

一種海量數據處理方法、裝置及系統的製作方法

2023-05-08 20:24:26 1

專利名稱:一種海量數據處理方法、裝置及系統的製作方法
技術領域:
本申請涉及軟體技術領域,特別涉及一種海量數據處理方法、裝置及系統。
背景技術:
海量數據一般是指數據量為PB級以上的數據。海量數據的處理,一般採用分布式處理方案,即將海量數據進行分片,分發至不同的節點進行處理,為保證數據的安全,通常採用數據冗餘方案,即一份數據存在於多個節點上,此時,冗餘的數據稱為數據副本。目前,在對海量數據進行一次寫入處理時,需要系統對存儲有海量數據的每個數據副本執行寫入操作,即將待更新數據發送至每個數據副本,每個數據副本將待更新數據寫入到本數據副本中,從而保證海量數據的一致性。例如,當前數據有N個數據副本,在對當前數據進行寫入操作時,需要系統對該數據的N個數據副本均執行寫入操作,即執行N次 寫入操作,使得系統對海量數據的處理效率較低。同時,若數據副本中有一個數據副本寫入失敗,那麼其他數據副本即使寫入成功,也均會回滾至被寫入之前的狀態,此時,需要系統重新對所有的數據副本再次執行寫入操作,從而明顯使得系統對海量數據的處理性能降低,嚴重影響海量數據的處理效率。

發明內容
有鑑於此,本申請通過提供一種海量數據處理方法、裝置及系統,用以解決現有技術中對多個同時存儲有海量數據的數據副本進行一次寫入處理時,需系統執行多次寫入操作,從而使得海量數據的處理效率降低的技術問題,以及用以解決現有海量數據處理方案中,一次寫入失敗,所有數據副本回滾,從而明顯使得系統對海量數據的處理性能降低,嚴重影響海量數據的處理效率的技術問題。本申請提供了一種海量數據處理方法,應用於預設的分布式數據副本集群中存儲有海量數據的數據節點;其中,所述數據副本集群包括至少一個所述數據節點,所述每一數據節點至少與一個不同於本數據節點的另一數據節點相連,且所述數據節點在其預設時間間隔點獲取本數據節點中不同於所述另一數據節點的數據,並將所述獲取的數據寫入至所述另一數據節點中,觸發所述另一數據節點更新其數據版本;所述方法包括依據預設規則在所述數據副本集群中被選取的當前數據節點接收待更新數據,並將所述待更新數據寫入至本數據節點;其中,所述待更新數據在所述數據副本集群接收到的更新請求信息中提取;並更新所述當前數據節點的數據版本;若當前系統時間到達所述預設時間間隔點,所述當前數據節點獲取本數據節點中不同於所述另一數據節點的數據,並將所述獲取的數據寫入至所述另一數據節點中,觸發所述另一數據節點更新其數據版本。
上述方法,優選地,所述數據節點的數據版本包括被寫入數據的標識信息;所述更新所述當前數據節點的數據版本包括將所述待更新數據的標識信息添加至所述當前數據節點的數據版本中。上述方法,優選地,所述依據預設規則在所述數據副本集群中選取當前數據節點包括任意選取所述數據副本集群中的一個數據節點作為當前數據節點;或選取所述數據副本集群中數據版本最大的數據節點作為當前數據節點。上述方法,優選地,所述當前數據節點獲取本數據節點中不同於所述另一數據節點的數據,並將所述獲取的數據寫入至所述另一數據節點中,觸發所述另一數據節點更新 其數據版本包括所述當前數據節點依據其數據版本生成同步請求信息,並將所述同步請求信息發送至所述另一數據節點;其中,所述同步請求信息包括所述當前數據節點的數據版本;所述另一數據節點依據其數據版本及所述當前數據節點的數據版本生成同步回覆信息,並將所述同步回覆信息發送至所述當前數據節點;其中,所述同步回覆信息包括所述當前數據節點中不同於所述另一數據節點的數據的標識信息;所述當前數據節點提取與所述同步回覆信息中的標識信息相對應的數據,並將所述提取的數據寫入至所述另一數據節點,觸發所述另一數據節點更新其數據版本。本申請還提供了一種海量數據處理裝置,應用於預設的分布式數據副本集群中存儲有海量數據的數據節點;其中,所述數據副本集群至少包括一個所述數據節點,所述每一數據節點至少與一個不同於本數據節點的另一數據節點相連;所述裝置包括計時單元、第一寫入單元、第二寫入單元和版本更新單元,其中所述計時單元,用於實時判斷當前系統時間是否到達本數據節點的預設時間間隔點,如果是,觸發本數據節點的所述第一寫入單元;所述第一寫入單元,用於在所述當前系統時間到達所述時間間隔點時獲取本數據節點中不同於與其相連的另一數據節點的數據,將所述獲取的數據寫入至所述另一數據節點,並觸發所述另一數據節點的版本更新單元;所述第二寫入單元,在所述數據副本集群接收到更新請求信息,本數據節點被選取為當前數據節點時被觸發,用於接收待更新數據,並將所述待更新數據寫入至本數據節點,觸發所述版本更新單元;其中,所述待更新數據在所述數據副本集群接收到的更新請求信息中提取;所述版本更新單元,用於更新本數據節點的數據版本。上述裝置,優選地,所述數據節點的數據版本包括被寫入數據的標識信息;所述版本更新單元,具體用於將所述本數據節點中被寫入數據的標識信息添加至本數據節點的數據版本中。上述裝置,優選地,所述第一寫入單元包括請求信息生成子單元、回覆信息接收子單元和數據寫入子單元
所述請求信息生成子單元,用於依據本數據節點的數據版本生成同步請求信息,並將所述同步請求信息發送至與其相連接的另一數據節點;其中,所述同步請求信息包括所述本數據節點的數據版本;所述回覆信息接收子單元,用於接收所述另一數據節點發送的同步回覆信息;其中,所述同步回覆信息由所述另一數據節點依據其數據版本及所述同步請求信息中的數據版本生成,包括本數據節點中不同於所述另一數據節點的數據的標識信息;所述數據寫入子單元,用於提取與所述同步回覆信息中的標識信息相對應的數據,並將所述提取的數據寫入至所述另一數據節點,觸發所述另一數據節點的版本更新單
J Li ο
上述裝置,優選地,所述第一寫入單元還包括回覆信息生成子單元;所述回覆信息生成子單元,用於依據其數據版本及本數據節點接收到的同步請求信息中的數據版本生成同步回覆信息,並將所述同步回覆信息發送至所述同步請求信息所屬的數據節點。本申請還提供了一種海量數據處理系統,包括至少一個如上述任意一項所述的海量數據處理裝置。上述系統,優選地,所述系統還包括集群控制器;所述集群控制器,用於接收更新請求信息,任意選取所述數據副本集群中的一個數據節點作為當前數據節點,或選取所述數據副本集群中數據版本最大的數據節點作為當前數據節點,並將所述更新請求信息中的待更新數據進行提取發送至所述當前數據節點,同時觸發所述當前數據節點中海量數據處理裝置的第二寫入單元。由上述方案可知,本申請提供的一種海量數據處理方法、裝置及系統,應用於數據副本集群中每個存儲有海量數據的數據節點中,通過將待更新數據寫入到被選取的當前數據節點中,再由當前數據節點在每個預設時間間隔點將其不同於與其相連的另一數據節點的數據寫入到該另一數據節點中,由此,由數據副本集群中數據節點定時與其相連的數據節點之間交互及更新數據,無須對每個數據節點執行數據寫入的操作,由每個數據節點自行與其相連的數據節點進行數據交換及更新,從而實現整個數據副本集群中的所有數據節點的數據同步,即在所述數據副本集群中,每個數據節點在每個預設時間間隔點時將其不同於與其相連的數據節點的數據寫入至該數據節點,在需要進行數據更新時,只需執行一次對數據副本集群中的數據節點寫入待更新數據的操作,相連的數據節點之間進行數據交換達到所有數據節點的數據同步的目的,避免了現有海量數據處理方案中對所有數據節點均寫入一次數據,導致數據處理效率降低的技術問題。同時,在數據節點一次寫入失敗時,並不影響其他數據節點的數據寫入及更新過程,從而避免了現有數據處理方案中,一次寫入失敗,所有數據副本回滾,從而明顯使得系統對海量數據的處理性能降低,嚴重影響海量數據的處理效率的技術問題。


為了更清楚地說明本申請實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖I為本申請實施例一提供的一種分布式數據副本集群的結構示意圖;圖2為本申請實施例一提供的一種海量數據處理方法的流程圖;圖3為本申請實施例二提供的一種海量數據處理方法的部分流程圖;圖4為本申請實施例三提供的一種海量數據處理裝置的結構示意圖;圖5為本申請實施例四提供的一種海量數據處理裝置的部分結構示意圖;圖6為本申請實施例四提供的一種海量數據處理裝置的另一部分結構示意圖;圖7為本申請實施例五提供的一種海量數據處理系統的結構示意圖; 圖8為本申請實施例五提供的一種海量數據處理系統的另一結構示意圖;圖9為本申請實施例五提供的一種海量數據處理系統運行時序圖。
具體實施例方式下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基於本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本申請保護的範圍。本申請實施例一提供了一種海量數據處理方法,所述方法應用於預設的分布式數據副本集群中存儲有海量數據的數據節點,所述數據副本集群包括至少一個數據節點,參考圖1,其示出了所述數據副本集群101的結構示意圖,所述數據副本集群包括η個數據節點數據節點111、數據節點112、數據節點113。。。數據節點η。在所述數據副本集群中的每個數據節點至少與一個不同於本數據節點的另一數據節點相連,即所述數據副本集群中的所有數據節點之間呈網狀結構連接,每個數據節點至少連接一個數據節點。且每個數據節點在預設時間間隔點獲取本數據節點中不同於所述另一數據節點的數據,並將所述獲取的數據寫入至所述另一數據節點中,觸發所述另一數據節點更新其數據版本。例如數據節點111與數據節點112相連,所述數據節點111會在該數據節點111的每個預設時間間隔點獲取本數據節點中不同於所述數據節點112的數據,並將獲取的數據寫入至所述數據節點112中,觸發所述數據節點112更新其數據版本,而數據節點112在該數據節點112的每個預設時間間隔點獲取本數據節點中不同於所述數據節點111的數據,並將獲取的數據寫入至所述數據節點111中,觸發所述數據節點111更新其數據版本,從而完成數據節點111和數據節點112之間的數據交互,從而達到數據節點111和數據節點112數據同步的目的。另外,所述數據節點112除了與數據節點111相連之外,還與數據節點113相連,即數據節點112除了與數據節點111之間進行數據同步之外,還會與數據節點113進行數據同步,從而在某一時刻達到所有數據節點的數據同步的目的。參考圖2,其示出了本申請實施例一提供的海量數據處理方法的流程圖,在應用於上述數據副本集群時,所述方法包括步驟201 :依據預設規則在所述數據副本集群中被選取的當前數據節點接收待更新數據,並將所述待更新數據寫入至本數據節點;其中,所述待更新數據在所述數據副本集群接收到的更新請求信息中提取。需要說明的是,依據預設規則在所述數據副本集群中被選取的當前數據節點是指,在所述數據副本集群接收外界發送的包含有待更新數據的更新請求信息之後,需要進行數據同步寫入之前,在所述數據副本集群中依據預設規則選取一個數據節點作為當前數據節點,也即是即將被寫入待更新數據的數據節點。而所述待更新數據在進行數據同步寫入之前,在所述更新請求信息中提取。步驟202 :並更新所述當前數據節點的數據版本。需要說明的是,在所述當前數據節點將待更新數據寫入到本數據節點之後,所述當前數據節點內存儲的數據發生變化,此時將代表其存儲數據的存儲信息的數據版本進行更新。步驟203 :判斷當前系統時間是否到達其所述預設時間間隔點,如果是,執行步驟204。其中,在所述數據副本集群中的每個數據節點均預先設置有多個時間間隔點,在每個時間間隔點,所述數據節點均會執行所述步驟204。·步驟204:所述當前數據節點獲取本數據節點中不同於所述另一數據節點的數據,並將所述獲取的數據寫入所述另一數據節點中,觸發所述另一數據節點更新其數據版本。例如圖I中所示的數據節點112在所述數據副本集群接收到外界發送的更新請求信息之後,被選取作為當前數據節點,數據節點112接收所述更新請求信息中的待更新數據,並將所述待更新數據寫入至本數據節點,即數據節點112中。之後,所述數據節點112更新其數據版本。所述數據節點112作為所述數據副本集群中的數據節點定時與其連接的數據節點進行數據交互及更新,即數據節點112判斷當前系統時間是否到達預設時間間隔點,如果是,則將本數據節點中不同於與其相連的數據節點111和數據節點113中的數據進行獲取,得到第一更新數據A和第二更新數據B,將第一更新數據A寫入所述數據節點111中,觸發所述數據節點111更新其數據版本,同時,將第二更新數據B寫入所述數據節點113中,觸發所述數據節點113更新其數據版本。上述方案中,採用本申請實施例一提供的海量數據處理方法的複雜度為0(Iogd) ) +0 (log(η) ) =0 (log(n)),其中,η為數據副本集群中數據節點的個數。相對於現有海量數據處理方案的複雜度0(η),本申請提供的海量數據處理方法明顯提高了系統運行速率,從而提高海量數據處理效率。由上述方案可知,本申請實施例一提供的一種海量數據處理方法,應用於分布式數據副本集群的每個存儲有海量數據的數據節點中,通過將待更新數據寫入到被選取的當前數據節點中,再由當前數據節點在每個預設時間間隔點將其不同於與其相連的另一數據節點的數據寫入到該另一數據節點中,由此,由數據副本集群中數據節點定時與其相連的數據節點之間交互及更新數據,無須對每個數據節點執行數據寫入的操作,由每個數據節點自行與其相連的數據節點進行數據交換及更新,從而實現整個數據副本集群中的所有數據節點的數據同步。在所述數據副本集群中,每個數據節點在每個預設時間間隔點時將其不同於與其相連的數據節點的數據寫入至該數據節點,在需要進行數據更新時,只需執行一次對數據副本集群中的數據節點寫入待更新數據的操作,相連的數據節點之間進行數據交換達到所有數據節點的數據同步的目的,避免了現有海量數據處理方案中對所有數據節點均寫入一次數據,導致數據處理效率降低的技術問題。同時,在數據節點一次寫入失敗時,並不影響其他數據節點的數據寫入及更新過程,從而避免了現有數據處理方案中,一次寫入失敗,所有數據副本回滾,從而明顯使得系統對海量數據的處理性能降低,嚴重影響海量數據的處理效率的技術問題。優選地,本申請實施例一中所述當前數據節點的選取方法即依據所述預設規則在所述數據副本集群中選取當前數據節點具體包括任意選取所述數據副本集群中的一個數據節點作為當前數據節點;或選取所述數據副本集群中數據版本最大的數據節點作為當前數據節點。 需要說明的是,所述任意選取所述數據副本集群中的一個數據節點作為當前數據節點,可以理解為隨機選取數據副本集群中的一個數據節點作為當前數據節點。而所述選取所述數據副本集群中數據版本最大的數據節點作為當前數據節點,是指,選取所述數據副本集群中被寫入數據次數最多的數據節點作為當前數據節點。優選地,本申請實施例一中,所述數據節點的數據版本包括被寫入數據的標識信息。即所述數據副本集群中的每個數據節點中,數據版本存儲的是被寫入其所在數據節點的數據的標識信息。此時,上述步驟204中更新所述當前數據節點的數據版本具體包括將所述待更新數據的標識信息添加至所述當前數據節點的數據版本中。需要說明的是,所述數據副本集群中,數據版本中的數據標識最多的數據節點為被更新次數最多的數據節點。數據節點的數據版本可以作為數據節點被更新次數的標準。參考圖3,其示出了本申請實施例二提供的一種海量數據處理方法的部分流程圖,其中,所述步驟204具體包括以下步驟步驟301 :所述當前數據節點依據其數據版本生成同步請求信息,並將所述同步請求信息發送至所述另一數據節點;其中,所述同步請求信息包括所述當前數據節點的數據版本。需要說明的是,在所述當前數據節點判斷出當前系統時間到達一個預設時間間隔點時,所述當前數據節點向與其相連的另一數據節點發送同步請求信息,所述同步請求信息是所述當前數據節點依據其數據版本生成,即所述同步請求信息包括所述當前數據節點的數據版本,可以理解為所述同步請求信息包括所述當前數據節點存儲的數據的標識信息,表明所述當前數據節點存儲有何種數據。例如,如圖I中所示的數據副本集群中,數據節點111在判斷出當前系統時間達到數據節點111的一個預算時間間隔點時,所述數據節點111依據其數據版本生成同步請求信息,並將該同步請求信息發送至與其相連的數據節點112。而所述同步請求信息中包括所述數據節點111所存儲的數據的標識信息。步驟302 :所述另一數據節點依據其數據版本及所述當前數據節點的數據版本生成同步回覆信息,並將所述同步回覆信息發送至所述當前數據節點;其中,所述同步回覆信息包括所述當前數據節點中不同於所述另一數據節點的數據的標識信息。需要說明的是,所述步驟302具體包括所述另一數據節點在接受到所述當前數據節點發送的同步請求信息之後,提取所述同步請求信息中的當前數據節點的數據標識信息,並將所述另一數據節點的數據標識信息與當前數據節點的數據標識信息進行匹配,獲取所述當前數據節點的數據標識信息中,所述另一數據節點的數據標識信息中未出現的標識信息,之後,所述另一數據節點依據所述獲取的未出現的標識信息生成同步回覆信息,並將所述同步回覆信息發送至所述當前數據節點,而所述同步回覆信息中包括所述獲取的未出現的標識信息,即所述當前數據節點中不同於所述另一數據節點的數據的標識信息。例如如圖I所示的數據副本集群中,所述數據節點112在接受到所述數據節點111發送的同步請求信息之後,依據所述數據節點112的數據版本及所述數據節點111的數據版本生成同步回覆信息,即所述數據節點112提取所述同步請求信息中的所述數據節點111的數據標識信息,並將所述數據節點112的數據標識信息與所述數據節點111的數據標識信息進行匹配,獲取所述數據節點111的數據標識信息中,所述數據節點112的數據標識信息中未出現的標識信息,之後,所述數據節點112依據所述獲取的未出現的標識信息生成同步回覆信息,並將所述同步回覆信息發送至所述數據節點111,而所述同步回覆信息中包括所述獲取的未出現的標識信息,即所述數據節點111中不同於所述數據節點112的數據的標識信息。 步驟303 :所述當前數據節點提取與所述同步回覆信息中的標識信息相對應的數據,並將所述提取的數據寫入至所述另一數據節點,觸發所述另一數據節點更新其數據版本。例如如圖I中所示的數據副本集群中,所述數據節點111提取與所述同步回覆信息中的標識信息相對應的數據,並將所述提取的數據寫入至所述數據節點112中,並觸發所述數據節點112更新其數據版本,即數據節點112將其被寫入的數據的標識信息添加至其數據版本中。由上述方案可知,本申請實施例二提供的一種海量數據處理方法,應用於分布式數據副本集群的每個存儲有海量數據的數據節點中,通過接收待更新數據,將待更新數據寫入被選取的當前數據節點中,同時更新其數據版本,從而由數據副本集群中每個數據節點在其各自的預設時間間隔點將其不同於與其相連的數據節點的數據寫入到該數據節點中,並觸發該數據節點更新其數據版本,從而實現數據副本集群中所有數據節點中的數據具有一致性,即實現海量數據的數據同步,即實現整個數據副本集群中的所有數據節點的數據同步。在所述數據副本集群中,每個數據節點在每個預設時間間隔點時將其不同於與其相連的數據節點的數據寫入至該數據節點,在需要進行數據更新時,只需執行一次對數據副本集群中的數據節點寫入待更新數據的操作,相連的數據節點之間進行數據交換達到所有數據節點的數據同步的目的,避免了現有海量數據處理方案中對所有數據節點均寫入一次數據,導致數據處理效率降低的技術問題。同時,在數據節點一次寫入失敗時,並不影響其他數據節點的數據寫入及更新過程,從而避免了現有數據處理方案中,一次寫入失敗,所有數據副本回滾,從而明顯使得系統對海量數據的處理性能降低,嚴重影響海量數據的處理效率的技術問題。參考圖4,其示出了本申請實施例三提供的一種海量數據處理裝置的結構示意圖,應用於預設的分布式數據副本集群中存儲有海量數據的數據節點中;其中,所述數據附件集群至少包括一個數據節點,所述每個數據節點至少與一個不同於本數據節點的另一數據節點。所述數據副本集群的結構示意圖如圖I所示,所述數據副本集群包括η個數據節點數據節點111、數據節點112、數據節點113。。。數據節點η。所述裝置包括計時單元401、第一寫入單元402、第二寫入單元403和版本更新單元404,其中所述計時單元401,用於實時判斷當前系統時間是否到達本數據節點的預設時間間隔點,如果是,觸發本數據節點的所述第一寫入單元402。其中,所述計時單元401具有用於預先設置多個時間間隔點,並實時判斷當前系統時間是否到達其中的一個時間間隔點,如果是,觸發本數據節點的所述第一寫入單元402。其中,每個相鄰的時間間隔點之間的時間長可以預先設置。所述第一寫入單元402,用於在所述當前系統時間到達所述時間間隔點時獲取本數據節點中不同於與其相連的另一數據節點的數據,將所述獲取的數據寫入至所述另一數 據節點,並觸發所述另一數據節點的版本更新單元404。例如圖I中所示的數據節點111在所述當前系統時間到達其預設時間間隔點時,所述數據節點111上的第一寫入單元402獲取本數據節點中不同於與其相連的數據節點112的數據,將所述獲取的數據寫入至所述數據節點112,並觸發所述數據節點112的版本更新單元404。所述第二寫入單元403,在所述數據副本集群接收到更新請求信息,本數據節點被選取為當前數據節點時被觸發,用於接收待更新數據,並將所述待更新數據寫入至本數據節點,觸發所述版本更新單元404。需要說明的是,上述內容可以理解為所述數據副本集群接收到外界發送的更新請求信息之後,本數據節點被選取為當前數據節點,此時觸發所述本數據節點的第二寫入單元403。其中,所述待更新數據在所述數據副本集群接收到的更新請求信息中提取。其中,在所述第二寫入單元403將待更新數據寫入本數據節點之後,若所述本數據節點的計時單元401判斷出當前系統時間到達該數據節點的一個預設時間間隔點時,觸發所述第一寫入單元402,獲取本數據節點中不同於與其相連的另一數據節點的數據,將所述獲取的數據寫入至所述另一數據節點,並觸發所述另一數據節點的版本更新單元404,所述另一數據節點在其預設時間間隔點將其不同於與其相連的其他數據節點的數據寫入至所述其他數據節點中,由此將所述本數據節點中最新更新的數據傳播至所述數據副本集群中的其他數據節點中。所述版本更新單元404,用於更新本數據節點的數據版本。需要說明的是,在所述第一寫入單元402將其獲取的數據寫入所述另一數據節點時,所述另一數據節點存儲的數據發生變化,此時觸發所述另一數據節點的版本更新單元404,對所述另一數據節點的數據版本進行更新。而在所述第二寫入單元403將待更新的數據寫入到本數據節點中時,本數據節點存儲的數據發生變化,此時觸發本數據節點的版本更新單元404,對本數據節點的數據版本進行更新。由上述方案可知,本申請實施例三提供的一種海量數據處理裝置,應用於分布式數據副本集群的每個存儲有海量數據的數據節點中,通過第一二寫入單元將待更新數據寫入到被選取的當前數據節點中,再由當前數據節點的第一寫入單元在每個預設時間間隔點將其不同於與其相連的另一數據節點的數據寫入到該另一數據節點中,由此,由數據副本集群中數據節點定時與其相連的數據節點之間交互及更新數據,無須對每個數據節點執行數據寫入的操作,由每個數據節點自行與其相連的數據節點進行數據交換及更新,從而實現整個數據副本集群中的所有數據節點的數據同步。在所述數據副本集群中,每個數據節點在每個預設時間間隔點時將其不同於與其相連的數據節點的數據寫入至該數據節點,在需要進行數據更新時,只需執行一次對數據副本集群中的數據節點寫入待更新數據的操作,相連的數據節點之間進行數據交換達到所有數據節點的數據同步的目的,避免了現有海量數據處理方案中對所有數據節點均寫入一次數據,導致數據處理效率降低的技術問題。同時,在數據節點一次寫入失敗時,並不影響其他數據節點的數據寫入及更新過程,從而避免了現有數據處理方案中,一次寫入失敗,所有數據副本回滾,從而明顯使得系統對海量數據的處理性能降低,嚴重影響海量數據的處理效率的技術問題。優選地,所述數據節點的數據版本包括被寫入數據的標識信息。即所述數據副本集群中的每個數據節點中,數據版本存儲的是其所在數據節點被寫入的數據的標識信息。此時,所述版本更新單元404具體用於將所述本數據節點中被寫入數據的標識信息添加至本數據節點的數據版本中。需要說明的是,所述數據副本集群中,數據版本中的數據標識最多的數據節點為被更新次數最多的數據節點。數據節點的數據版本可以作為數據節點被更新次數的標準。參考圖5,其示出了本申請實施例四提供的一種海量數據處理裝置的部分結構示意圖,所述第一寫入單元402包括請求信息生成子單元421、回覆信息接收子單元422和數據寫入子單元423:所述請求信息生成子單元421,用於依據本數據節點的數據版本生成同步請求信息,並將所述同步請求信息發送至與其相連接的另一數據節點;其中,所述同步請求信息包括所述本數據節點的數據版本。需要說明的是,所述請求信息生成子單元421在其所屬數據節點的計時單元401判斷出當前系統時間到的一個預設時間間隔點時,向與其所屬數據節點相連的另一數據節點發送同步請求信息,所述同步請求信息由所述請求信息生成子單元421依據其所屬數據節點的數據版本生成,即所述同步請求信息包括所述第一寫入單元402所屬的數據節點的數據版本,可以理解為,所述同步請求信息包括所述第一寫入單元402所屬數據節點所存儲的數據的標識信息。所述回覆信息接收子單元422,用於接收所述另一數據節點發送的同步回覆信息;其中,所述同步回覆信息由所述另一數據節點依據其數據版本及所述同步請求信息中的數據版本生成,包括本數據節點中不同於所述另一數據節點的數據的標識信息。所述數據寫入子單元423,用於提取與所述同步回覆信息中的標識信息相對應的數據,並將所述提取的數據寫入至所述另一數據節點,觸發所述另一數據節點的版本更新單元。優選地,參考圖6,其示出了本申請實施例四提供的海量數據處理裝置的另一部分結構示意圖,其中,所述第一寫入單元402還包括回覆信息生成子單元424;其中,所述回覆信息生成子單元424,用於依據其數據版本及本數據節點接收到的同步請求信息中的數據版本生成同步回覆信息,並將所述同步回覆信息發送至所述同步請求信息所屬的數據節點。其中,所述另一數據節點在接受到所述第一寫入單元402所屬的本數據節點發送的同步請求信息之後,提取所述同步請求信息中的本數據節點的數據標識信息,並將所述另一數據節點的數據標識信息與本數據節點的數據標識信息進行匹配,獲取所述本數據節點的數據標識信息中,所述另一數據節點的數據標識信息中未出現的標識信息,之後,所述另一數據節點依據所述獲取的未出現的標識信息生成同步回覆信息,並將所述同步回覆信息發送至所述本數據節點,而所述同步回覆信息中包括所述獲取的未出現的標識信息,即所述本數據節點中不同於所述另一數據節點的數據的標識信息。由所述本數據節點的回覆信息接收子單元422對該同步回覆信息進行接收。由上述方案可知,本申請實施例四提供的一種海量數據處理裝置,應用於分布式數據副本集群的每個存儲有海量數據的數據節點中,通過第二寫入單元接收待更新數據,將待更新數據寫入被選取的當前數據節點中,同時更新其數據版本,從而由數據副本集群中每個數據節點的第一寫入單元在其各自的預設時間間隔點將其不同於與其相連的數據 節點的數據寫入到該數據節點中,並觸發該數據節點更新其數據版本,從而實現數據副本集群中所有數據節點中的數據具有一致性,即實現海量數據的數據同步,即實現整個數據副本集群中的所有數據節點的數據同步。在所述數據副本集群中,每個數據節點在每個預設時間間隔點時將其不同於與其相連的數據節點的數據寫入至該數據節點,在需要進行數據更新時,只需執行一次對數據副本集群中的數據節點寫入待更新數據的操作,相連的數據節點之間進行數據交換達到所有數據節點的數據同步的目的,避免了現有海量數據處理方案中對所有數據節點均寫入一次數據,導致數據處理效率降低的技術問題。同時,在數據節點一次寫入失敗時,並不影響其他數據節點的數據寫入及更新過程,從而避免了現有數據處理方案中,一次寫入失敗,所有數據副本回滾,從而明顯使得系統對海量數據的處理性能降低,嚴重影響海量數據的處理效率的技術問題。本申請實施例五提供了一種海量數據處理系統,包括至少一個如上述實施例三或實施例四所述的海量數據處理裝置,如圖7,為本申請實施例五提供的海量數據處理系統應用於存儲有海量數據的數據副本集群中的結構示意圖,所述海量數據處理系統包括η個海量數據處理裝置裝置701、裝置702、裝置703。。。裝置η,其中,裝置701與裝置702相連,裝置702除了與裝置701相連之外,還與裝置703相連接。在如圖I所示的數據副本集群中,所述海量數據處理系統中的每個海量數據處理裝置依次置於所述數據副本集群中的數據節點中。其中,在外界向所述數據副本集群發送更新請求信息之後,數據副本集群中一個數據節點作為當前數據節點被選取,觸發所述當前數據節點中海量數據處理裝置,所述被觸發的海量數據處理裝置將更新請求信息中的待更新數據寫入至所述當前數據節點中,並更新所述當前數據節點的數據版本;而所述數據副本集群中的每個數據節點的海量數據處理裝置均會在其各自的預設時間間隔點獲取不同於與其所屬數據節點相連的另一數據節點的數據,並將獲取的數據寫入至所述另一數據節點中,從而逐步實現所述數據副本集群中所有數據節點的數據同步,使得數據副本集群中各個數據節點的數據具有一致性。
優選地,所述系統還包括集群控制器700 ;所述集群控制器700,用於接收更新請求信息,任意選取所述數據副本集群中的一個數據節點作為當前數據節點,或選取所述數據副本集群中數據版本最大的數據節點作為當前數據節點,並將所述更新請求信息中的待更新數據進行提取發送至所述當前數據節點的海量數據處理裝置,同時觸發所述當前數據節點中海量數據處理裝置的第二寫入單元。如圖8所示,為本申請實施例五提供的一種海量數據處理系統的另一結構示意圖。參考圖9,其示出了本申請實施例五提供的海量數據處理系統在實現數據同步的時序圖。其中,所述集群控制器置於所述客戶端,外界通過所述客戶端將待更新數據進行輸入,所述海量數據處理系統中的各個裝置置於所述伺服器節點中,例如伺服器節點A、 伺服器節點B、伺服器節點C ;
所述流程包括步驟901 :所述集群控制器接收包含有所述待更新數據的更新請求信息,選取作為數據副本集群中各數據節點的伺服器節點中的一個作為當前伺服器節點,例如伺服器節點A,並提取所述更新請求信息中的待更新數據,將所述待更新數據發送至選取的當前伺服器節點A ;步驟902 :所述伺服器節點A的海量數據處理裝置將其接收到的待更新數據寫入至所述伺服器節點A中;步驟903 :所述伺服器節點A中的海量數據處理裝置更新其數據版本;步驟904 :所述伺服器節點A中的海量數據處理裝置將其數據更新的結果返回至所述客戶端;步驟905 :所述客戶端更新其記載的所述伺服器節點A的數據版本;步驟906 :在所述數據副本集群中的伺服器節點之間進行數據同步預設時間段之後,選取所述數據副本集群中的一個伺服器節點;步驟907 :檢驗選取的伺服器節點中的數據版本;步驟908 :伺服器節點C發送其不同於伺服器節點B的數據值所述伺服器節點B ;步驟909 :伺服器節點B更新其數據版本;步驟910 :伺服器節點B發送其不同於伺服器節點C的數據值所述伺服器節點C ;步驟911 :伺服器節點C更新其數據版本。其中,在每對相連的伺服器節點之間每隔預設時間段向對方發送其不用於對方的數據,實現所有伺服器節點之間的數據同步,保證所有伺服器節點的數據的一致性。需要說明的是,所述每個伺服器節點內部設置有一個定時器,即其海量數據處理裝置的計時單元,每隔預設時間段觸發其所屬海量數據處理裝置想與其相連的另一伺服器節點按照以下規則發送一個同步消息;第一步隨機取一個可以PING到的節點,並向它發送同步請求;第二步隨機取一個不可以PING到的節點,並向它發送同步請求;第三步如果第一步中所選取的節點不是健康節點,或者當前活著的節點數少於數據副本集群中的健康節點數,則向隨意一個健康節點發送同步請求(所述健康節點是指被認為包含比較全和新的數據的節點,可以預設設置該健康節點)。
需要說明的是,上述設置健康節點要解決的目的是避免節點同步的孤島產生。例如如果沒有這個判斷,考慮這樣一種場景,有4臺機器作為數據副本集群中的四個數據節點A、B、C、D,並且預先配置所述四個數據節點均為健康節點,如果所述四個健康節點同時啟動,可能會出現以下情形I、A節點啟動,發現沒有活著的節點,走到上述第三步,選擇任意一個其他種子節點同步,此時,假設A節點選擇與B節點進行數據同步;2、B節點和A節點完成同步,則認為A節點活著,B節點將和A節點繼續同步,由於A節點是種子節點,B節點將不再和其他種子節點進行數據同步;3、C節點啟動,發現沒有活著的節點,同樣走到上述第三步,選擇和任意一個其他種子節點同步,此時,假設C節點選擇D節點進行數據同步;4、C節點和D完成數據同步,C節點認為D活著,則C節點繼續和D節點進行數據 同步,由於D節點也是種子節點,所以C節點也不再和其他種子節點進行數據同步。由上述可知,上述情形下形成兩個孤島,A節點和B節點互相數據同步,C節點和D節點之間互相數據同步,但是{A,B}和{C,D}之間將不再互相同步,無法進行數據副本集群中所有數據節點的數據同步,從而無法實現所有數據節點的數據一致性。由此,採用上述設置將抗節點的方法,加入第二個判斷後,A節點和B節點完成數據同步後,發現只有一個節點活著,但是健康節點數有4個,此時會再和任意一個健康節點通信,從而打破孤島情形。同時由於數據量巨大,在同步的過程中,對數據進行壓縮,減少網絡帶寬的負載。該同步消息中主要包括三種信息I、節點信息nodeifo :封裝了一個節點的比其他節點新的數據,結構為MAP《DATA,VERSION)),具體為XML或者JSON的字符串,並進行了 GZIP的壓縮。2、心跳信息heartinfo :由包含一個簡單的版本號,版本號單調增長的,每次心跳之前遞增,並保證集群唯一;3、集群信息Clusterlnfo :用於表示集群的狀態,內容很簡單,就是集群中有多少個健康節點,每個健康節點的IP和PORT是多少。由上述方案可知,本申請實施例五提供的海量數據處理系統,只通過客戶端對數據副本集群中的一個數據節點進行數據同步,後期由數據副本集群中的各個數據節點之間進行數據同步,對於客戶端來說數據副本集群始終是保持數據一致的,從而提高對海量數據的處理性能。需要說明的是,本說明書中各個實施例採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對於實施例公開的裝置而言,由於其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。最後,還需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句「包括一個……」限定的要素,並不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。以上對本發明所提供的一種海量數據處理方法、裝置及系統進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於 幫助理解本發明的方法及其核心思想;同時,對於本領域的一般技術人員,依據本發明的思想,在具體實施方式
及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本申請的限制。
權利要求
1.一種海量數據處理方法,其特徵在於,應用於預設的分布式數據副本集群中存儲有海量數據的數據節點; 其中,所述數據副本集群包括至少一個所述數據節點,所述每一數據節點至少與一個不同於本數據節點的另一數據節點相連,且所述數據節點在其預設時間間隔點獲取本數據節點中不同於所述另一數據節點的數據,並將所述獲取的數據寫入至所述另一數據節點中,觸發所述另一數據節點更新其數據版本; 所述方法包括 依據預設規則在所述數據副本集群中被選取的當前數據節點接收待更新數據,並將所述待更新數據寫入至本數據節點; 其中,所述待更新數據在所述數據副本集群接收到的更新請求信息中提取; 並更新所述當前數據節點的數據版本; 若當前系統時間到達所述預設時間間隔點,所述當前數據節點獲取本數據節點中不同於所述另一數據節點的數據,並將所述獲取的數據寫入至所述另一數據節點中,觸發所述另一數據節點更新其數據版本。
2.根據權利要求I所述的方法,其特徵在於,所述數據節點的數據版本包括被寫入數據的標識信息; 所述更新所述當前數據節點的數據版本包括 將所述待更新數據的標識信息添加至所述當前數據節點的數據版本中。
3.根據權利要求I所述的方法,其特徵在於,所述依據預設規則在所述數據副本集群中選取當前數據節點包括 任意選取所述數據副本集群中的一個數據節點作為當前數據節點; 或選取所述數據副本集群中數據版本最大的數據節點作為當前數據節點。
4.根據權利要求2所述的方法,其特徵在於,所述當前數據節點獲取本數據節點中不同於所述另一數據節點的數據,並將所述獲取的數據寫入至所述另一數據節點中,觸發所述另一數據節點更新其數據版本包括 所述當前數據節點依據其數據版本生成同步請求信息,並將所述同步請求信息發送至所述另一數據節點; 其中,所述同步請求信息包括所述當前數據節點的數據版本; 所述另一數據節點依據其數據版本及所述當前數據節點的數據版本生成同步回覆信息,並將所述同步回覆信息發送至所述當前數據節點; 其中,所述同步回覆信息包括所述當前數據節點中不同於所述另一數據節點的數據的標識信息; 所述當前數據節點提取與所述同步回覆信息中的標識信息相對應的數據,並將所述提取的數據寫入至所述另一數據節點,觸發所述另一數據節點更新其數據版本。
5.一種海量數據處理裝置,其特徵在於,應用於預設的分布式數據副本集群中存儲有海量數據的數據節點; 其中,所述數據副本集群至少包括一個所述數據節點,所述每一數據節點至少與一個不同於本數據節點的另一數據節點相連; 所述裝置包括計時單元、第一寫入單元、第二寫入單元和版本更新單元,其中所述計時單元,用於實時判斷當前系統時間是否到達本數據節點的預設時間間隔點,如果是,觸發本數據節點的所述第一寫入單元; 所述第一寫入單元,用於在所述當前系統時間到達所述時間間隔點時獲取本數據節點中不同於與其相連的另一數據節點的數據,將所述獲取的數據寫入至所述另一數據節點,並觸發所述另一數據節點的版本更新單元; 所述第二寫入單元,在所述數據副本集群接收到更新請求信息,本數據節點被選取為當前數據節點時被觸發,用於接收待更新數據,並將所述待更新數據寫入至本數據節點,觸發所述版本更新單元; 其中,所述待更新數據在所述數據副本集群接收到的更新請求信息中提取; 所述版本更新單元,用於更新本數據節點的數據版本。
6.根據權利要求5所述的裝置,其特徵在於,所述數據節點的數據版本包括被寫入數據的標識信息; 所述版本更新單元,具體用於將所述本數據節點中被寫入數據的標識信息添加至本數據節點的數據版本中。
7.根據權利要求5所述的裝置,其特徵在於,所述第一寫入單元包括請求信息生成子單元、回覆信息接收子單元和數據寫入子單元 所述請求信息生成子單元,用於依據本數據節點的數據版本生成同步請求信息,並將所述同步請求信息發送至與其相連接的另一數據節點; 其中,所述同步請求信息包括所述本數據節點的數據版本; 所述回覆信息接收子單元,用於接收所述另一數據節點發送的同步回覆信息; 其中,所述同步回覆信息由所述另一數據節點依據其數據版本及所述同步請求信息中的數據版本生成,包括本數據節點中不同於所述另一數據節點的數據的標識信息; 所述數據寫入子單元,用於提取與所述同步回覆信息中的標識信息相對應的數據,並將所述提取的數據寫入至所述另一數據節點,觸發所述另一數據節點的版本更新單元。
8.根據權利要求7所述的裝置,其特徵在於,所述第一寫入單元還包括回覆信息生成子單元; 所述回覆信息生成子單元,用於依據其數據版本及本數據節點接收到的同步請求信息中的數據版本生成同步回覆信息,並將所述同步回覆信息發送至所述同步請求信息所屬的數據節點。
9.一種海量數據處理系統,其特徵在於,包括至少一個如上述權利要求5至8任意一項所述的海量數據處理裝置。
10.根據權利要求9所述的系統,其特徵在於,所述系統還包括集群控制器; 所述集群控制器,用於接收更新請求信息,任意選取所述數據副本集群中的一個數據節點作為當前數據節點,或選取所述數據副本集群中數據版本最大的數據節點作為當前數據節點,並將所述更新請求信息中的待更新數據進行提取發送至所述當前數據節點,同時觸發所述當前數據節點中海量數據處理裝置的第二寫入單元。
全文摘要
本申請公開了一種海量數據處理方法、裝置及系統,應用於數據副本集群中存儲有海量數據的數據節點,所述數據節點在預設時間間隔點獲取本數據節點中不同於與其相連的另一數據節點的數據,並將獲取的數據寫入至另一數據節點中,觸發另一數據節點更新其數據版本;所述方法包括當前數據節點接收待更新數據,並將待更新數據寫入至本數據節點,待更新數據在數據副本集群接收到的更新請求信息中提取;並更新當前數據節點的數據版本;若當前系統時間到達預設時間間隔點,當前數據節點獲取本數據節點中不同於另一數據節點的數據,並將獲取的數據寫入至另一數據節點中,觸發另一數據節點更新其數據版本。通過本申請實施例,提高對海量數據的處理效率。
文檔編號H04L29/08GK102902746SQ201210346799
公開日2013年1月30日 申請日期2012年9月18日 優先權日2012年9月18日
發明者李晨, 馬向暉 申請人:杭州勒卡斯廣告策劃有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀