數(shù)據(jù)同步方法及裝置的制造方法
【專利摘要】本發(fā)明實施例提供一種數(shù)據(jù)同步方法及裝置,涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,該方法包括:接收待同步傳輸?shù)臄?shù)據(jù)包,對數(shù)據(jù)包進行噴泉碼編碼;將編碼后的數(shù)據(jù)包分別發(fā)送至各其他管理節(jié)點。當(dāng)需要進行數(shù)據(jù)同步時,通過對待同步傳輸?shù)臄?shù)據(jù)包進行噴泉碼編碼,使得編碼后的數(shù)據(jù)包能夠在網(wǎng)絡(luò)環(huán)境較差的情況下,也能夠得到可靠傳輸;并且,由于噴泉碼是以軟件方式實現(xiàn)的編碼,速度較快,有利于保證數(shù)據(jù)包同步傳輸?shù)耐叫裕欢?,對?shù)據(jù)包進行編碼傳輸而非明文傳輸,相當(dāng)于對數(shù)據(jù)包進行了“加密”,也保證了數(shù)據(jù)傳輸?shù)陌踩浴?br>【專利說明】
數(shù)據(jù)同步方法及裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明實施例涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)同步方法及裝置。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,各種網(wǎng)絡(luò)應(yīng)用推陳出新,日益影響人們的生產(chǎn)、生 活,隨之而來的是數(shù)據(jù)量的海量增長以及服務(wù)范圍的廣泛覆蓋。面對如此龐大的數(shù)據(jù)量以 及如此廣泛地覆蓋范圍,傳統(tǒng)的由單一的服務(wù)器對某網(wǎng)絡(luò)應(yīng)用進行集中管理和維護的方式 勢必不能應(yīng)對,分布式架構(gòu)營運而生。
[0003] 舉例來說,針對某網(wǎng)絡(luò)應(yīng)用而言,可以在不同的地區(qū)布置管理節(jié)點,每個管理節(jié)點 比如可以實現(xiàn)為服務(wù)器或者服務(wù)器和存儲系統(tǒng)等不同形式。而為了保證該網(wǎng)絡(luò)應(yīng)用在面對 不同地區(qū)的用戶時的數(shù)據(jù)一致性,需要保證各數(shù)管理節(jié)點的數(shù)據(jù)同步性。其中,該數(shù)據(jù)可以 是該網(wǎng)絡(luò)應(yīng)用的軟件程序的數(shù)據(jù),也可以是管理、維護該網(wǎng)絡(luò)應(yīng)用運行的數(shù)據(jù),還可以是廣 大終端用戶使用該網(wǎng)絡(luò)應(yīng)用時所產(chǎn)生的用戶數(shù)據(jù)。
[0004] 在實現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:實際應(yīng)用中,各 個地區(qū)的管理節(jié)點間在進行數(shù)據(jù)同步傳輸時,若網(wǎng)絡(luò)環(huán)境惡劣,很可能導(dǎo)致數(shù)據(jù)同步傳輸 失敗,或者需要反復(fù)重傳才能最終實現(xiàn)數(shù)據(jù)的同步傳輸。因此,在網(wǎng)絡(luò)環(huán)境較差的情況下, 數(shù)據(jù)同步傳輸?shù)目煽啃暂^差。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明實施例提供一種數(shù)據(jù)同步方法及裝置,用以在網(wǎng)絡(luò)環(huán)境較差情況下,提高 數(shù)據(jù)同步傳輸?shù)目煽啃浴?br>[0006] 本發(fā)明實施例提供一種基于噴泉碼的數(shù)據(jù)同步方法,包括:
[0007] 接收待同步傳輸?shù)臄?shù)據(jù)包,所述數(shù)據(jù)包具有預(yù)設(shè)比特長度;
[0008] 對所述數(shù)據(jù)包進行噴泉碼編碼;
[0009] 將編碼后的數(shù)據(jù)包分別發(fā)送至各其他管理節(jié)點。
[0010] 上述技術(shù)方案具有如下有益效果:
[0011] 當(dāng)某個管理節(jié)點接收到一個數(shù)據(jù)包時,對該數(shù)據(jù)包進行噴泉碼編碼,并將編碼后 的數(shù)據(jù)包分別發(fā)送至各其他管理節(jié)點,以實現(xiàn)該數(shù)據(jù)包在所有管理節(jié)點中的同步傳輸與存 儲。本發(fā)明實施例中,當(dāng)需要進行數(shù)據(jù)同步時,通過對待同步傳輸?shù)臄?shù)據(jù)包進行噴泉碼編 碼,使得編碼后的數(shù)據(jù)包即使在網(wǎng)絡(luò)環(huán)境較差的情況下,也能夠得到可靠傳輸、可靠譯碼。 另外,由于噴泉碼是以軟件方式實現(xiàn)的編碼,速度較快,有利于保證數(shù)據(jù)包同步傳輸?shù)耐?性;而且,對數(shù)據(jù)包進行編碼傳輸而非明文傳輸,相當(dāng)于對數(shù)據(jù)包進行了"加密",也保證了 數(shù)據(jù)傳輸?shù)陌踩浴?br>[0012] 本發(fā)明實施例提供一種數(shù)據(jù)同步裝置,包括:
[0013] 第一接收模塊,用于接收待同步傳輸?shù)臄?shù)據(jù)包,所述數(shù)據(jù)包具有預(yù)設(shè)比特長度;
[0014] 編碼模塊,用于對所述第一接收模塊接收到的所述數(shù)據(jù)包進行噴泉碼編碼;
[0015] 發(fā)送模塊,用于將所述編碼模塊編碼后的數(shù)據(jù)包分別發(fā)送至各其他管理節(jié)點。
[0016] 上述技術(shù)方案具有如下有益效果:
[0017] 當(dāng)某個管理節(jié)點通過第一接收模塊接收到一個數(shù)據(jù)包時,通過編碼模塊對該數(shù)據(jù) 包進行噴泉碼編碼,并通過發(fā)送模塊將編碼后的數(shù)據(jù)包分別發(fā)送至各其他管理節(jié)點,以實 現(xiàn)該數(shù)據(jù)包在所有管理節(jié)點中的同步傳輸與存儲。本發(fā)明實施例中,當(dāng)需要進行數(shù)據(jù)同步 時,通過對待同步傳輸?shù)臄?shù)據(jù)包進行噴泉碼編碼,使得編碼后的數(shù)據(jù)包即使在網(wǎng)絡(luò)環(huán)境較 差的情況下,也能夠得到可靠傳輸、可靠譯碼;并且,由于噴泉碼是以軟件方式實現(xiàn)的編碼, 速度較快,有利于保證數(shù)據(jù)包同步傳輸?shù)耐叫?而且,對數(shù)據(jù)包進行編碼傳輸而非明文傳 輸,相當(dāng)于對數(shù)據(jù)包進行了"加密",也保證了數(shù)據(jù)傳輸?shù)陌踩浴?br>【附圖說明】
[0018] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā) 明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根 據(jù)這些附圖獲得其他的附圖。
[0019] 圖1為本發(fā)明實施例提供的一種可選的管理節(jié)點的網(wǎng)絡(luò)架構(gòu)示意圖;
[0020] 圖2為本發(fā)明實施例提供的數(shù)據(jù)同步方法實施例一的流程圖;
[0021] 圖3為本發(fā)明實施例提供的數(shù)據(jù)同步方法實施例二的流程圖;
[0022]圖4為圖3所示實施例二中步驟202的具體實現(xiàn)方式的流程圖;
[0023] 圖5為本發(fā)明實施例提供的數(shù)據(jù)同步裝置實施例一的結(jié)構(gòu)示意圖;
[0024] 圖6為本發(fā)明實施例提供的數(shù)據(jù)同步裝置實施例二的結(jié)構(gòu)示意圖。
【具體實施方式】
[0025]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例 中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是 本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員 在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0026] 在本發(fā)明實施例中使用的術(shù)語是僅僅出于描述特定實施例的目的,而非旨在限制 本發(fā)明。在本發(fā)明實施例和所附權(quán)利要求書中所使用的單數(shù)形式的"一種"、"所述"和"該" 也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。
[0027] 應(yīng)當(dāng)理解,本文中使用的術(shù)語"和/或"僅僅是一種描述關(guān)聯(lián)對象的關(guān)聯(lián)關(guān)系,表示 可以存在三種關(guān)系,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種 情況。另外,本文中字符7",一般表示前后關(guān)聯(lián)對象是一種"或"的關(guān)系。
[0028]應(yīng)當(dāng)理解,盡管在本發(fā)明實施例中可能采用術(shù)語第一、第二、第三等來描述XXX,但 這些XXX不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將XXX彼此區(qū)分開。例如,在不脫離本發(fā)明實施 例范圍的情況下,第一 XXX也可以被稱為第二XXX,類似地,第二XXX也可以被稱為第一 XXX。
[0029]取決于語境,如在此所使用的詞語"如果"、"若"可以被解釋成為"在……時"或 "當(dāng)……時"或"響應(yīng)于確定"或"響應(yīng)于檢測"。類似地,取決于語境,短語"如果確定"或"如 果檢測(陳述的條件或事件)"可以被解釋成為"當(dāng)確定時"或"響應(yīng)于確定"或"當(dāng)檢測(陳述 的條件或事件)時"或"響應(yīng)于檢測(陳述的條件或事件)"。
[0030] 還需要說明的是,術(shù)語"包括"、"包含"或者其任何其他變體意在涵蓋非排他性的 包含,從而使得包括一系列要素的商品或者系統(tǒng)不僅包括那些要素,而且還包括沒有明確 列出的其他要素,或者是還包括為這種商品或者系統(tǒng)所固有的要素。在沒有更多限制的情 況下,由語句"包括一個……"限定的要素,并不排除在包括所述要素的商品或者系統(tǒng)中還 存在另外的相同要素。
[0031] 首先結(jié)合圖1介紹本發(fā)明實施例提供的基于噴泉碼的數(shù)據(jù)同步方法可以適用于的 應(yīng)用場景。
[0032] 圖1為本發(fā)明實施例提供的一種可選的管理節(jié)點的網(wǎng)絡(luò)架構(gòu)示意圖,如圖1所示, 假設(shè)存在A、B、C三個管理節(jié)點,當(dāng)前管理節(jié)點A接收到某個數(shù)據(jù)包,該數(shù)據(jù)包是指具有比特 長度的數(shù)據(jù)包,比如可以對應(yīng)于用戶應(yīng)用某網(wǎng)絡(luò)應(yīng)用時產(chǎn)生的一定量的數(shù)據(jù),可能包含一 條或多條用戶數(shù)據(jù)。相對于當(dāng)前接收到數(shù)據(jù)包的管理節(jié)點A來說,管理節(jié)點B和管理節(jié)點C稱 為其他管理節(jié)點。
[0033]本發(fā)明實施例中可選的,接收數(shù)據(jù)包的管理節(jié)點A和管理節(jié)點B和管理節(jié)點C可以 分別位于不同的位置區(qū)域中,比如管理節(jié)點A位于地區(qū)1、管理節(jié)點B位于地區(qū)2、管理節(jié)點3 位于地區(qū)3;或者,接收數(shù)據(jù)包的管理節(jié)點A和管理節(jié)點B和管理節(jié)點C采用的通信網(wǎng)絡(luò)不同, 比如管理節(jié)點A采用網(wǎng)絡(luò)a,管理節(jié)點B采用網(wǎng)絡(luò)b,管理節(jié)點3采用網(wǎng)絡(luò)c;或者,接收數(shù)據(jù)包 的管理節(jié)點A和管理節(jié)點B和管理節(jié)點C采用的通信網(wǎng)絡(luò)不同,并且分別位于不同的位置區(qū) 域中,比如管理節(jié)點A位于地區(qū)1、采用中國移動的通信網(wǎng)絡(luò),管理節(jié)點B位于地區(qū)2、采用中 國聯(lián)通的通信網(wǎng)絡(luò),管理節(jié)點3位于地區(qū)3、采用中國電信的通信網(wǎng)絡(luò)。
[0034]值得說明的是,上述舉例的管理節(jié)點A、管理節(jié)點B和管理節(jié)點C所在位置區(qū)域、所 采用的通信網(wǎng)絡(luò)各不相同,但是實際應(yīng)用中,位置區(qū)域、通信網(wǎng)絡(luò)可以在管理節(jié)點A、管理節(jié) 點B和管理節(jié)點C之間部分不同,比如管理節(jié)點A和管理節(jié)點B都是采用通信網(wǎng)絡(luò)a,管理節(jié)點 C采用的是通信網(wǎng)絡(luò)b。因此,上述舉例不是對不同管理節(jié)點所處位置區(qū)域、所采用的通信網(wǎng) 絡(luò)的唯一限定,主要是為了說明各管理節(jié)點的差異性,即各管理節(jié)點在所在位置區(qū)域、所采 用的通信網(wǎng)絡(luò)方面是存在差異的。
[0035]管理節(jié)點A、管理節(jié)點B、管理節(jié)點C分別采用不同網(wǎng)絡(luò)運營商的通信網(wǎng)絡(luò)實現(xiàn)對外 通信的情況下,當(dāng)在各管理節(jié)點之間進行數(shù)據(jù)同步時,由于是進行跨網(wǎng)或者說是異網(wǎng)數(shù)據(jù) 傳輸,跨網(wǎng)的數(shù)據(jù)傳輸鏈路的穩(wěn)定性較差,網(wǎng)絡(luò)環(huán)境比較差,使得數(shù)據(jù)同步傳輸?shù)目煽啃院?差。
[0036] 另外,值得說明的是,本發(fā)明實施例中,各管理節(jié)點之間的數(shù)據(jù)傳輸方式可以是采 用用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol,簡稱UDP)方式實現(xiàn)的,即在接收到數(shù)據(jù)包的 管理節(jié)點A向管理節(jié)點B和管理節(jié)點C同步數(shù)據(jù)包時,其采用的傳輸方式為UDP方式。同理,當(dāng) 接收到數(shù)據(jù)包的管理節(jié)點為管理節(jié)點B時,其也采用UDP方式向管理節(jié)點A和管理節(jié)點C同步 傳輸接收到的數(shù)據(jù)包。
[0037] 圖2為本發(fā)明實施例提供的數(shù)據(jù)同步方法實施例一的流程圖,該實施例提供的數(shù) 據(jù)同步方法可以由數(shù)據(jù)同步裝置執(zhí)行,該數(shù)據(jù)同步裝置可以設(shè)置在上述網(wǎng)絡(luò)結(jié)構(gòu)中的任一 管理節(jié)點中,本實施例中以設(shè)置在管理節(jié)點A中為例進行說明。如圖2所示,該方法包括如下 步驟:
[0038]步驟101、接收待同步傳輸?shù)臄?shù)據(jù)包。
[0039]步驟102、對數(shù)據(jù)包進行噴泉碼編碼。
[0040]步驟103、將編碼后的數(shù)據(jù)包分別發(fā)送至各其他管理節(jié)點。
[0041 ] 實際應(yīng)用中,該噴泉碼可以是LT碼,也可以是Raptor碼。
[0042] 其中,LT碼是噴泉碼的第一次具體實現(xiàn),是由Michael Luby提出的,后來Amin Shokrol lahi對LT碼做出了改進,提出了第二類噴泉碼,即Raptor碼。
[0043] LT碼采用了隨機編碼的思想,是一種碼率不受限碼,也稱為無碼率碼。LT碼可以在 源端產(chǎn)生無限多的編碼數(shù)據(jù)包,直至接收端能正確恢復(fù)源文件。
[0044] Raptor碼包括一個高速率預(yù)編碼和LT碼,其中,預(yù)編碼的目的簡單來說就是擴大 原有信息分組數(shù)量即原始數(shù)據(jù)分組的數(shù)量,從而得到中間分組,進而以中間分組為LT碼編 碼的輸入進行LT碼編碼。
[0045]所謂的噴泉碼,就是指使用該種編碼可以由k個原始數(shù)據(jù)分組生成任意數(shù)量的編 碼分組,而只要知道其中任意n(n多k)個編碼分組,即可通過譯碼成功恢復(fù)出全部原始數(shù)據(jù) 分組。
[0046]本實施例中,假設(shè)接收到的數(shù)據(jù)包的長度為L比特,將長度為L比特的數(shù)據(jù)包分割 成k =「1//1個原始數(shù)據(jù)分組,則每個原始數(shù)據(jù)分組的長為1。
[0047] 定義:度d表示噴泉碼編碼過程中每次選取原始數(shù)據(jù)分組的個數(shù)。
[0048] 噴泉碼編碼生成一個編碼分組的具體過程如下:
[0049] 1)隨機(偽隨機)選擇一個度d;
[0050] 2)從所有的原始數(shù)據(jù)分組中隨機(偽隨機)選取d個不同的原始數(shù)據(jù)分組;
[0051] 3)將這d個不同的原始數(shù)據(jù)分組進行異或運算,生成一個編碼分組。
[0052] 假設(shè)已知η個編碼分組,每個編碼分組代表一個有k個未知輸入的線性方程。則整 個譯碼過程可以看作是η個方程聯(lián)合求解k個未知數(shù)的線性方程組GXX = N,其中G是生成矩 陣,大小為nXk,X為kXl的待求解原始數(shù)據(jù)分組向量,N為nXl的編碼分組向量。當(dāng)生成矩 陣G列滿秩即G的秩為k時,待求解原始數(shù)據(jù)分組X有唯一確定解。
[0053]基于上述的噴泉碼編碼、譯碼過程,當(dāng)管理節(jié)點A接收到需要同步給其他管理節(jié)點 B和C的數(shù)據(jù)包后,根據(jù)上述編碼過程對該數(shù)據(jù)包進行噴泉碼編碼。可以在每獲得一個編碼 分組后便向管理節(jié)點B和管理節(jié)點C進行發(fā)送,因此,本實施例中,將編碼后的數(shù)據(jù)包分別發(fā) 送至各其他管理節(jié)點,可以是依次將編碼獲得的編碼分組分別發(fā)送至各其他管理節(jié)點。由 于管理節(jié)點A對數(shù)據(jù)包進行噴泉碼的編碼過程中可以生成大量的編碼分組,這些編碼分組 依次不斷地向管理節(jié)點B和管理節(jié)點C進行發(fā)送,即使當(dāng)前的網(wǎng)絡(luò)環(huán)境不穩(wěn)定,這些大量的 編碼分組不能完全被管理節(jié)點B和管理節(jié)點C接收,但是管理節(jié)點B和管理節(jié)點C也會接收到 其中的部分編碼分組,只要管理節(jié)點B和管理節(jié)點C接收到的編碼分組的數(shù)量滿足其譯碼需 求,便能夠準確譯碼獲得數(shù)據(jù)包。而基于噴泉碼編碼產(chǎn)生的編碼分組的數(shù)量遠遠大于譯碼 所需的編碼分組數(shù)量,因此,基于噴泉碼對數(shù)據(jù)包進行編碼,能夠保證在網(wǎng)絡(luò)環(huán)境較差的情 況下,作為接收方的管理節(jié)點B和管理節(jié)點C仍能夠準確譯碼獲取數(shù)據(jù)包,實現(xiàn)數(shù)據(jù)包的可 靠同步傳輸。
[0054]本實施例中,當(dāng)某個管理節(jié)點接收到一個數(shù)據(jù)包時,對該數(shù)據(jù)包進行噴泉碼編碼, 并將編碼后的數(shù)據(jù)包分別發(fā)送至各其他管理節(jié)點,以實現(xiàn)該數(shù)據(jù)包在所有管理節(jié)點中的同 步傳輸與存儲。本發(fā)明實施例中,當(dāng)需要進行數(shù)據(jù)同步時,通過對待同步傳輸?shù)臄?shù)據(jù)包進行 噴泉碼編碼,使得編碼后的數(shù)據(jù)包即使在網(wǎng)絡(luò)環(huán)境較差的情況下,也能夠得到可靠傳輸;并 且,由于噴泉碼是以軟件方式實現(xiàn)的編碼,速度較快,有利于保證數(shù)據(jù)包同步傳輸?shù)耐?性;而且,對數(shù)據(jù)包進行編碼傳輸而非明文傳輸,相當(dāng)于對數(shù)據(jù)包進行了"加密",也保證了 數(shù)據(jù)傳輸?shù)陌踩浴?br>[0055]圖3為本發(fā)明實施例提供的數(shù)據(jù)同步方法實施例二的流程圖,該方法仍以設(shè)置在 管理節(jié)點A中的數(shù)據(jù)同步裝置作為執(zhí)行主體為例進行說明,如圖3所示,該方法包括如下步 驟:
[0056]步驟201、接收待同步傳輸?shù)臄?shù)據(jù)包。
[0057]步驟202、從各其他管理節(jié)點中確定出需要同步所述數(shù)據(jù)包的目標管理節(jié)點。
[0058]實際應(yīng)用中,可能由于某種原因,當(dāng)管理節(jié)點A接收到某數(shù)據(jù)包進行向管理節(jié)點B 和管理節(jié)點C的數(shù)據(jù)同步時,管理節(jié)點B、管理節(jié)點C可能已經(jīng)接收并存儲了該數(shù)據(jù)包,此時, 管理節(jié)點A向管理節(jié)點B、管理節(jié)點C的數(shù)據(jù)同步處理將失去意義。
[0059]因此,為了保證管理節(jié)點A向管理節(jié)點B和管理節(jié)點C的數(shù)據(jù)同步處理的有效性,管 理節(jié)點A需要預(yù)先確定管理節(jié)點B和管理節(jié)點C是否需要進行數(shù)據(jù)同步處理,如果管理節(jié)點B 和管理節(jié)點C都需要,則管理節(jié)點A將編碼后的數(shù)據(jù)包發(fā)送至需要的管理節(jié)點B和管理節(jié)點 C;如果管理節(jié)點B或管理節(jié)點C都需要,則管理節(jié)點A將編碼后的數(shù)據(jù)包發(fā)送至需要的管理 節(jié)點B或管理節(jié)點C;否則,如果都不需要,則管理節(jié)點A將不進行數(shù)據(jù)包向管理節(jié)點B和管理 節(jié)點C的同步傳輸。
[0060]可選的,如圖4所示,步驟202中從各其他管理節(jié)點中確定出需要同步數(shù)據(jù)包的目 標管理節(jié)點,可以通過如下方式實現(xiàn):
[0061 ]步驟2021、獲取數(shù)據(jù)包的指紋信息,該指紋信息用于標識數(shù)據(jù)包。
[0062] 其中,數(shù)據(jù)指紋可以是根據(jù)數(shù)據(jù)包的一些屬性信息生成的,生成方式可以參考現(xiàn) 有方式實現(xiàn),本實施例僅以如下的例子舉例說明。
[0063] 假設(shè)該數(shù)據(jù)包是管理節(jié)點A接收到的一個文檔,該文檔中包括字體格式、段落格式 這些屬性信息,這幾個屬性信息僅為舉例。實際應(yīng)用中,可以預(yù)先建立字體格式、段落格式 與編碼標識的對應(yīng)關(guān)系,比如宋體對應(yīng)的編碼標識為00000001,楷體對應(yīng)的編碼標識為 00000002。從而,可以基于該對應(yīng)關(guān)系確定出該文檔的字體格式對應(yīng)的編碼標識以及段落 格式對應(yīng)的編碼標識。進而對得到的這兩個編碼標識進行一定的運算,比如異或運算,得到 標識該文檔的指紋信息。
[0064]步驟2022、分別向各其他管理節(jié)點發(fā)送數(shù)據(jù)同步請求,數(shù)據(jù)同步請求中包括指紋 信息。
[0065]步驟2023、接收各其他管理節(jié)點發(fā)送的數(shù)據(jù)同步響應(yīng),每個數(shù)據(jù)同步響應(yīng)中包括 對應(yīng)其他管理節(jié)點根據(jù)指紋信息確定是否已經(jīng)存儲過數(shù)據(jù)包的指示信息。
[0066]步驟2024、根據(jù)各數(shù)據(jù)同步響應(yīng)中的指示信息,從各其他管理節(jié)點中確定目標管 理節(jié)點。
[0067]仍以圖1所示網(wǎng)絡(luò)架構(gòu)為例,管理節(jié)點A在計算獲得數(shù)據(jù)包的指紋信息后,分別向 管理節(jié)點B和管理節(jié)點C發(fā)送攜帶有該指紋信息的數(shù)據(jù)同步請求。值得說明的是,管理節(jié)點B 和管理節(jié)點C對于其存儲的各數(shù)據(jù)包,也關(guān)聯(lián)存儲有該數(shù)據(jù)包對應(yīng)的指紋信息。
[0068]因此,當(dāng)管理節(jié)點B和管理節(jié)點C接收到該數(shù)據(jù)同步請求,從中解析出該指紋信息 后,從本地維護的指紋信息中進行與該接收到的指紋信息的匹配處理,如果匹配到一致的 指紋信息,說明已經(jīng)存儲過該數(shù)據(jù)包,向管理節(jié)點A反饋的數(shù)據(jù)同步響應(yīng)中包含指示已經(jīng)存 儲過該數(shù)據(jù)包的指示信息;相反的,如果沒有匹配到一致的指紋信息,說明還沒有存儲過該 數(shù)據(jù)包,則向管理節(jié)點A反饋的數(shù)據(jù)同步響應(yīng)中包含指示沒有存儲過該數(shù)據(jù)包的指示信息。 [0069]從而,管理節(jié)點A根據(jù)管理節(jié)點B和管理節(jié)點C的數(shù)據(jù)同步響應(yīng),確定管理節(jié)點B和 管理節(jié)點C是否已經(jīng)存儲過該數(shù)據(jù)包。將沒有存儲過該數(shù)據(jù)包的管理節(jié)點作為目標管理節(jié) 點。
[0070]步驟203、將編碼后的數(shù)據(jù)包發(fā)送至目標管理節(jié)點。
[0071]假設(shè)確定結(jié)果表示管理節(jié)點B已經(jīng)存儲過該數(shù)據(jù)包,管理節(jié)點C沒有存儲過該數(shù)據(jù) 包,則管理節(jié)點A確定管理節(jié)點C為目標管理節(jié)點,將編碼后的數(shù)據(jù)包發(fā)送至管理節(jié)點C。 [0072]步驟204、接收到目標管理節(jié)點發(fā)送的接收確認消息,停止發(fā)送編碼后的數(shù)據(jù)包。 [0073]根據(jù)前述實施例中對于噴泉碼編碼、譯碼過程的描述,假設(shè)目標管理節(jié)點C已經(jīng)成 功接收到n(n多k)個編碼分組,其已經(jīng)可以成功譯碼出該數(shù)據(jù)包,則其可以向管理節(jié)點A發(fā) 送接收確認消息,用于告知管理節(jié)點A其已經(jīng)成功接收了該數(shù)據(jù)包,該成功接收意味著成功 譯碼獲得該數(shù)據(jù)包。從而,管理節(jié)點A可以停止后續(xù)的編碼分組的生成,并停止繼續(xù)向管理 節(jié)點C發(fā)送后續(xù)的編碼分組,并在存在下一個數(shù)據(jù)包需要同步傳輸時,進行下一數(shù)據(jù)包的同 步傳輸處理。
[0074]或者,管理節(jié)點A停止發(fā)送編碼后的數(shù)據(jù)包,也可以是如下的情況:管理節(jié)點A在編 碼數(shù)據(jù)包獲得該數(shù)據(jù)包對應(yīng)的多個編碼分組后,將各編碼分組發(fā)送至管理節(jié)點C。如果沒有 接收到上述接收確認消息,則管理節(jié)點A可以根據(jù)預(yù)設(shè)策略重復(fù)發(fā)送該個編碼分組,如果收 到該接收確認消息,則停止重復(fù)發(fā)送該各編碼分組,并在有下一個數(shù)據(jù)包需要發(fā)送的情況 下,處理下一個數(shù)據(jù)包。因此,該停止發(fā)送編碼后的數(shù)據(jù)包也可以是指停止重復(fù)發(fā)送該編碼 后的數(shù)據(jù)包。
[0075] 本實施例中,接收到待同步傳輸?shù)臄?shù)據(jù)包的管理節(jié)點通過獲取該數(shù)據(jù)包的指紋信 息并傳輸給其他管理節(jié)點,使得其他管理節(jié)點能夠基于對該指紋信息與已經(jīng)存儲的數(shù)據(jù)包 所對應(yīng)的指紋信息的匹配,確定是否已經(jīng)存儲過待同步傳輸?shù)臄?shù)據(jù)包。從而,接收到待同步 傳輸?shù)臄?shù)據(jù)包的管理節(jié)點只需要向沒有存儲過該數(shù)據(jù)包的管理節(jié)點同步傳輸該數(shù)據(jù)包,避 免了計算等處理資源的浪費,保證了數(shù)據(jù)同步處理的有效性。另外,通過對數(shù)據(jù)包進行噴泉 碼編碼,以噴泉碼編碼后的數(shù)據(jù)包進行同步傳輸,保證了同步傳輸?shù)目煽啃浴?br>[0076] 圖5為本發(fā)明實施例提供的數(shù)據(jù)同步裝置實施例一的結(jié)構(gòu)示意圖,如圖5所示,該 數(shù)據(jù)同步裝置包括:第一接收模塊11、編碼模塊12、發(fā)送模塊13。
[0077] 第一接收模塊11,用于接收待同步傳輸?shù)臄?shù)據(jù)包,所述數(shù)據(jù)包具有預(yù)設(shè)比特長度。
[0078] 編碼模塊12,用于對所述第一接收模塊11接收到的所述數(shù)據(jù)包進行噴泉碼編碼。 [0079]發(fā)送模塊13,用于將所述編碼模塊12編碼后的數(shù)據(jù)包分別發(fā)送至各其他管理節(jié) 點。
[0080] 可選的,接收所述數(shù)據(jù)包的管理節(jié)點和所述各其他管理節(jié)點分別位于不同的位置 區(qū)域中,和/或,接收所述數(shù)據(jù)包的管理節(jié)點和所述各其他管理節(jié)點采用的通信網(wǎng)絡(luò)不同。
[0081] 可選的,接收所述數(shù)據(jù)包的管理節(jié)點和所述各其他管理節(jié)點彼此之間通過UDP方 式傳輸所述編碼后的數(shù)據(jù)包。
[0082]圖5所示裝置可以執(zhí)行圖2所示實施例的方法,本實施例未詳細描述的部分,可參 考對圖2的相關(guān)說明。
[0083]本發(fā)明實施例的技術(shù)方案具有以下有益效果:
[0084]當(dāng)某個管理節(jié)點通過第一接收模塊接收到一個數(shù)據(jù)包時,通過編碼模塊對該數(shù)據(jù) 包進行噴泉碼編碼,并通過發(fā)送模塊將編碼后的數(shù)據(jù)包分別發(fā)送至各其他管理節(jié)點,以實 現(xiàn)該數(shù)據(jù)包在所有管理節(jié)點中的同步傳輸與存儲。本發(fā)明實施例中,當(dāng)需要進行數(shù)據(jù)同步 時,通過對待同步傳輸?shù)臄?shù)據(jù)包進行噴泉碼編碼,使得編碼后的數(shù)據(jù)包即使在網(wǎng)絡(luò)環(huán)境較 差的情況下,也能夠得到可靠傳輸;并且,由于噴泉碼是以軟件方式實現(xiàn)的編碼,速度較快, 有利于保證數(shù)據(jù)包同步傳輸?shù)耐叫?而且,對數(shù)據(jù)包進行編碼傳輸而非明文傳輸,相當(dāng)于 對數(shù)據(jù)包進行了"加密",也保證了數(shù)據(jù)傳輸?shù)陌踩浴?br>[0085] 圖6為本發(fā)明實施例提供的數(shù)據(jù)同步裝置實施例二的結(jié)構(gòu)示意圖,如圖6所示,在 圖5所示實施例基礎(chǔ)上,可選的,該裝置還包括:確定模塊21。
[0086] 確定模塊21,用于從所述各其他管理節(jié)點中確定出需要同步所述數(shù)據(jù)包的目標管 理節(jié)點。
[0087]相應(yīng)的,所述發(fā)送模塊13具體用于:將編碼后的數(shù)據(jù)包發(fā)送至所述目標管理節(jié)點。
[0088] 具體的,所述確定模塊21包括:獲取單元211、發(fā)送單元212、接收單元213、確定單 元 214〇
[0089] 獲取單元211,用于獲取所述數(shù)據(jù)包的指紋信息,所述指紋信息用于標識所述數(shù)據(jù) 包。
[0090] 發(fā)送單元212,用于分別向所述各其他管理節(jié)點發(fā)送數(shù)據(jù)同步請求,所述數(shù)據(jù)同步 請求中包括所述指紋信息。
[0091] 接收單元213,用于接收所述各其他管理節(jié)點發(fā)送的數(shù)據(jù)同步響應(yīng),所述數(shù)據(jù)同步 響應(yīng)中包括對應(yīng)其他管理節(jié)點根據(jù)所述指紋信息確定是否已經(jīng)存儲過所述數(shù)據(jù)包的指示 信息。
[0092] 確定單元214,用于根據(jù)各所述數(shù)據(jù)同步響應(yīng)中的所述指示信息,從所述各其他管 理節(jié)點中確定目標管理節(jié)點。
[0093] 可選的,該裝置還包括:第二接收模塊22。
[0094]第二接收模塊22,用于接收所述各其他管理節(jié)點發(fā)送的接收確認消息。
[0095]所述發(fā)送模塊13還用于:在所述第二接收模塊22接收到所述接收確認消息時,停 止發(fā)送所述編碼后的數(shù)據(jù)包。
[0096] 圖6所示裝置可以執(zhí)行圖3所示實施例的方法,本實施例未詳細描述的部分,可參 考對圖3的相關(guān)說明。
[0097] 本發(fā)明實施例的技術(shù)方案具有以下有益效果:
[0098] 接收到待同步傳輸?shù)臄?shù)據(jù)包的管理節(jié)點通過獲取單元獲取該數(shù)據(jù)包的指紋信息 并傳輸給其他管理節(jié)點,使得其他管理節(jié)點能夠基于對該指紋信息與已經(jīng)存儲的數(shù)據(jù)包所 對應(yīng)的指紋信息的匹配,確定是否已經(jīng)存儲過待同步傳輸?shù)臄?shù)據(jù)包。從而,接收到待同步傳 輸?shù)臄?shù)據(jù)包的管理節(jié)點只需要向沒有存儲過該數(shù)據(jù)包的管理節(jié)點同步傳輸該數(shù)據(jù)包,避免 了計算等處理資源的浪費,保證了數(shù)據(jù)同步處理的有效性。另外,通過對數(shù)據(jù)包進行噴泉碼 編碼,以噴泉碼編碼后的數(shù)據(jù)包進行同步傳輸,保證了同步傳輸?shù)目煽啃浴?br>[0099] 可選的,本發(fā)明實施例還一種管理設(shè)備,該管理設(shè)備中包括處理器以及與處理器 通過總線連接的存儲器,該存儲器中存儲有計算機程序,處理器調(diào)用該計算機程序以執(zhí)行 上述圖2-圖3方法實施例中各步驟。該存儲器可以實現(xiàn)為計算機可讀記錄介質(zhì)。
[0100] 以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可 以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單 元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其 中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性 的勞動的情況下,即可以理解并實施。
[0101] 通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可 借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上 述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該 計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指 令用以使得一臺計算機裝置(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)裝置等)執(zhí)行各個實施 例或者實施例的某些部分所述的方法。
[0102]最后應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管 參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可 以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換; 而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和 范圍。
【主權(quán)項】
1. 一種數(shù)據(jù)同步方法,其特征在于,包括: 接收待同步傳輸?shù)臄?shù)據(jù)包,所述數(shù)據(jù)包具有預(yù)設(shè)比特長度; 對所述數(shù)據(jù)包進行噴泉碼編碼; 將編碼后的數(shù)據(jù)包分別發(fā)送至各其他管理節(jié)點。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述接收待同步傳輸?shù)臄?shù)據(jù)包之后,還包 括: 從所述各其他管理節(jié)點中確定出需要同步所述數(shù)據(jù)包的目標管理節(jié)點; 相應(yīng)的,所述將編碼后的數(shù)據(jù)包分別發(fā)送至各其他管理節(jié)點,包括: 將所述編碼后的數(shù)據(jù)包發(fā)送至所述目標管理節(jié)點。3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述從所述各其他管理節(jié)點中確定出需要 同步所述數(shù)據(jù)包的目標管理節(jié)點,包括: 獲取所述數(shù)據(jù)包的指紋信息,所述指紋信息用于標識所述數(shù)據(jù)包; 分別向所述各其他管理節(jié)點發(fā)送數(shù)據(jù)同步請求,所述數(shù)據(jù)同步請求中包括所述指紋信 息; 接收所述各其他管理節(jié)點發(fā)送的數(shù)據(jù)同步響應(yīng),所述數(shù)據(jù)同步響應(yīng)中包括所述其他管 理節(jié)點根據(jù)所述指紋信息確定是否已經(jīng)存儲過所述數(shù)據(jù)包的指示信息; 根據(jù)各所述數(shù)據(jù)同步響應(yīng)中的所述指示信息,從所述各其他管理節(jié)點中確定所述目標 管理節(jié)點。4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將編碼后的數(shù)據(jù)包分別發(fā)送至各其他 管理節(jié)點之后,還包括: 接收到所述各其他管理節(jié)點發(fā)送的接收確認消息,停止發(fā)送所述編碼后的數(shù)據(jù)包。5. 根據(jù)權(quán)利要1至4中任一項所述的方法,其特征在于,接收所述數(shù)據(jù)包的管理節(jié)點和 所述各其他管理節(jié)點分別位于不同的位置區(qū)域中,和/或,接收所述數(shù)據(jù)包的管理節(jié)點和所 述各其他管理節(jié)點采用的通信網(wǎng)絡(luò)不同; 接收所述數(shù)據(jù)單元的管理節(jié)點和所述各其他管理節(jié)點彼此之間通過用戶數(shù)據(jù)報協(xié)議 UDP方式傳輸所述編碼后的數(shù)據(jù)包。6. -種數(shù)據(jù)同步裝置,其特征在于,包括: 第一接收模塊,用于接收待同步傳輸?shù)臄?shù)據(jù)包,所述數(shù)據(jù)包具有預(yù)設(shè)比特長度; 編碼模塊,用于對所述第一接收模塊接收到的所述數(shù)據(jù)包進行噴泉碼編碼; 發(fā)送模塊,用于將所述編碼模塊編碼后的數(shù)據(jù)包分別發(fā)送至各其他管理節(jié)點。7. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括: 確定模塊,用于從所述各其他管理節(jié)點中確定出需要同步所述數(shù)據(jù)包的目標管理節(jié) 占 . 相應(yīng)的,所述發(fā)送模塊具體用于:將所述編碼模塊編碼后的數(shù)據(jù)包發(fā)送至所述目標管 理節(jié)點。8. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述確定模塊包括: 獲取單元,用于獲取所述數(shù)據(jù)包的指紋信息,所述指紋信息用于標識所述數(shù)據(jù)包; 發(fā)送單元,用于分別向所述各其他管理節(jié)點發(fā)送數(shù)據(jù)同步請求,所述數(shù)據(jù)同步請求中 包括所述指紋信息; 接收單元,用于接收所述各其他管理節(jié)點發(fā)送的數(shù)據(jù)同步響應(yīng),所述數(shù)據(jù)同步響應(yīng)中 包括對應(yīng)其他管理節(jié)點根據(jù)所述指紋信息確定是否已經(jīng)存儲過所述數(shù)據(jù)包的指示信息; 確定單元,用于根據(jù)各所述數(shù)據(jù)同步響應(yīng)中的所述指示信息,從所述各其他管理節(jié)點 中確定所述目標管理節(jié)點。9. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括: 第二接收模塊,用于接收所述各其他管理節(jié)點發(fā)送的接收確認消息; 所述發(fā)送模塊還用于:在所述第二接收模塊接收到所述接收確認消息時,停止發(fā)送所 述編碼后的數(shù)據(jù)包。10. 根據(jù)權(quán)利要求6至9中任一項所述的裝置,其特征在于,接收所述數(shù)據(jù)包的管理節(jié)點 和所述各其他管理節(jié)點分別位于不同的位置區(qū)域中,和/或,接收所述數(shù)據(jù)包的管理節(jié)點和 所述各其他管理節(jié)點采用的通信網(wǎng)絡(luò)不同; 接收所述數(shù)據(jù)包的管理節(jié)點和所述各其他管理節(jié)點彼此之間通過用戶數(shù)據(jù)報協(xié)議UDP 方式傳輸所述編碼后的數(shù)據(jù)包。
【文檔編號】H04L1/00GK105897382SQ201610405252
【公開日】2016年8月24日
【申請日】2016年6月8日
【發(fā)明人】陳翔, 胡勇
【申請人】樂視控股(北京)有限公司, 樂視網(wǎng)信息技術(shù)(北京)股份有限公司