【技術(shù)領(lǐng)域】
本發(fā)明屬于數(shù)據(jù)共享領(lǐng)域,尤其涉及多節(jié)點間的數(shù)據(jù)交換方法。
背景技術(shù):
近年來隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,分布式技術(shù)得到了深入的研究和廣泛的應(yīng)用,分布式系統(tǒng)中的各個計算機都存儲有數(shù)據(jù),數(shù)據(jù)可以在各個計算機之間進行共享和交換。
現(xiàn)有的數(shù)據(jù)交換方式,通常是在數(shù)據(jù)請求方和數(shù)據(jù)提供方之間直接進行數(shù)據(jù)交換,這對作為數(shù)據(jù)提供方的服務(wù)器的讀寫和傳輸速度要求很高,但是對于硬盤讀寫速度通常比較慢,影響服務(wù)器自身的數(shù)據(jù)處理。
基于上述問題,現(xiàn)在亟需一種新的多節(jié)點間的數(shù)據(jù)交換方法,減輕數(shù)據(jù)提供方服務(wù)器的處理負載,提高系統(tǒng)數(shù)據(jù)交換速度。
技術(shù)實現(xiàn)要素:
為了解決現(xiàn)有技術(shù)中的上述問題,本發(fā)明提出了一種多節(jié)點間的數(shù)據(jù)交換方法。
本發(fā)明采用的技術(shù)方案如下:
一種多節(jié)點間的數(shù)據(jù)交換方法,所述數(shù)據(jù)以樹結(jié)構(gòu)存儲,其特征在于,該方法包括如下步驟:
(1)節(jié)點a向節(jié)點b發(fā)送數(shù)據(jù)集合g的數(shù)據(jù)交換請求,所述數(shù)據(jù)集合g中包括若干數(shù)據(jù)d,其中數(shù)據(jù)d以樹結(jié)構(gòu)存儲在節(jié)點b中,節(jié)點a為數(shù)據(jù)請求節(jié)點,節(jié)點b為數(shù)據(jù)發(fā)送節(jié)點;
(2)從其他節(jié)點中選擇一個當前運行負載最低的節(jié)點c作為緩存節(jié)點,在緩存節(jié)點內(nèi)存中劃分一個區(qū)域作為共享數(shù)據(jù)交換的緩沖區(qū);
(3)將數(shù)據(jù)集合g中的數(shù)據(jù)d的樹結(jié)構(gòu)分成n棵子樹,依次寫入內(nèi)存的上述緩存區(qū);
(4)對緩存區(qū)中的多個子樹合并成數(shù)據(jù)d的完整樹結(jié)構(gòu);
(5)重復上述步驟(3)(4),將數(shù)據(jù)集合g中的數(shù)據(jù)的樹結(jié)構(gòu)依次進行子樹分解、寫入緩存區(qū)和完整樹合并;
(6)監(jiān)控緩沖區(qū)中存儲的數(shù)據(jù)量是否超過緩存閾值,如果超過緩存閾值,則將緩存區(qū)中存儲的數(shù)據(jù)集合e傳送給節(jié)點a,并將緩沖區(qū)中存儲的數(shù)據(jù)量刪除;
(7)節(jié)點a接收上述傳送的數(shù)據(jù)集合e并存儲在其內(nèi)存中;
(8)如果數(shù)據(jù)集合e是數(shù)據(jù)集合g的子集,再繼續(xù)執(zhí)行上述步驟(5)-(7),如果數(shù)據(jù)集合e和數(shù)據(jù)集合g相同,則執(zhí)行步驟(9)-(12);
(9)節(jié)點a為防止數(shù)據(jù)丟失,需要將數(shù)據(jù)存儲在暫時持久化磁盤,在節(jié)點a硬盤中劃分一塊區(qū)域作為暫時持久化區(qū)域;
(10)將數(shù)據(jù)集合e中的數(shù)據(jù)f的樹結(jié)構(gòu)分成m棵子樹,依次寫入上述暫時持久化區(qū)域;
(11)對暫時持久化區(qū)域中的子樹合并處理成數(shù)據(jù)f的完整樹結(jié)構(gòu);
(12)重復上述步驟(10)(11),將數(shù)據(jù)集合e中的數(shù)據(jù)的樹結(jié)構(gòu)依次進行子樹分解、寫入緩存區(qū)和完整樹合并。
本發(fā)明的有益效果包括:將數(shù)據(jù)傳輸?shù)呢摀鷱臄?shù)據(jù)提供方的服務(wù)器中分離出來,選擇運行負載最低的節(jié)點作為中轉(zhuǎn)節(jié)點,減輕數(shù)據(jù)提供方的服務(wù)器的運行負載,加快系統(tǒng)交換速度,進一步地,
本技術(shù):
將數(shù)據(jù)集合g中的數(shù)據(jù)d的樹結(jié)構(gòu)分成n棵子樹,依次寫入內(nèi)存的上述緩存區(qū),再對緩存區(qū)中的多個子樹合并成數(shù)據(jù)d的完整樹結(jié)構(gòu),縮小了傳輸過程和寫入內(nèi)存中的數(shù)據(jù)量,提高了傳輸和讀寫速率。
【附圖說明】
此處所說明的附圖是用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,但并不構(gòu)成對本發(fā)明的不當限定,在附圖中:
圖1是本發(fā)明系統(tǒng)的結(jié)構(gòu)圖。
圖2是本發(fā)明多節(jié)點間的數(shù)據(jù)交換方法的流程圖。
【具體實施方式】
下面將結(jié)合附圖以及具體實施例來詳細說明本發(fā)明,其中的示意性實施例以及說明僅用來解釋本發(fā)明,但并不作為對本發(fā)明的限定。
參見附圖1,是本發(fā)明所應(yīng)用的系統(tǒng),在一個實施例中,系統(tǒng)為分布式系統(tǒng),該系統(tǒng)包括一個控制節(jié)點和多個計算節(jié)點。在其他實施方式中,也可以是云系統(tǒng)等多節(jié)點系統(tǒng)。
參見附圖2,一種多節(jié)點間的數(shù)據(jù)交換方法,所述數(shù)據(jù)以樹結(jié)構(gòu)存儲,其特征在于,該方法包括如下步驟:
(1)節(jié)點a向節(jié)點b發(fā)送數(shù)據(jù)集合g的數(shù)據(jù)交換請求。
在一個實施方式中,所述數(shù)據(jù)集合g中包括若干數(shù)據(jù)d,其中數(shù)據(jù)d以樹結(jié)構(gòu)存儲在節(jié)點b中,節(jié)點a為數(shù)據(jù)請求節(jié)點,節(jié)點b為數(shù)據(jù)發(fā)送節(jié)點;
(2)從其他節(jié)點中選擇一個節(jié)點c作為緩存節(jié)點,
在一個實施方式中,選擇一個當前運行負載最低的一個節(jié)點作為緩存節(jié)點,以便最低限度降低對其他節(jié)點運行的影響,然后在緩存節(jié)點內(nèi)存中劃分一個區(qū)域作為共享數(shù)據(jù)交換的緩沖區(qū);
(3)將數(shù)據(jù)集合g中的數(shù)據(jù)d的樹結(jié)構(gòu)分成n棵子樹,依次寫入內(nèi)存的上述緩存區(qū);
(4)對緩存區(qū)中的多個子樹合并成數(shù)據(jù)d的完整樹結(jié)構(gòu);
(5)重復上述步驟(3)(4),將數(shù)據(jù)集合g中的數(shù)據(jù)的樹結(jié)構(gòu)依次進行子樹分解、寫入緩存區(qū)和完整樹合并;
(6)監(jiān)控緩沖區(qū)中存儲的數(shù)據(jù)量是否超過緩存閾值,如果超過緩存閾值,則將緩存區(qū)中存儲的數(shù)據(jù)集合e傳送給節(jié)點a,并將緩沖區(qū)中存儲的數(shù)據(jù)量刪除;
(7)節(jié)點a接收上述傳送的數(shù)據(jù)集合e并存儲在其內(nèi)存中;
(8)如果數(shù)據(jù)集合e是數(shù)據(jù)集合g的子集,再繼續(xù)執(zhí)行上述步驟(5)-(7),如果數(shù)據(jù)集合e和數(shù)據(jù)集合g相同,則執(zhí)行步驟(9)-(12);
(9)節(jié)點a為防止數(shù)據(jù)丟失,需要將數(shù)據(jù)存儲在暫時持久化磁盤,在節(jié)點a硬盤中劃分一塊區(qū)域作為暫時持久化區(qū)域;
(10)將數(shù)據(jù)集合e中的數(shù)據(jù)f的樹結(jié)構(gòu)分成m棵子樹,依次寫入上述暫時持久化區(qū)域;
(11)對暫時持久化區(qū)域中的子樹合并處理成數(shù)據(jù)f的完整樹結(jié)構(gòu);
(12)重復上述步驟(10)(11),將數(shù)據(jù)集合e中的數(shù)據(jù)的樹結(jié)構(gòu)依次進行子樹分解、寫入緩存區(qū)和完整樹合并。
通過上述方法,本發(fā)明將數(shù)據(jù)傳輸?shù)呢摀鷱臄?shù)據(jù)提供方的服務(wù)器中分離出來,選擇運行負載最低的節(jié)點作為中轉(zhuǎn)節(jié)點,減輕數(shù)據(jù)提供方的服務(wù)器的運行負載,加快系統(tǒng)交換速度,進一步地,本申請將數(shù)據(jù)集合g中的數(shù)據(jù)d的樹結(jié)構(gòu)分成n棵子樹,依次寫入內(nèi)存的上述緩存區(qū),再對緩存區(qū)中的多個子樹合并成數(shù)據(jù)d的完整樹結(jié)構(gòu),縮小了傳輸過程和寫入內(nèi)存中的數(shù)據(jù)量,提高了傳輸和讀寫速率。
以上所述僅是本發(fā)明的較佳實施方式,故凡依本發(fā)明專利申請范圍所述的構(gòu)造、特征及原理所做的等效變化或修飾,均包括于本發(fā)明專利申請范圍內(nèi)。