專利名稱:一種基于無中心分布系統(tǒng)的全局重復數(shù)據(jù)刪除系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機信息存儲領(lǐng)域,具體涉及一種基于無中心分布系統(tǒng)的全局重復數(shù)據(jù)刪除系統(tǒng)及方法。
背景技術(shù):
隨著信息量的膨脹,云存儲系統(tǒng)的普及,越來越多的重復數(shù)據(jù)給存儲系統(tǒng)和網(wǎng)絡(luò)帶寬帶來挑戰(zhàn),如何壓縮數(shù)據(jù)成為一個重要的課題。為了解決這個問題,“重復數(shù)據(jù)刪除”技術(shù)便成為焦點。由于現(xiàn)有的“服務(wù)端數(shù)據(jù)刪除”技術(shù),需要把數(shù)據(jù)傳送到服務(wù)端,再由服務(wù)器進行重復刪除操作,當在云存儲環(huán)境下,大量客戶端并發(fā)請求時,服務(wù)器的運算及存儲馬上成為瓶頸;由于云存儲環(huán)境下的數(shù)據(jù)量非常大,即使經(jīng)過重復刪除,單臺存儲服務(wù)器也會 被很快填滿。所以,如何在分布式的云存儲環(huán)境下,又能實現(xiàn)數(shù)據(jù)重復刪除,成為了亟待解決的難題?,F(xiàn)行技術(shù)下的重復數(shù)據(jù)刪除,基本上都采用了 “布隆過濾器”(Bloom Filter),它是種有損的信息處理方法,會產(chǎn)生一定的誤判(False Positive),它可能給出的一個查詢請求結(jié)果是“可能存在”,當數(shù)據(jù)量越來越大,這種誤判就會降低數(shù)據(jù)的重復刪除效果,導致仍然有很多數(shù)據(jù)沒有被重復刪除掉。這種有損的信息處理方法,決定了不能保證在全局范圍內(nèi)進行重復數(shù)據(jù)刪除處理。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)在重復數(shù)據(jù)刪除過程中會產(chǎn)生誤判,降低數(shù)據(jù)的重復刪除效果,導致較多重復數(shù)據(jù)被漏刪的技術(shù)問題,本發(fā)明提供一種基于無中心分布系統(tǒng)的全局重復數(shù)據(jù)刪除系統(tǒng)及方法。一種基于無中心分布系統(tǒng)的全局重復數(shù)據(jù)刪除系統(tǒng),所述系統(tǒng)包括客戶端重復數(shù)據(jù)刪除模塊,與客戶端重復數(shù)據(jù)刪除模塊實現(xiàn)數(shù)據(jù)相互傳輸?shù)姆?wù)端全局重復數(shù)據(jù)刪除模塊,與服務(wù)端全局重復數(shù)據(jù)刪除模塊實現(xiàn)數(shù)據(jù)相互傳遞的服務(wù)端多副本冗余模塊以及引用操作模塊,以及由客戶端發(fā)起對一個數(shù)據(jù)塊進行讀寫操作的讀寫操作模塊。優(yōu)選的是,所述引用操作模塊由加引用操作模塊和減引用操作模塊組成。優(yōu)選的是,所述加引用操作模塊由路由模塊、全內(nèi)存索引模塊和冗余組模塊組成;所述路由模塊、全內(nèi)存索引模塊以及冗余組模塊相互之間協(xié)同工作;所述路由模塊的路由過程是首先通過給定的一個數(shù)據(jù)塊的ID,然后把ID映射到一個存儲服務(wù)器上;所述全內(nèi)存索引模塊主要是用以提高重復數(shù)據(jù)刪除的速度;所述冗余組模塊是互為復制品的一組服務(wù)器,用以提高數(shù)據(jù)安全性?!N實現(xiàn)基于無中心分布系統(tǒng)的全局重復數(shù)據(jù)刪除系統(tǒng)的方法,所述客戶端重復數(shù)據(jù)刪除方法包括以下步驟a)采用基于內(nèi)容的變長數(shù)據(jù)分塊算法對目標文件進行切塊;b)對已切塊的數(shù)據(jù)進行強簽名運算,得到摘要ID ;c)由客戶端向服務(wù)器端發(fā)起對此摘要的引用請求,表示為Ref (ID);
d)由服務(wù)器端通過全局重復數(shù)據(jù)刪除操作,返回兩個確定的操作之一的結(jié)果,其一為引用成功,該ID全局引用計數(shù)器已加1,其二為引用失敗,該ID全局范圍內(nèi)不存在;e)再由客戶端通過判斷引用操作的結(jié)果,如果引用成功,則對該數(shù)據(jù)塊的操作完成;如果引用失敗,就向服務(wù)器端發(fā)送該數(shù)據(jù)塊,然后再重復步驟a-e,直到所有數(shù)據(jù)塊操作完成。優(yōu)選的是,實現(xiàn)基于無中心分布系統(tǒng)的全局重復數(shù)據(jù)刪除系統(tǒng)的方法中,所述服務(wù)端多副本冗余模塊是基于RAIN結(jié)構(gòu)下的寫操作,所述寫操作方法包括以下步驟a)由服務(wù)器K端接收到一個對數(shù)據(jù)塊ID的寫操作請求,表示為Write (ID);服務(wù)器K通過路由方法,f (ID) — N,算出數(shù)據(jù)塊ID應(yīng)由服務(wù)器N負責,并由此算出該ID的冗余組成員,假定冗余度為R=3,那么,三臺服務(wù)器(N,N+l,N+2)成為一個冗余組被選定;b)由服務(wù)器K同時轉(zhuǎn)發(fā)寫入請求Ref (ID)到冗余組(N,N+l,N+2)每臺服務(wù)器上;
·
c)由服務(wù)器K等待從冗余組(N,N+l,N+2)返回的操作結(jié)果;d)若服務(wù)器K接收到任一臺服務(wù)器的結(jié)果為“失敗”,立即把操作結(jié)果“失敗”返回給客戶端;e)若服務(wù)器K接收到R=3個成功操作結(jié)果,把“操作成功”返回給客戶端;f)數(shù)據(jù)寫入完成。優(yōu)選的是,實現(xiàn)基于無中心分布系統(tǒng)的全局重復數(shù)據(jù)刪除系統(tǒng)的方法中,所述服務(wù)器端的全局冗余刪除是通過對冗余組模塊內(nèi)成員進行“加引用”操作;所述“加引用”方法包括以下步驟a)通過服務(wù)器K端接收到一個對數(shù)據(jù)塊ID的引用請求,表示為=Ref(ID);b)由服務(wù)器K通過路由方法,f(ID) — N,算出數(shù)據(jù)塊ID應(yīng)由服務(wù)器N負責,并由此算出該ID的冗余組成員,假定冗余度(Replication)為R=3,那么,三臺服務(wù)器(N,N+l, N+2)成為一個冗余組被選定;c)由服務(wù)器K同時轉(zhuǎn)發(fā)引用請求Ref (ID)到冗余組(N,N+l,N+2)每臺服務(wù)器上;d)由服務(wù)器K等待從冗余組(N,N+l, N+2)返回的操作結(jié)果;e)若服務(wù)器K接收到任一臺服務(wù)器的結(jié)果為“不存在”,則立即將該結(jié)果返回給客戶端;f)若服務(wù)器K接收到R=3個成功操作結(jié)果,則將“操作成功”返回給客戶端,否則,只要有其一失敗,把失敗結(jié)果返回給客戶端,讓其重試;g)全局重復數(shù)據(jù)刪除過程完成。優(yōu)選的是,實現(xiàn)基于無中心分布系統(tǒng)的全局重復數(shù)據(jù)刪除系統(tǒng)的方法中的減引用方法包括以下步驟a)由客戶端發(fā)起一個對數(shù)據(jù)塊ID減引用的請求,表示為Dec(ID);b)由服務(wù)器K通過路由算法,f(ID) — N,找到負責存儲步驟a中ID的冗余組(N,N+l, N+2),并假定冗余度R=3 ;c)服務(wù)器K分別發(fā)送對ID的減引用操作到服務(wù)器(N,N+l, N+2)上;d)由服務(wù)器K等待從服務(wù)器(N,N+l, N+2)的操作結(jié)果;e)服務(wù)器(N,N+l,N+2)中的任一者,接收到請求,立地在本機進行減引用操作,并把操作結(jié)果返回給服務(wù)器K ;
f)服務(wù)器K接收到任一回復“已成功”,立即回復客戶端“減引用成功”;g)服務(wù)器K接收到全部回復(R=3)皆為失敗,回復客戶端“減引用失敗”;h)減引用操作完成。優(yōu)選的是,實現(xiàn)基于無中心分布系統(tǒng)的全局重復數(shù)據(jù)刪除系統(tǒng)的方法中的讀操作方法包括以下步驟a)由客戶端發(fā)起對一個數(shù)據(jù)塊的讀操作,表示為Read(ID);b)由服務(wù)器K接收到請求,運用路由算法f(ID) — N找出負責存儲該數(shù)據(jù)塊的冗余組(N,N+l,N+2);c)服務(wù)器K采用輪流的方式,選擇冗余組內(nèi)任一服務(wù)器,向其轉(zhuǎn)發(fā)Read(ID)請求; d)由服務(wù)器K等待操作結(jié)果;e)若服務(wù)器K得到成功回復,立即返回給客戶端,操作完成;f )若服務(wù)器K得到失敗回復,或者等待超時,立即向冗余組中的下一個成員轉(zhuǎn)發(fā)讀取請求;g)返回步驟d)繼續(xù)等待操作結(jié)果,直到有成功結(jié)果或者全部嘗試失??;h)服務(wù)器K回復操作結(jié)果給客戶端。本發(fā)明具有以下優(yōu)點I、本發(fā)明提供的基于無中心云存儲系統(tǒng)的全局重復數(shù)據(jù)刪除方法,并實現(xiàn)了 CAP理論中的一致性(Consistency)與可用性(Availability)。2、利用全內(nèi)存索引與冗余組,最大化了系統(tǒng)的吞吐量與重復數(shù)據(jù)刪除性能。3、通過在分布式環(huán)境下,為了保證一致性的減引用操作方法,實現(xiàn)了經(jīng)過全局重復數(shù)據(jù)刪除之后,常規(guī)刪除數(shù)據(jù)的功能。說明書附I為本發(fā)明的系統(tǒng)原理框圖;圖2為本發(fā)明中客戶端重復數(shù)據(jù)刪除模塊的工作原理圖;圖3為本發(fā)明中服務(wù)端多副本冗余模塊的工作原理圖;圖4為本發(fā)明中服務(wù)端全局重復數(shù)據(jù)刪除模塊的工作原理圖;圖5為本發(fā)明中減引用操作的工作原理圖;圖6為本發(fā)明中讀操作的工作原理圖。附圖
標記說明客戶端重復數(shù)據(jù)刪除模塊1,服務(wù)端全局重復數(shù)據(jù)刪除模塊2,服務(wù)端多副本冗余模塊3,引用操作模塊4,讀寫操作模塊5 ;
具體實施例方式參見圖I所示,本發(fā)明提供的一種基于無中心分布系統(tǒng)的全局重復數(shù)據(jù)刪除系統(tǒng)包括客戶端重復數(shù)據(jù)刪除模塊1,與客戶端重復數(shù)據(jù)刪除模塊I實現(xiàn)數(shù)據(jù)相互傳輸?shù)姆?wù)端全局重復數(shù)據(jù)刪除模塊2,與服務(wù)端全局重復數(shù)據(jù)刪除模塊2實現(xiàn)數(shù)據(jù)相互傳遞的服務(wù)端多副本冗余模塊3以及引用操作模塊4,以及由客戶端發(fā)起對一個數(shù)據(jù)塊進行讀寫操作的讀寫操作模塊5。其中引用操作模塊4由加引用操作模塊和減引用操作模塊組成。加引用操作模塊由路由模塊、全內(nèi)存索引模塊和冗余組模塊組成;路由模塊、全內(nèi)存索引模塊以及冗余組模塊相互之間協(xié)同工作;路由模塊的路由過程是首先通過給定的一個數(shù)據(jù)塊的ID,然后把ID映射到一個存儲服務(wù)器上;所述全內(nèi)存索引模塊主要是用以提高數(shù)據(jù)刪除的速度;所述冗余組模塊是互為復制品的一組服務(wù)器,用以提高數(shù)據(jù)安全性。該系統(tǒng)可以對客戶端重復數(shù)據(jù)刪除,可以對服務(wù)端全局重復數(shù)據(jù)刪除,能實現(xiàn)獨立節(jié)點冗余陣列即RAIN (Redundant Array of Independent Nodes),也能實現(xiàn)大吞嚇量,隨著服務(wù)器數(shù)量的增加,處理性能和容量同步增加,還具有高可用性(Availability)和強一致性(Consistency)的特點。其中全局重復數(shù)據(jù)刪除是指分布式云存儲系統(tǒng),在進行重復數(shù)據(jù)刪除的過程,被當成一個全體,對任何一個數(shù)據(jù)塊的查詢,分布式網(wǎng)絡(luò)都會返回全局確定的狀態(tài)“存在”或“不存在”;如果服務(wù)器端沒有再對數(shù)據(jù)進行多副本冗災(zāi)存儲,該數(shù)據(jù)塊存儲方式是全局唯一的;全局數(shù)據(jù)重復刪除,最大化了數(shù)據(jù)去重的能力,無一落下。無中心分布式系統(tǒng)是指參與計算或存儲的服務(wù)器(節(jié)點)是對等的,它們之間并沒有全局唯一的統(tǒng)領(lǐng)(Master),所有 節(jié)點是自治但又相互協(xié)調(diào)的,這就避免了統(tǒng)領(lǐng)帶來的瓶頸。典型的有BT網(wǎng)絡(luò),或電驢網(wǎng)絡(luò)。該無中心分布式網(wǎng)絡(luò)又被應(yīng)用于持久云儲存系統(tǒng)。分布式系統(tǒng)的CAP定理指出,一個分布式存儲系統(tǒng)不可能同時滿足一致性(Consistency)、可用性(Availability)和分區(qū)容錯性(Partition-Tolerance)0所以,本發(fā)明的提供的方案中選擇了可用性和一致性。參見圖2所示,該圖公開了本發(fā)明中客戶端重復數(shù)據(jù)刪除模塊的工作過程,現(xiàn)結(jié)合該附圖具體說明如下步驟1,對輸入的文件采用變長數(shù)據(jù)分塊算法對目標文件進行切塊,比如使用Rabin Fingerpr int 算法;步驟2,對已切塊的數(shù)據(jù)進行強簽名運算,比如采用SHA-I算法,得到一個摘要,這個摘要就成為該數(shù)據(jù)塊的全局唯一標識(ID);步驟3,客戶端向服務(wù)器端發(fā)起對此摘要的引用請求,表示為Ref(ID);步驟4,服務(wù)器端通過全局重復數(shù)據(jù)刪除操作,返回兩個確定的操作之一的結(jié)果
(I)引用成功,該I D全局引用計數(shù)器已加1,⑵引用失敗,該ID全局范圍內(nèi)不存在;步驟5,客戶端通過判斷引用操作的結(jié)果,如果引用成功,對該數(shù)據(jù)塊的操作完成。如果引用失敗,就向服務(wù)器端發(fā)送該數(shù)據(jù)塊,然后再重復a-e的操作,直到所有數(shù)據(jù)塊操作完成O參見圖3所示,該圖公開了本發(fā)明中整個系統(tǒng)寫入數(shù)據(jù)塊的過程,假設(shè)服務(wù)端多副本冗余度為R=3,服務(wù)端(N,N+l,N+2)通過路由算法,被選定為一個冗余組,其中實線代表請求,虛線代表回復。該服務(wù)端多副本冗余模塊(RAIN結(jié)構(gòu)下的寫操作)的具體方法如下步驟I,服務(wù)器K端接收到一個對數(shù)據(jù)塊ID的寫操作請求,表示為Write (ID);步驟2,服務(wù)器K通過路由方法,f (ID) — N,算出數(shù)據(jù)塊ID應(yīng)由服務(wù)器N負責,并由此算出該ID的冗余組成員,假定冗余度(Replication)為R=3,那么,三臺服務(wù)器(N,N+l,N+2)成為一個冗余組被選定;步驟3,服務(wù)器K同時轉(zhuǎn)發(fā)寫入請求Ref(ID)到冗余組(N,N+l,N+2)每臺服務(wù)器上步驟4,服務(wù)器K等待從冗余組(N,N+l, N+2)返回的操作結(jié)果
步驟5,服務(wù)器K接收到任一臺服務(wù)器的結(jié)果為“失敗”,立即把操作結(jié)果“失敗”返回給客戶端步驟6,服務(wù)器K接收到R=3個成功操作結(jié)果,把“操作成功”返回給客戶端步驟7,數(shù)據(jù)寫入完成。參見圖4所示,該圖為服務(wù)端全局重復數(shù)據(jù)刪除模塊中的加引用操作原理,該服務(wù)端全局重復數(shù)據(jù)刪除模塊由路由模塊、全內(nèi)存索引和冗余組協(xié)同工作。其中,路由模塊通過給定的一個數(shù)據(jù)塊的ID,然后把ID映射到一個存儲服務(wù)器上的過程稱之為路由過程。即函數(shù)f (ID) — N(N代表某一節(jié)點)。多種路由方法可供選擇,比如最簡單的數(shù)學模運算,或者一致性哈希(Consistent Hash)。全內(nèi)存索引是為了提高重復數(shù)據(jù)刪除的速度,本發(fā)明采用全內(nèi)存索引,避免任何I/O操作。內(nèi)存中的索引項非常小,本發(fā)明使用(ID,引用值)做為索引項,每條索引只占用22字節(jié),在內(nèi)存價格不斷下載跌,容量越來越大的今天,使得全內(nèi)存索引成為可能,不再昂貴。冗余組(Replica Group)是為提高數(shù)據(jù)安全性,互為復制品的 一組服務(wù)器,該服務(wù)器端的全局其余重復數(shù)據(jù)刪除過程,是通過對冗余組內(nèi)成員進行“加引用”操作過程,“加引用”過程與“寫操作”過程一致。具體實現(xiàn)方式如下步驟I,服務(wù)器K端接收到一個對數(shù)據(jù)塊ID的引用請求,表示為=Ref(ID);步驟2,服務(wù)器K通過路由方法,f (ID) — N,算出數(shù)據(jù)塊ID應(yīng)由服務(wù)器N負責,并由此算出該ID的冗余組成員,假定冗余度(Replication)為R=3,那么,三臺服務(wù)器(N,N+l,N+2)成為一個冗余組被選定。步驟3,服務(wù)器K同時轉(zhuǎn)發(fā)引用請求Ref(ID)到冗余組(N,N+l,N+2)每臺服務(wù)器上;步驟4,服務(wù)器K等待從冗余組(N,N+l, N+2)返回的操作結(jié)果;步驟5,服務(wù)器K接收到任一臺服務(wù)器的結(jié)果為“不存在”,立即把操作結(jié)果“不存在”返回給客戶端;步驟6,服務(wù)器K接收到R=3個成功操作結(jié)果,把“操作成功”返回給客戶端,否則,只要有其一失敗,把失敗結(jié)果返回給客戶端,讓其重試。步驟7,全局重復數(shù)據(jù)刪除過程完成。另外,當分別向冗余組節(jié)點做引用,如果有任何失敗,客戶端應(yīng)該隨后進行重試操作,比如嘗試3次。操作過程中的失敗,可能會導致某些服務(wù)器上的引用已經(jīng)增加,本發(fā)明中不做回滾操作。客戶端通過服務(wù)器返回的“加引用”操作結(jié)果做判斷,如果是成功,客戶端則不用發(fā)送本數(shù)據(jù)塊,如果是失敗(不存在),則需要發(fā)送本數(shù)據(jù)塊。不發(fā)送重復的數(shù)據(jù)塊,就完成了 “重復數(shù)據(jù)刪除”操作。參見圖5所示,該圖為刪除已存儲數(shù)據(jù)的功能中減引用操作;減引用操作與加引用、數(shù)據(jù)寫入過程,都需要保證一致性。但減引用過程有點不同,在減引用操作過程中可能出揚現(xiàn)意外情況,導致一個數(shù)據(jù)塊的引用計數(shù)在冗余組內(nèi)不一致,有的被減掉,有的沒有,對于這種情況,本發(fā)明的處理方法是不做減引用重試操作,任一節(jié)點返回減引用成功,減引用操作即完成。由于無中心分布式系統(tǒng)中,分布式鎖的控制是項難題,本發(fā)明通過直接回避,轉(zhuǎn)而用容忍數(shù)據(jù)可能未被刪除的方案,來輕松解決數(shù)據(jù)的減引用操作。減引用”的操作過程具體如下步驟1,客戶端發(fā)起一個對數(shù)據(jù)塊ID減引用的請求,表示為Dec(ID);
步驟2,服務(wù)器K通過路由算法,f(ID) — N,找到負責存儲這個ID的冗余組(N,N+l,N+2),假定冗余度 R=3 ;步驟3,服務(wù)器K分別發(fā)送對I D的減引用操作到服務(wù)器(N,N+l, N+2)上;步驟4,服務(wù)器K等待從服務(wù)器(N,N+l, N+2)的操作結(jié)果;步驟5,服務(wù)器(N,N+l, N+2)中的任一者,接收到請求,立地在本機進行減引用操作,并把操作結(jié)果返回給服務(wù)器K ;步驟6,服務(wù)器K接收到任一回復“已成功”,立即回復客戶端“減引用成功”步驟7,服務(wù)器K接收到全部回復(R=3)皆為失敗,回復客戶端“減引用失敗”
步驟8,減引用操作完成。參見圖6所示,由于本發(fā)明的“寫操作”、“加引用”及“減引用”都是在保證一致性的情況下進行的,所以操作相對比較簡單,本發(fā)明采用工業(yè)級的冗余度(R=3),讀操作高度可靠,即使冗余組內(nèi)的其中兩臺機器無法訪問,本發(fā)明還是可以在最后存活的一臺機器上讀回數(shù)據(jù)。具體讀操作的過程如下步驟1,客戶端發(fā)起對一個數(shù)據(jù)塊的讀操作,表示為Read(ID);步驟2,服務(wù)器K接收到請求,運用路由算法f (ID) — N,找出負責存儲該數(shù)據(jù)塊的冗余組(N,N+l,N+2);步驟3,服務(wù)器K采用輪流的方式,選擇冗余組內(nèi)任一服務(wù)器,向其轉(zhuǎn)發(fā)Read(ID)請求;步驟4,服務(wù)器K等待操作結(jié)果;步驟5,服務(wù)器K得到成功回復,立即返回給客戶端,操作完成;步驟6,服務(wù)器K得到失敗回復,或者等待超時,立即向冗余組中的下一個成員轉(zhuǎn)發(fā)讀取請求;步驟7,返回步驟4),直到有成功結(jié)果或者全部嘗試失??;步驟8,服務(wù)器K回復操作結(jié)果給客戶端。本發(fā)明通過基于無中心云存儲系統(tǒng)的全局重復數(shù)據(jù)刪除方法,實現(xiàn)了 CAP理論中的一致性(Consistency)與可用性(Availability)。利用全內(nèi)存索引與冗余組,最大化了系統(tǒng)的吞吐量與重復數(shù)據(jù)刪除性能。同時在分布式環(huán)境下,為了保證一致性的減引用操作方法,實現(xiàn)經(jīng)過全局重復數(shù)據(jù)刪除之后,常規(guī)刪除數(shù)據(jù)的功能,具體舉例如下如用戶備份一個文件,生成了 VI,V2, V3三個版本,三個版本的數(shù)據(jù)已經(jīng)過全局重復數(shù)據(jù)刪除,但用戶某一天,想刪除掉其中一個版本V2??梢岳斫獾氖?,以上實施方式僅僅是為了說明本發(fā)明的原理而采用的示例性實施方式,然而本發(fā)明并不局限于此。對于本領(lǐng)域內(nèi)的普通技術(shù)人員而言,在不脫離本發(fā)明的精神和實質(zhì)的情況下,可以做出各種變型和改進,這些變型和改進也視為本發(fā)明的保護范圍。
權(quán)利要求
1.一種基于無中心分布系統(tǒng)的全局重復數(shù)據(jù)刪除系統(tǒng),其特征在于所述系統(tǒng)包括 客戶端重復數(shù)據(jù)刪除模塊(1),與客戶端重復數(shù)據(jù)刪除模塊(I)實現(xiàn)數(shù)據(jù)相互傳輸?shù)姆?wù)端全局重復數(shù)據(jù)刪除模塊(2),與服務(wù)端全局重復數(shù)據(jù)刪除模塊(2)實現(xiàn)數(shù)據(jù)相互傳遞的服務(wù)端多副本冗余模塊(3)以及引用操作模塊(4),以及由客戶端發(fā)起對一個數(shù)據(jù)塊進行讀寫操作的讀寫操作模塊(5 )。
2.根據(jù)權(quán)利要求I所述的一種基于無中心分布系統(tǒng)的全局重復數(shù)據(jù)刪除系統(tǒng),其特征在于所述引用操作模塊(4)由加引用操作模塊和減引用操作模塊組成。
3.根據(jù)權(quán)利要求2所述的一種基于無中心分布系統(tǒng)的全局重復數(shù)據(jù)刪除系統(tǒng),其特征在于所述加引用操作模塊由路由模塊、全內(nèi)存索引模塊和冗余組模塊組成;所述路由模塊、全內(nèi)存索引模塊以及冗余組模塊相互之間協(xié)同工作;所述路由模塊的路由過程是首先通過給定的一個數(shù)據(jù)塊的ID,然后把ID映射到一個存儲服務(wù)器上;所述全內(nèi)存索引模塊主要是用以提高重復數(shù)據(jù)刪除的速度;所述冗余組模塊是互為復制品的一組服務(wù)器,用以提高數(shù)據(jù)安全性。
4.一種實現(xiàn)權(quán)利要求I中基于無中心分布系統(tǒng)的全局重復數(shù)據(jù)刪除系統(tǒng)的方法,其特征在于所述客戶端重復數(shù)據(jù)刪除方法包括以下步驟 a)采用基于內(nèi)容的變長數(shù)據(jù)分塊算法對目標文件進行切塊; b)對已切塊的數(shù)據(jù)進行強簽名運算,得到摘要ID; c)由客戶端向服務(wù)器端發(fā)起對此摘要的引用請求,表示為Ref(I D); d)由服務(wù)器端通過全局重復數(shù)據(jù)刪除操作,返回兩個確定的操作之一的結(jié)果,其一為引用成功,該ID全局引用計數(shù)器已加1,其二為引用失敗,該I D全局范圍內(nèi)不存在; e)再由客戶端通過判斷引用操作的結(jié)果,如果引用成功,則對該數(shù)據(jù)塊的操作完成;如果引用失敗,就向服務(wù)器端發(fā)送該數(shù)據(jù)塊,然后再重復步驟a-e,直到所有數(shù)據(jù)塊操作完成。
5.一種實現(xiàn)權(quán)利要求I中基于無中心分布系統(tǒng)的全局重復數(shù)據(jù)刪除系統(tǒng)的方法,其特征在于所述服務(wù)端多副本冗余模塊是基于RAIN結(jié)構(gòu)下的寫操作,所述寫操作方法包括以下步驟 a)由服務(wù)器K端接收到一個對數(shù)據(jù)塊ID的寫操作請求,表示為Write(ID);服務(wù)器K通過路由方法,f (ID) — N,算出數(shù)據(jù)塊ID應(yīng)由服務(wù)器N負責,并由此算出該ID的冗余組成員,假定冗余度為R=3,那么,三臺服務(wù)器(N,N+l,N+2)成為一個冗余組被選定; b)由服務(wù)器K同時轉(zhuǎn)發(fā)寫入請求Write(ID)到冗余組(N,N+l,N+2)每臺服務(wù)器上; c)由服務(wù)器K等待從冗余組(N,N+l,N+2)返回的操作結(jié)果; d)若服務(wù)器K接收到任一臺服務(wù)器的結(jié)果為“失敗”,立即把操作結(jié)果“失敗”返回給客戶端; e)若服務(wù)器K接收到R=3個成功操作結(jié)果,把“操作成功”返回給客戶端; f)數(shù)據(jù)寫入完成。
6.一種實現(xiàn)權(quán)利要求3中基于無中心分布系統(tǒng)的全局重復數(shù)據(jù)刪除系統(tǒng)的方法,其特征在于所述服務(wù)器端的全局冗余刪除是通過對冗余組模塊內(nèi)成員進行“加引用”操作;所述“加引用”方法包括以下步驟 a)通過服務(wù)器K端接收到一個對數(shù)據(jù)塊ID的引用請求,表示為=Ref(ID); b)由服務(wù)器K通過路由方法,f(ID) — N,算出數(shù)據(jù)塊ID應(yīng)由服務(wù)器N負責,并由此算出該ID的冗余組成員,假定冗余度(Replication)為R=3,那么,三臺服務(wù)器(N,N+l, N+2)成為一個冗余組被選定;c)由服務(wù)器K同時轉(zhuǎn)發(fā)引用請求Ref(ID)到冗余組(N,N+l,N+2)每臺服務(wù)器上; d)由服務(wù)器K等待從冗余組(N,N+l,N+2)返回的操作結(jié)果;e)若服務(wù)器K接收到任一臺服務(wù)器的結(jié)果為“不存在”,則立即將該結(jié)果返回給客戶端; f )若服務(wù)器K接收到R=3個成功操作結(jié)果,則將“操作成功”返回給客戶端,否則,只要有其一失敗,把失敗結(jié)果返回給客戶端,讓其重試;g)全局重復數(shù)據(jù)刪除過程完成。
7.一種實現(xiàn)權(quán)利要求2中基于無中心分布系統(tǒng)的全局重復數(shù)據(jù)刪除系統(tǒng)的方法,其特征在于所述減引用方法包括以下步驟 a)由客戶端發(fā)起一個對數(shù)據(jù)塊ID減引用的請求,表示為Dec(ID); b)由服務(wù)器K通過路由算法,f(ID)— N,找到負責存儲步驟a中ID的冗余組(N,N+l, N+2),并假定冗余度R=3 ; c)服務(wù)器K分別發(fā)送對ID的減引用操作到服務(wù)器(N,N+l,N+2)上; d)服務(wù)器K等待從服務(wù)器(N,N+l,N+2)的操作結(jié)果; e)服務(wù)器(N,N+l,N+2)中的任一者,接收到請求,立即在本機進行減引用操作,并把操作結(jié)果返回給服務(wù)器K ; f)服務(wù)器K接收到任一回復“已成功”,立即回復客戶端“減引用成功”; g)服務(wù)器K接收到全部回復(R=3)皆為失敗,回復客戶端“減引用失敗”; h)減引用操作完成。
8.一種實現(xiàn)權(quán)利要求2中基于無中心分布系統(tǒng)的全局重復數(shù)據(jù)刪除系統(tǒng)的方法,其特征在于所述讀操作方法包括以下步驟 a)客戶端發(fā)起對一個數(shù)據(jù)塊的讀操作,表示為Read(ID); b)服務(wù)器K接收到請求,運用路由算法f(ID) — N找出負責存儲該數(shù)據(jù)塊的冗余組(N,N+l,N+2);c)服務(wù)器K采用輪流的方式,選擇冗余組內(nèi)任一服務(wù)器,向其轉(zhuǎn)發(fā)Read(ID)請求; d)服務(wù)器K等待操作結(jié)果; e)若服務(wù)器K得到成功回復,立即返回給客戶端,操作完成; f )若服務(wù)器K得到失敗回復,或者等待超時,立即向冗余組中的下一個成員轉(zhuǎn)發(fā)讀取請求; g)返回步驟d)繼續(xù)等待操作結(jié)果,直到有成功結(jié)果或者全部嘗試失??; h)服務(wù)器K回復操作結(jié)果給客戶端。
全文摘要
本發(fā)明提供一種基于無中心分布系統(tǒng)的全局重復數(shù)據(jù)刪除系統(tǒng)及方法,其中系統(tǒng)包括客戶端重復數(shù)據(jù)刪除模塊,服務(wù)端全局重復數(shù)據(jù)刪除模塊;與服務(wù)端全局重復數(shù)據(jù)刪除模塊實現(xiàn)數(shù)據(jù)相互傳遞的服務(wù)端多副本冗余模塊以及引用操作模塊,以及由客戶端發(fā)起對一個數(shù)據(jù)塊進行讀寫操作的讀寫操作模塊。引用操作模塊由加引用操作模塊和減引用操作模塊組成。解決了現(xiàn)有技術(shù)在重復數(shù)據(jù)刪除過程中會產(chǎn)生誤判,降低數(shù)據(jù)的重復刪除效果,導致較多重復數(shù)據(jù)被漏刪的技術(shù)問題。本發(fā)明利用全內(nèi)存索引與冗余組,最大化了系統(tǒng)的吞吐量與重復數(shù)據(jù)刪除性能。
文檔編號G06F17/30GK102799659SQ20121023260
公開日2012年11月28日 申請日期2012年7月5日 優(yōu)先權(quán)日2012年7月5日
發(fā)明者嚴榮程, 魏孫鼎 申請人:廣州鼎鼎信息科技有限公司