欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)存儲(chǔ)方法及裝置與流程

文檔序號(hào):11133487閱讀:282來源:國知局
數(shù)據(jù)存儲(chǔ)方法及裝置與制造工藝

本發(fā)明實(shí)施例涉及通信技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)存儲(chǔ)方法及裝置。



背景技術(shù):

Docker是一個(gè)開源的應(yīng)用容器引擎,在物理主機(jī)上安裝Docker后,可在Docker的基礎(chǔ)上承載多個(gè)容器,多個(gè)容器之間相互隔離,多個(gè)容器共享物理主機(jī)的操作系統(tǒng),各容器可放置并執(zhí)行不同的應(yīng)用程序。

現(xiàn)有技術(shù)中,Docker引擎承載的每個(gè)Docker容器可能有數(shù)據(jù)產(chǎn)生,同時(shí),Docker容器需要將其產(chǎn)生的數(shù)據(jù)存儲(chǔ)到存儲(chǔ)器,多個(gè)Docker容器可能會(huì)將各自的數(shù)據(jù)存儲(chǔ)到同一個(gè)存儲(chǔ)器中,此時(shí),存儲(chǔ)器一次只能允許一個(gè)Docker容器寫數(shù)據(jù),該Docker容器往存儲(chǔ)器中寫數(shù)據(jù)的時(shí)候,其他Docker容器等能排隊(duì)等待。

可見,當(dāng)需要往存儲(chǔ)器中同時(shí)寫數(shù)據(jù)的Docker容器較多時(shí),勢(shì)必造成Docker容器排隊(duì)等待時(shí)間較長,導(dǎo)致數(shù)據(jù)存儲(chǔ)效率低。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明實(shí)施例提供一種數(shù)據(jù)存儲(chǔ)方法及裝置,以提高數(shù)據(jù)存儲(chǔ)效率。

本發(fā)明實(shí)施例的一個(gè)方面是提供一種數(shù)據(jù)存儲(chǔ)方法,包括:

接收第一Docker容器發(fā)送的第一待存儲(chǔ)數(shù)據(jù);

對(duì)所述第一待存儲(chǔ)數(shù)據(jù)進(jìn)行分塊處理,獲得多個(gè)第一目標(biāo)數(shù)據(jù)塊;

給每個(gè)第一目標(biāo)數(shù)據(jù)塊分配一個(gè)令牌,并將每個(gè)第一目標(biāo)數(shù)據(jù)塊對(duì)應(yīng)的令牌發(fā)送給所述第一Docker容器,以使所述第一Docker容器根據(jù)所述令牌存儲(chǔ)所述多個(gè)第一目標(biāo)數(shù)據(jù)塊;

接收第二Docker容器發(fā)送的第二待存儲(chǔ)數(shù)據(jù);

對(duì)所述第二待存儲(chǔ)數(shù)據(jù)進(jìn)行分塊處理,獲得多個(gè)第二目標(biāo)數(shù)據(jù)塊;

確定所述多個(gè)第二目標(biāo)數(shù)據(jù)塊與所述多個(gè)第一目標(biāo)數(shù)據(jù)塊的重復(fù)數(shù)據(jù)塊;

給所述多個(gè)第二目標(biāo)數(shù)據(jù)塊中除所述重復(fù)數(shù)據(jù)塊之外的每個(gè)第二目標(biāo)數(shù)據(jù)塊分配一個(gè)令牌,并將分配有令牌的第二目標(biāo)數(shù)據(jù)塊對(duì)應(yīng)的令牌發(fā)送給所述第二Docker容器,以使所述第二Docker容器存儲(chǔ)所述分配有令牌的第二目標(biāo)數(shù)據(jù)塊。

本發(fā)明實(shí)施例的另一個(gè)方面是提供一種數(shù)據(jù)存儲(chǔ)裝置,包括:

接收模塊,用于接收第一Docker容器發(fā)送的第一待存儲(chǔ)數(shù)據(jù);接收第二Docker容器發(fā)送的第二待存儲(chǔ)數(shù)據(jù);

處理模塊,用于對(duì)所述第一待存儲(chǔ)數(shù)據(jù)進(jìn)行分塊處理,獲得多個(gè)第一目標(biāo)數(shù)據(jù)塊;給每個(gè)第一目標(biāo)數(shù)據(jù)塊分配一個(gè)令牌;對(duì)所述第二待存儲(chǔ)數(shù)據(jù)進(jìn)行分塊處理,獲得多個(gè)第二目標(biāo)數(shù)據(jù)塊;確定所述多個(gè)第二目標(biāo)數(shù)據(jù)塊與所述多個(gè)第一目標(biāo)數(shù)據(jù)塊的重復(fù)數(shù)據(jù)塊;給所述多個(gè)第二目標(biāo)數(shù)據(jù)塊中除所述重復(fù)數(shù)據(jù)塊之外的每個(gè)第二目標(biāo)數(shù)據(jù)塊分配一個(gè)令牌;

發(fā)送模塊,用于將每個(gè)第一目標(biāo)數(shù)據(jù)塊對(duì)應(yīng)的令牌發(fā)送給所述第一Docker容器,以使所述第一Docker容器根據(jù)所述令牌存儲(chǔ)所述多個(gè)第一目標(biāo)數(shù)據(jù)塊;將分配有令牌的第二目標(biāo)數(shù)據(jù)塊對(duì)應(yīng)的令牌發(fā)送給所述第二Docker容器,以使所述第二Docker容器存儲(chǔ)所述分配有令牌的第二目標(biāo)數(shù)據(jù)塊。

本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法及裝置,當(dāng)各個(gè)Docker容器同時(shí)有待存儲(chǔ)的數(shù)據(jù)時(shí),通過對(duì)各個(gè)Docker容器產(chǎn)生的待存儲(chǔ)數(shù)據(jù)進(jìn)行分塊處理,給每個(gè)分塊后的數(shù)據(jù)分配一個(gè)令牌,該令牌起到標(biāo)識(shí)數(shù)據(jù)的作用,不同的分塊數(shù)據(jù)對(duì)應(yīng)不同的令牌,各個(gè)Docker容器可將分配有令牌的分塊數(shù)據(jù)同時(shí)發(fā)送給存儲(chǔ)器,存儲(chǔ)器根據(jù)不同的令牌,存儲(chǔ)不同的分塊數(shù)據(jù),各個(gè)Docker容器無需排隊(duì)等待存儲(chǔ)器存儲(chǔ)數(shù)據(jù),提高了數(shù)據(jù)存儲(chǔ)效率。

附圖說明

圖1為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法流程圖;

圖2為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法適用的網(wǎng)絡(luò)架構(gòu)圖;

圖3為本發(fā)明另一實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法流程圖;

圖4為本發(fā)明另一實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法流程圖;

圖5為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)裝置的結(jié)構(gòu)圖;

圖6為本發(fā)明另一實(shí)施例提供的數(shù)據(jù)存儲(chǔ)裝置的結(jié)構(gòu)圖。

具體實(shí)施方式

圖1為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法流程圖;圖2為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法適用的網(wǎng)絡(luò)架構(gòu)圖。本發(fā)明實(shí)施例針對(duì)現(xiàn)有技術(shù)中,當(dāng)需要往存儲(chǔ)器中同時(shí)寫數(shù)據(jù)的Docker容器較多時(shí),勢(shì)必造成Docker容器排隊(duì)等待時(shí)間較長,導(dǎo)致數(shù)據(jù)存儲(chǔ)效率低,提供了數(shù)據(jù)存儲(chǔ)方法,該方法具體步驟如下:

步驟S101、接收第一Docker容器發(fā)送的第一待存儲(chǔ)數(shù)據(jù)。

如圖2所示,Docker服務(wù)器11包括Docker容器1、Docker容器2、以及Docker引擎1,Docker服務(wù)器12包括Docker容器3、Docker容器4、以及Docker引擎2。Docker容器1、Docker容器2產(chǎn)生的數(shù)據(jù)可以通過Docker引擎1存儲(chǔ)到主存儲(chǔ)器14或備存儲(chǔ)器15,Docker容器3、Docker容器4產(chǎn)生的數(shù)據(jù)可以通過Docker引擎2存儲(chǔ)到主存儲(chǔ)器14或備存儲(chǔ)器15。

本實(shí)施例的執(zhí)行主體是圖2所示的服務(wù)器13,服務(wù)器13包括目標(biāo)區(qū)塊識(shí)別模塊,當(dāng)Docker容器1、Docker容器2、Docker容器3、Docker容器4產(chǎn)生待存儲(chǔ)的數(shù)據(jù)時(shí),將該待存儲(chǔ)的數(shù)據(jù)發(fā)送給服務(wù)器13。假設(shè)服務(wù)器13接收到了Docker容器1發(fā)送的第一待存儲(chǔ)數(shù)據(jù)。

步驟S102、對(duì)所述第一待存儲(chǔ)數(shù)據(jù)進(jìn)行分塊處理,獲得多個(gè)第一目標(biāo)數(shù)據(jù)塊。

服務(wù)器13中的目標(biāo)區(qū)塊識(shí)別模塊對(duì)該第一待存儲(chǔ)數(shù)據(jù)進(jìn)行分塊處理,具體可以按照預(yù)先設(shè)定的分塊大小對(duì)該第一待存儲(chǔ)數(shù)據(jù)進(jìn)行分塊處理,得到多個(gè)小的分塊,每個(gè)小的分塊記為第一目標(biāo)數(shù)據(jù)塊。

步驟S103、給每個(gè)第一目標(biāo)數(shù)據(jù)塊分配一個(gè)令牌,并將每個(gè)第一目標(biāo)數(shù)據(jù)塊對(duì)應(yīng)的令牌發(fā)送給所述第一Docker容器,以使所述第一Docker容器根據(jù)所述令牌存儲(chǔ)所述多個(gè)第一目標(biāo)數(shù)據(jù)塊。

服務(wù)器13中的目標(biāo)區(qū)塊識(shí)別模塊給每個(gè)第一目標(biāo)數(shù)據(jù)塊分配一個(gè)令牌,服務(wù)器13將每個(gè)第一目標(biāo)數(shù)據(jù)塊對(duì)應(yīng)的令牌發(fā)送給Docker容器1,Docker容器1可將令牌作為每個(gè)第一目標(biāo)數(shù)據(jù)塊的標(biāo)識(shí),并將每個(gè)第一目標(biāo)數(shù)據(jù)塊,以及每個(gè)第一目標(biāo)數(shù)據(jù)塊對(duì)應(yīng)的令牌發(fā)送給主存儲(chǔ)器14,主存儲(chǔ)器14對(duì)每個(gè)令牌標(biāo)識(shí)的第一目標(biāo)數(shù)據(jù)塊進(jìn)行存儲(chǔ)。

步驟S104、接收第二Docker容器發(fā)送的第二待存儲(chǔ)數(shù)據(jù)。

另外,當(dāng)Docker容器2、Docker容器3或Docker容器4產(chǎn)生待發(fā)送的數(shù)據(jù)時(shí),服務(wù)器13還可以接收Docker容器2、Docker容器3或Docker容器4發(fā)送的第二待存儲(chǔ)數(shù)據(jù),服務(wù)器13可以同時(shí)接收Docker容器1、Docker容器2、Docker容器3或Docker容器4發(fā)送的數(shù)據(jù),也可以分時(shí)接收。

假設(shè)服務(wù)器13在接收到Docker容器1發(fā)送的數(shù)據(jù)之后,接收到了Docker容器2發(fā)送的第二待存儲(chǔ)數(shù)據(jù)。

步驟S105、對(duì)所述第二待存儲(chǔ)數(shù)據(jù)進(jìn)行分塊處理,獲得多個(gè)第二目標(biāo)數(shù)據(jù)塊。

服務(wù)器13中的目標(biāo)區(qū)塊識(shí)別模塊對(duì)該第二待存儲(chǔ)數(shù)據(jù)進(jìn)行分塊處理,具體可以按照預(yù)先設(shè)定的分塊大小對(duì)該第二待存儲(chǔ)數(shù)據(jù)進(jìn)行分塊處理,得到多個(gè)小的分塊,每個(gè)小的分塊記為第二目標(biāo)數(shù)據(jù)塊。

步驟S106、確定所述多個(gè)第二目標(biāo)數(shù)據(jù)塊與所述多個(gè)第一目標(biāo)數(shù)據(jù)塊的重復(fù)數(shù)據(jù)塊。

由于Docker容器1和Docker容器2是同一個(gè)Docker服務(wù)器的Docker容器,Docker容器1和Docker容器2產(chǎn)生的數(shù)據(jù)可能相同,導(dǎo)致所述多個(gè)第二目標(biāo)數(shù)據(jù)塊與所述多個(gè)第一目標(biāo)數(shù)據(jù)塊有重復(fù)數(shù)據(jù)塊,目標(biāo)區(qū)塊識(shí)別模塊可以比對(duì)出所述多個(gè)第二目標(biāo)數(shù)據(jù)塊與所述多個(gè)第一目標(biāo)數(shù)據(jù)塊的重復(fù)數(shù)據(jù)塊。

另外,目標(biāo)區(qū)塊識(shí)別模塊還可以將重復(fù)數(shù)據(jù)塊放入排隊(duì)隊(duì)列,Docker容器1中與排隊(duì)隊(duì)列重復(fù)的數(shù)據(jù)塊存儲(chǔ)到主存儲(chǔ)器14之后,Docker容器1中的數(shù)據(jù)的令牌被釋放,釋放的令牌可以分配給排隊(duì)隊(duì)列中相應(yīng)的數(shù)據(jù)塊。

步驟S107、給所述多個(gè)第二目標(biāo)數(shù)據(jù)塊中除所述重復(fù)數(shù)據(jù)塊之外的每個(gè)第二目標(biāo)數(shù)據(jù)塊分配一個(gè)令牌,并將分配有令牌的第二目標(biāo)數(shù)據(jù)塊對(duì)應(yīng)的令牌發(fā)送給所述第二Docker容器,以使所述第二Docker容器存儲(chǔ)所述分配有令牌的第二目標(biāo)數(shù)據(jù)塊。

目標(biāo)區(qū)塊識(shí)別模塊給所述多個(gè)第二目標(biāo)數(shù)據(jù)塊中除所述重復(fù)數(shù)據(jù)塊之外的每個(gè)第二目標(biāo)數(shù)據(jù)塊分配一個(gè)令牌,并將分配有令牌的第二目標(biāo)數(shù)據(jù)塊對(duì)應(yīng)的令牌發(fā)送給Docker容器2,Docker容器2可將令牌作為第二目標(biāo)數(shù)據(jù)塊的標(biāo)識(shí),將分配有令牌的第二目標(biāo)數(shù)據(jù)塊,以及第二目標(biāo)數(shù)據(jù)塊的令牌發(fā)送給主存儲(chǔ)器14,主存儲(chǔ)器14對(duì)每個(gè)令牌標(biāo)識(shí)的第二目標(biāo)數(shù)據(jù)塊進(jìn)行存儲(chǔ)。

本實(shí)施例中,當(dāng)各個(gè)Docker容器同時(shí)有待存儲(chǔ)的數(shù)據(jù)時(shí),通過對(duì)各個(gè)Docker容器產(chǎn)生的待存儲(chǔ)數(shù)據(jù)進(jìn)行分塊處理,給每個(gè)分塊后的數(shù)據(jù)分配一個(gè)令牌,該令牌起到標(biāo)識(shí)數(shù)據(jù)的作用,不同的分塊數(shù)據(jù)對(duì)應(yīng)不同的令牌,各個(gè)Docker容器可將分配有令牌的分塊數(shù)據(jù)同時(shí)發(fā)送給存儲(chǔ)器,存儲(chǔ)器根據(jù)不同的令牌,存儲(chǔ)不同的分塊數(shù)據(jù),各個(gè)Docker容器無需排隊(duì)等待存儲(chǔ)器存儲(chǔ)數(shù)據(jù),提高了數(shù)據(jù)存儲(chǔ)效率。

圖3為本發(fā)明另一實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法流程圖。在圖1所示實(shí)施例的基礎(chǔ)上,給所述多個(gè)第二目標(biāo)數(shù)據(jù)塊中除所述重復(fù)數(shù)據(jù)塊之外的每個(gè)第二目標(biāo)數(shù)據(jù)塊分配一個(gè)令牌之后,還包括如下方法步驟:

步驟S301、接收存儲(chǔ)器發(fā)送的已用令牌。

當(dāng)主存儲(chǔ)器14存儲(chǔ)了第一目標(biāo)數(shù)據(jù)塊或第二目標(biāo)數(shù)據(jù)塊后,第一目標(biāo)數(shù)據(jù)塊或第二目標(biāo)數(shù)據(jù)塊對(duì)應(yīng)的令牌可以釋放,具體的,主存儲(chǔ)器14將已用令牌發(fā)送給服務(wù)器13,服務(wù)器13將已用令牌轉(zhuǎn)發(fā)給目標(biāo)區(qū)塊識(shí)別模塊。

步驟S302、根據(jù)所述已用令牌對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊,確定所述重復(fù)數(shù)據(jù)塊中是否有與所述目標(biāo)數(shù)據(jù)塊相同的數(shù)據(jù)塊。

目標(biāo)區(qū)塊識(shí)別模塊接收到已用令牌后,確定出已用令牌對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊,例如第一目標(biāo)數(shù)據(jù)塊或第二目標(biāo)數(shù)據(jù)塊,進(jìn)一步確定步驟S106中重復(fù)數(shù)據(jù)塊是否包括有與所述目標(biāo)數(shù)據(jù)塊相同的數(shù)據(jù)塊。

步驟S303、若所述重復(fù)數(shù)據(jù)塊中有與所述目標(biāo)數(shù)據(jù)塊相同的數(shù)據(jù)塊,則將所述已用令牌分配給所述數(shù)據(jù)塊。

若所述重復(fù)數(shù)據(jù)塊中有與所述目標(biāo)數(shù)據(jù)塊相同的數(shù)據(jù)塊,則目標(biāo)區(qū)塊識(shí)別模塊將該已用令牌分配給所述數(shù)據(jù)塊。

步驟S304、將所述已用令牌發(fā)送給所述數(shù)據(jù)塊對(duì)應(yīng)的Docker容器。

由于所述重復(fù)數(shù)據(jù)塊是Docker容器2對(duì)應(yīng)的第二目標(biāo)數(shù)據(jù)塊,目標(biāo)區(qū)塊識(shí)別模塊將已用令牌發(fā)送給Docker容器2,Docker容器2根據(jù)該已用令牌將所述數(shù)據(jù)塊發(fā)送給主存儲(chǔ)器14。

本實(shí)施例中,當(dāng)存儲(chǔ)器存儲(chǔ)數(shù)據(jù)后,將數(shù)據(jù)對(duì)應(yīng)的令牌返回給目標(biāo)區(qū)塊識(shí)別模塊,目標(biāo)區(qū)塊識(shí)別模塊用存儲(chǔ)器返回的令牌標(biāo)記重復(fù)數(shù)據(jù)塊中的數(shù)據(jù),提高了令牌利用率。

圖4為本發(fā)明另一實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法流程圖。在上述任一實(shí)施例的基礎(chǔ)上,如圖4所示,本實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法還包括如下方法步驟:

步驟S401、在預(yù)設(shè)時(shí)間內(nèi)檢測(cè)所述存儲(chǔ)器是否返回所述令牌。

另外,目標(biāo)區(qū)塊識(shí)別模塊還可以記錄發(fā)放出去的令牌是否在預(yù)設(shè)時(shí)間內(nèi)被收回,即發(fā)放出去的令牌是否在預(yù)設(shè)時(shí)間內(nèi)由主存儲(chǔ)器14返回給了目標(biāo)區(qū)塊識(shí)別模塊。

步驟S402、若在預(yù)設(shè)時(shí)間內(nèi)所述存儲(chǔ)器沒有返回所述令牌,則將所述令牌分配給其他Docker容器。

假設(shè)某一令牌,從目標(biāo)區(qū)塊識(shí)別模塊發(fā)放時(shí)刻開始,在預(yù)設(shè)時(shí)間內(nèi),主存儲(chǔ)器14沒有返回給目標(biāo)區(qū)塊識(shí)別模塊,則目標(biāo)區(qū)塊識(shí)別模塊將該令牌分配給其他Docker容器例如Docker容器3。

步驟S403、檢測(cè)所述令牌的進(jìn)程健康狀態(tài)。

為了保證分配給Docker容器3的令牌正常執(zhí)行數(shù)據(jù)存儲(chǔ)過程,目標(biāo)區(qū)塊識(shí)別模塊還可進(jìn)一步檢測(cè)該令牌的進(jìn)程健康狀態(tài)。

步驟S404、若所述進(jìn)程健康狀態(tài)表示所述令牌處于非正常狀態(tài),則給其他Docker容器分配一個(gè)新的令牌。

若所述進(jìn)程健康狀態(tài)表示所述令牌處于非正常狀態(tài),則目標(biāo)區(qū)塊識(shí)別模塊給Docker容器3重新分配一個(gè)令牌。

步驟S405、調(diào)整所述預(yù)設(shè)分塊大小。

進(jìn)一步的,目標(biāo)區(qū)塊識(shí)別模塊還可以調(diào)整預(yù)設(shè)分塊大小,即調(diào)整對(duì)各個(gè)Docker容器發(fā)送的待存儲(chǔ)數(shù)據(jù)的分塊粒度。

本實(shí)施例中,通過檢測(cè)每個(gè)令牌是否在預(yù)設(shè)時(shí)間內(nèi)被收回,可將沒有在預(yù)設(shè)時(shí)間內(nèi)收回的令牌分配給其他Docker容器,并檢測(cè)該令牌的進(jìn)程健康狀態(tài),當(dāng)該進(jìn)程健康狀態(tài)標(biāo)識(shí)分配給其他Docker容器的令牌非正常狀態(tài)時(shí),給其他Docker容器分配一個(gè)新的令牌,保證了數(shù)據(jù)存儲(chǔ)的正常執(zhí)行,同時(shí)還可以調(diào)整預(yù)設(shè)分塊大小,即可根據(jù)丟失的令牌數(shù)量,調(diào)整對(duì)各個(gè)Docker容器發(fā)送的待存儲(chǔ)數(shù)據(jù)的分塊粒度,提高了分塊粒度的靈活性。

圖5為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)裝置的結(jié)構(gòu)圖。本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)裝置可以執(zhí)行數(shù)據(jù)存儲(chǔ)方法實(shí)施例提供的處理流程,如圖5所示,數(shù)據(jù)存儲(chǔ)裝置包括接收模塊51、處理模塊52和發(fā)送模塊53,其中,接收模塊51用于接收第一Docker容器發(fā)送的第一待存儲(chǔ)數(shù)據(jù);接收第二Docker容器發(fā)送的第二待存儲(chǔ)數(shù)據(jù);處理模塊52用于對(duì)所述第一待存儲(chǔ)數(shù)據(jù)進(jìn)行分塊處理,獲得多個(gè)第一目標(biāo)數(shù)據(jù)塊;給每個(gè)第一目標(biāo)數(shù)據(jù)塊分配一個(gè)令牌;對(duì)所述第二待存儲(chǔ)數(shù)據(jù)進(jìn)行分塊處理,獲得多個(gè)第二目標(biāo)數(shù)據(jù)塊;確定所述多個(gè)第二目標(biāo)數(shù)據(jù)塊與所述多個(gè)第一目標(biāo)數(shù)據(jù)塊的重復(fù)數(shù)據(jù)塊;給所述多個(gè)第二目標(biāo)數(shù)據(jù)塊中除所述重復(fù)數(shù)據(jù)塊之外的每個(gè)第二目標(biāo)數(shù)據(jù)塊分配一個(gè)令牌;發(fā)送模塊53用于將每個(gè)第一目標(biāo)數(shù)據(jù)塊對(duì)應(yīng)的令牌發(fā)送給所述第一Docker容器,以使所述第一Docker容器根據(jù)所述令牌存儲(chǔ)所述多個(gè)第一目標(biāo)數(shù)據(jù)塊;將分配有令牌的第二目標(biāo)數(shù)據(jù)塊對(duì)應(yīng)的令牌發(fā)送給所述第二Docker容器,以使所述第二Docker容器存儲(chǔ)所述分配有令牌的第二目標(biāo)數(shù)據(jù)塊。

本實(shí)施例中,當(dāng)各個(gè)Docker容器同時(shí)有待存儲(chǔ)的數(shù)據(jù)時(shí),通過對(duì)各個(gè)Docker容器產(chǎn)生的待存儲(chǔ)數(shù)據(jù)進(jìn)行分塊處理,給每個(gè)分塊后的數(shù)據(jù)分配一個(gè)令牌,該令牌起到標(biāo)識(shí)數(shù)據(jù)的作用,不同的分塊數(shù)據(jù)對(duì)應(yīng)不同的令牌,各個(gè)Docker容器可將分配有令牌的分塊數(shù)據(jù)同時(shí)發(fā)送給存儲(chǔ)器,存儲(chǔ)器根據(jù)不同的令牌,存儲(chǔ)不同的分塊數(shù)據(jù),各個(gè)Docker容器無需排隊(duì)等待存儲(chǔ)器存儲(chǔ)數(shù)據(jù),提高了數(shù)據(jù)存儲(chǔ)效率。

圖6為本發(fā)明另一實(shí)施例提供的數(shù)據(jù)存儲(chǔ)裝置的結(jié)構(gòu)圖。如圖6所示,在圖5的基礎(chǔ)上,接收模塊51還用于接收存儲(chǔ)器發(fā)送的已用令牌;處理模塊52還用于根據(jù)所述已用令牌對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊,確定所述重復(fù)數(shù)據(jù)塊中是否有與所述目標(biāo)數(shù)據(jù)塊相同的數(shù)據(jù)塊;若所述重復(fù)數(shù)據(jù)塊中有與所述目標(biāo)數(shù)據(jù)塊相同的數(shù)據(jù)塊,則將所述已用令牌分配給所述數(shù)據(jù)塊;發(fā)送模塊53還用于將所述已用令牌發(fā)送給所述數(shù)據(jù)塊對(duì)應(yīng)的Docker容器。

處理模塊52具體用于根據(jù)預(yù)設(shè)分塊大小,對(duì)所述第一待存儲(chǔ)數(shù)據(jù)進(jìn)行分塊處理;根據(jù)預(yù)設(shè)分塊大小,對(duì)所述第二待存儲(chǔ)數(shù)據(jù)進(jìn)行分塊處理。

數(shù)據(jù)存儲(chǔ)裝置還包括檢測(cè)模塊54,檢測(cè)模塊54用于在預(yù)設(shè)時(shí)間內(nèi)檢測(cè)所述存儲(chǔ)器是否返回所述令牌;處理模塊52還用于若在預(yù)設(shè)時(shí)間內(nèi)所述存儲(chǔ)器沒有返回所述令牌,則將所述令牌分配給其他Docker容器。

進(jìn)一步的,檢測(cè)模塊54還用于檢測(cè)所述令牌的進(jìn)程健康狀態(tài);處理模塊52還用于若所述進(jìn)程健康狀態(tài)表示所述令牌處于非正常狀態(tài),則給其他Docker容器分配一個(gè)新的令牌;調(diào)整所述預(yù)設(shè)分塊大小。

本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)裝置可以具體用于執(zhí)行上述圖3或圖4所提供的方法實(shí)施例,具體功能此處不再贅述。

本實(shí)施例中,當(dāng)存儲(chǔ)器存儲(chǔ)數(shù)據(jù)后,將數(shù)據(jù)對(duì)應(yīng)的令牌返回給目標(biāo)區(qū)塊識(shí)別模塊,目標(biāo)區(qū)塊識(shí)別模塊用存儲(chǔ)器返回的令牌標(biāo)記重復(fù)數(shù)據(jù)塊中的數(shù)據(jù),提高了令牌利用率;通過檢測(cè)每個(gè)令牌是否在預(yù)設(shè)時(shí)間內(nèi)被收回,可將沒有在預(yù)設(shè)時(shí)間內(nèi)收回的令牌分配給其他Docker容器,并檢測(cè)該令牌的進(jìn)程健康狀態(tài),當(dāng)該進(jìn)程健康狀態(tài)標(biāo)識(shí)分配給其他Docker容器的令牌非正常狀態(tài)時(shí),給其他Docker容器分配一個(gè)新的令牌,保證了數(shù)據(jù)存儲(chǔ)的正常執(zhí)行,同時(shí)還可以調(diào)整預(yù)設(shè)分塊大小,即可根據(jù)丟失的令牌數(shù)量,調(diào)整對(duì)各個(gè)Docker容器發(fā)送的待存儲(chǔ)數(shù)據(jù)的分塊粒度,提高了分塊粒度的靈活性。

綜上所述,本發(fā)明實(shí)施例當(dāng)各個(gè)Docker容器同時(shí)有待存儲(chǔ)的數(shù)據(jù)時(shí),通過對(duì)各個(gè)Docker容器產(chǎn)生的待存儲(chǔ)數(shù)據(jù)進(jìn)行分塊處理,給每個(gè)分塊后的數(shù)據(jù)分配一個(gè)令牌,該令牌起到標(biāo)識(shí)數(shù)據(jù)的作用,不同的分塊數(shù)據(jù)對(duì)應(yīng)不同的令牌,各個(gè)Docker容器可將分配有令牌的分塊數(shù)據(jù)同時(shí)發(fā)送給存儲(chǔ)器,存儲(chǔ)器根據(jù)不同的令牌,存儲(chǔ)不同的分塊數(shù)據(jù),各個(gè)Docker容器無需排隊(duì)等待存儲(chǔ)器存儲(chǔ)數(shù)據(jù),提高了數(shù)據(jù)存儲(chǔ)效率;當(dāng)存儲(chǔ)器存儲(chǔ)數(shù)據(jù)后,將數(shù)據(jù)對(duì)應(yīng)的令牌返回給目標(biāo)區(qū)塊識(shí)別模塊,目標(biāo)區(qū)塊識(shí)別模塊用存儲(chǔ)器返回的令牌標(biāo)記重復(fù)數(shù)據(jù)塊中的數(shù)據(jù),提高了令牌利用率;通過檢測(cè)每個(gè)令牌是否在預(yù)設(shè)時(shí)間內(nèi)被收回,可將沒有在預(yù)設(shè)時(shí)間內(nèi)收回的令牌分配給其他Docker容器,并檢測(cè)該令牌的進(jìn)程健康狀態(tài),當(dāng)該進(jìn)程健康狀態(tài)標(biāo)識(shí)分配給其他Docker容器的令牌非正常狀態(tài)時(shí),給其他Docker容器分配一個(gè)新的令牌,保證了數(shù)據(jù)存儲(chǔ)的正常執(zhí)行,同時(shí)還可以調(diào)整預(yù)設(shè)分塊大小,即可根據(jù)丟失的令牌數(shù)量,調(diào)整對(duì)各個(gè)Docker容器發(fā)送的待存儲(chǔ)數(shù)據(jù)的分塊粒度,提高了分塊粒度的靈活性。

在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。

所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。

另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。

上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。上述軟件功能單元存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(Read-Only Memory,ROM)、隨機(jī)存取存儲(chǔ)器(Random Access Memory,RAM)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。

本領(lǐng)域技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的裝置的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。

最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
巢湖市| 盘锦市| 朝阳区| 香港| 霞浦县| 井研县| 临武县| 仲巴县| 阜新市| 奈曼旗| 德安县| 达拉特旗| 临桂县| 伊宁县| 加查县| 陈巴尔虎旗| 连城县| 吉木乃县| 拜城县| 阳朔县| 夏河县| 南汇区| 镇巴县| 锡林郭勒盟| 徐州市| 随州市| 乌海市| 称多县| 嘉善县| 博罗县| 集贤县| 廉江市| 兴山县| 徐闻县| 双牌县| 邢台县| 宜良县| 德州市| 河北区| 平原县| 上思县|