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

數(shù)據(jù)的寫(xiě)入方法及寫(xiě)入裝置與流程

文檔序號(hào):12068233閱讀:603來(lái)源:國(guó)知局
數(shù)據(jù)的寫(xiě)入方法及寫(xiě)入裝置與流程

本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)的寫(xiě)入方法及寫(xiě)入裝置。



背景技術(shù):

云存儲(chǔ)是在云計(jì)算(cloud computing)概念上延伸和發(fā)展出來(lái)的一個(gè)新的概念,是一種新興的網(wǎng)絡(luò)存儲(chǔ)技術(shù),是指通過(guò)集群應(yīng)用、網(wǎng)絡(luò)技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡(luò)中大量各種不同類型的存儲(chǔ)設(shè)備通過(guò)應(yīng)用軟件集合起來(lái)協(xié)同工作,共同對(duì)外提供數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)訪問(wèn)功能的一個(gè)系統(tǒng)。云存儲(chǔ)的高可用是一個(gè)非常非常重要的指標(biāo),因?yàn)橥绊懼锨f(wàn)用戶,其最重要的是滿足數(shù)據(jù)不丟和數(shù)據(jù)服務(wù)不中斷兩點(diǎn)要求。

然而,現(xiàn)有技術(shù)的云存儲(chǔ)往往不能同時(shí)滿足兩點(diǎn)要求。參見(jiàn)圖1所示的云存儲(chǔ)中數(shù)據(jù)的備份模式示意圖,圖1中,在正常模式下,由第一存儲(chǔ)服務(wù)端為客戶端提供數(shù)據(jù)服務(wù)(如,數(shù)據(jù)的寫(xiě)入/讀取),第一存儲(chǔ)單元與第一存儲(chǔ)服務(wù)端相對(duì)應(yīng),用于對(duì)客戶端向第一存儲(chǔ)服務(wù)端寫(xiě)入的數(shù)據(jù)進(jìn)行存儲(chǔ),其也可以稱為本地主機(jī)房的存儲(chǔ)單元;第二存儲(chǔ)單元為同機(jī)房的存儲(chǔ)單元,用于對(duì)寫(xiě)入第一存儲(chǔ)單元的數(shù)據(jù)進(jìn)行備份;第三存儲(chǔ)單元與第二存儲(chǔ)服務(wù)端相對(duì)應(yīng),其為不在主機(jī)房的異地存儲(chǔ)單元,第三存儲(chǔ)單元的數(shù)據(jù)是通過(guò)異步方式寫(xiě)入的,也即現(xiàn)有技術(shù)中,對(duì)數(shù)據(jù)的備份模式是同機(jī)房備份以及異步異地備份。當(dāng)?shù)谝淮鎯?chǔ)單元故障時(shí),若根據(jù)第二存儲(chǔ)單元的數(shù)據(jù),恢復(fù)第一存儲(chǔ)單元中的數(shù)據(jù),往往需要耗費(fèi)很長(zhǎng)的時(shí)間(如,幾小時(shí)或者幾天),也即不能滿足數(shù)據(jù)服務(wù)不中斷的要求;而通過(guò)第三存儲(chǔ)單元為客戶端提供數(shù)據(jù)服務(wù)時(shí),由于該兩個(gè)存儲(chǔ)單元的數(shù)據(jù)存在時(shí)間差,也即第三存儲(chǔ)單元提供的數(shù)據(jù) 存在數(shù)據(jù)丟失的可能,因此不能滿足數(shù)據(jù)不丟的要求。

因此,需要提供一種數(shù)據(jù)的寫(xiě)入方法,以同時(shí)滿足數(shù)據(jù)不丟和數(shù)據(jù)服務(wù)不中斷兩點(diǎn)要求。



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

本申請(qǐng)實(shí)施例提供了一種數(shù)據(jù)的寫(xiě)入方法及寫(xiě)入裝置,可以實(shí)現(xiàn)在不增大客戶端訪問(wèn)時(shí)延的情況下,同時(shí)滿足數(shù)據(jù)不丟和數(shù)據(jù)服務(wù)不中斷兩點(diǎn)要求。

第一方面,提供了一種數(shù)據(jù)的寫(xiě)入方法,該寫(xiě)入方法包括:

客戶端接收寫(xiě)文件指令,所述寫(xiě)文件指令中攜帶待寫(xiě)入的文件數(shù)據(jù)流,所述文件數(shù)據(jù)流由有序的數(shù)據(jù)構(gòu)成;

將所述文件數(shù)據(jù)流按順序分裝成至少一個(gè)指定大小的數(shù)據(jù)塊,其中,所述指定大小的數(shù)據(jù)塊的字節(jié)數(shù)量大于文件傳輸協(xié)議默認(rèn)傳輸?shù)臄?shù)據(jù)塊的字節(jié)數(shù)量;

將所述至少一個(gè)指定大小的數(shù)據(jù)塊寫(xiě)入本地存儲(chǔ)服務(wù)端和異地存儲(chǔ)服務(wù)端。

第二方面,提供了一種數(shù)據(jù)的寫(xiě)入裝置,該寫(xiě)入裝置包括:接收單元、分裝單元和寫(xiě)入單元;

所述接收單元,用于接收寫(xiě)文件指令,所述寫(xiě)文件指令中攜帶待寫(xiě)入的文件數(shù)據(jù)流,所述文件數(shù)據(jù)流由有序的數(shù)據(jù)構(gòu)成;

所述分裝單元,用于將所述接收單元接收的所述文件數(shù)據(jù)流按順序分裝成至少一個(gè)指定大小的數(shù)據(jù)塊,其中,所述指定大小的數(shù)據(jù)塊的字節(jié)數(shù)量大于文件傳輸協(xié)議默認(rèn)傳輸?shù)臄?shù)據(jù)塊的字節(jié)數(shù)量;

所述寫(xiě)入單元,用于將所述分裝單元分裝的所述至少一個(gè)指定大小的數(shù)據(jù)塊寫(xiě)入本地存儲(chǔ)服務(wù)端和異地存儲(chǔ)服務(wù)端。

本申請(qǐng)?zhí)峁┑臄?shù)據(jù)的寫(xiě)入方法及寫(xiě)入裝置,客戶端接收寫(xiě)文件指令,所述寫(xiě)文件指令中攜帶待寫(xiě)入的文件數(shù)據(jù)流,所述文件數(shù)據(jù)流由有序的文件數(shù) 據(jù)構(gòu)成;將所述文件數(shù)據(jù)流按順序分裝成至少一個(gè)指定大小的數(shù)據(jù)塊,其中,所述指定大小的數(shù)據(jù)塊的字節(jié)數(shù)量大于文件傳輸協(xié)議默認(rèn)傳輸?shù)臄?shù)據(jù)塊的字節(jié)數(shù)量;將所述至少一個(gè)指定大小的數(shù)據(jù)塊寫(xiě)入本地存儲(chǔ)服務(wù)端和異地存儲(chǔ)服務(wù)端。由此可以看出,本申請(qǐng)采用了數(shù)據(jù)的同步異地備份模式,也即本地存儲(chǔ)服務(wù)端與異地存儲(chǔ)服務(wù)端的文件數(shù)據(jù)不存在時(shí)間差,以便在本地存儲(chǔ)服務(wù)端故障時(shí),直接通過(guò)異地存儲(chǔ)服務(wù)端對(duì)客戶端提供數(shù)據(jù)服務(wù),從而可以同時(shí)滿足數(shù)據(jù)不丟和數(shù)據(jù)服務(wù)不中斷兩點(diǎn)要求;此外,通過(guò)增大傳輸?shù)臄?shù)據(jù)塊的大小,可以大大減小客戶端與存儲(chǔ)服務(wù)端之間交互的次數(shù),從而可以大幅度地減小客戶端的訪問(wèn)時(shí)延。

附圖說(shuō)明

圖1為現(xiàn)有技術(shù)的云存儲(chǔ)中數(shù)據(jù)的備份模式示意圖;

圖2為本申請(qǐng)一種實(shí)施例提供的數(shù)據(jù)的寫(xiě)入方法流程圖;

圖3為本申請(qǐng)?zhí)峁┑臄?shù)據(jù)塊的劃分示意圖;

圖4為本申請(qǐng)?zhí)峁┑臄?shù)據(jù)的寫(xiě)入方法示意圖;

圖5為本申請(qǐng)另一種實(shí)施例提供的數(shù)據(jù)的寫(xiě)入裝置示意圖。

具體實(shí)施方式

為使本申請(qǐng)實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。

為便于對(duì)本申請(qǐng)實(shí)施例的理解,下面將結(jié)合附圖以具體實(shí)施例做進(jìn)一步的解釋說(shuō)明,實(shí)施例并不構(gòu)成對(duì)本申請(qǐng)實(shí)施例的限定。

本申請(qǐng)實(shí)施例提供的數(shù)據(jù)的寫(xiě)入方法及寫(xiě)入裝置,適用于云存儲(chǔ)中客戶 端向存儲(chǔ)服務(wù)端寫(xiě)入數(shù)據(jù)的場(chǎng)景,如,可以適用于阿里云的開(kāi)放存儲(chǔ)服務(wù)(Open Storage Service,OSS)中阿里云客戶端向阿里云存儲(chǔ)服務(wù)端寫(xiě)入數(shù)據(jù)的場(chǎng)景。此處,阿里云客戶端可以為阿里云手機(jī)客戶端,或者也可以為阿里云個(gè)人計(jì)算機(jī)(Personal Computer,PC)客戶端;而寫(xiě)入的數(shù)據(jù)則可以為任一組/串有序的數(shù)據(jù),如,文件數(shù)據(jù)流。在本申請(qǐng)中,以寫(xiě)入的數(shù)據(jù)為文件數(shù)據(jù)流為例說(shuō)明,其它有序數(shù)據(jù)的寫(xiě)入方法與文件數(shù)據(jù)流的寫(xiě)入方法類似。

本申請(qǐng)中的存儲(chǔ)服務(wù)端可以包括兩種類型:本地存儲(chǔ)服務(wù)端和異地存儲(chǔ)服務(wù)端,其中,異地存儲(chǔ)服務(wù)端的個(gè)數(shù)可以為多個(gè),且多個(gè)異地存儲(chǔ)服務(wù)端可以分別部署在不同的地方,如,在存儲(chǔ)服務(wù)端為阿里云存儲(chǔ)服務(wù)端時(shí),則多個(gè)異地存儲(chǔ)服務(wù)端可以分別部署在“青島”、“深圳”等城市。此外,上述本地存儲(chǔ)服務(wù)端或者異地存儲(chǔ)服務(wù)端均可以包括存儲(chǔ)單元,該存儲(chǔ)單元可以為數(shù)據(jù)庫(kù),或者也可以為分布式文件系統(tǒng)等存儲(chǔ)架構(gòu)。具體地,客戶端可以將文件數(shù)據(jù)流同步寫(xiě)入到本地存儲(chǔ)服務(wù)端的存儲(chǔ)單元和異地存儲(chǔ)服務(wù)端的存儲(chǔ)單元,以便在本地存儲(chǔ)服務(wù)端故障時(shí),直接通過(guò)異地存儲(chǔ)服務(wù)端對(duì)客戶端提供數(shù)據(jù)服務(wù),從而可以同時(shí)滿足數(shù)據(jù)不丟和數(shù)據(jù)服務(wù)不中斷兩點(diǎn)要求。

然而上述客戶端將文件數(shù)據(jù)流同步寫(xiě)入本地存儲(chǔ)服務(wù)端和異地存儲(chǔ)服務(wù)端的方法,也即本申請(qǐng)?zhí)峁┑母呷轂?zāi)級(jí)的同步異地?cái)?shù)據(jù)備份模式,相比于異步異地備份模式,往往會(huì)大大增加客戶端的訪問(wèn)時(shí)延,從而嚴(yán)重影響用戶的體驗(yàn)。特別是在寫(xiě)入的文件數(shù)據(jù)流比較大(如,兆級(jí)別以上文件)時(shí),訪問(wèn)文件本身就會(huì)消耗比較大的時(shí)間(一般為幾百毫秒到幾分鐘),而客戶端的訪問(wèn)速度只能達(dá)到M/s,如果再對(duì)數(shù)據(jù)進(jìn)行同步異地?cái)?shù)據(jù)備份,那客戶端的訪問(wèn)時(shí)延會(huì)嚴(yán)重受到影響。具體時(shí)延的增長(zhǎng)幅度根據(jù)客戶端與異地存儲(chǔ)服務(wù)端的距離而定,一般是幾倍到數(shù)量級(jí)的增長(zhǎng)幅度。舉例來(lái)說(shuō),假設(shè)客戶端待寫(xiě)入的文件數(shù)據(jù)流為一個(gè)10M的照片,如果客戶端只將該文件數(shù)據(jù)流寫(xiě)入本地存儲(chǔ)服務(wù)端,則需要10秒,如果要同步寫(xiě)入本地存儲(chǔ)服務(wù)端和異地存儲(chǔ)服務(wù)端,則可能需要20秒甚至幾分鐘級(jí)別。

上述客戶端的訪問(wèn)時(shí)延可以參考目前支付寶異地部署(支付寶客戶端在深圳,支付寶服務(wù)端在杭州)時(shí)跨城一筆支付的時(shí)延,而實(shí)際文件的數(shù)據(jù)流大小是一筆付款的幾個(gè)數(shù)量級(jí)。比如完成一筆付款支付寶客戶端需要訪問(wèn)支付寶服務(wù)端100次以上,杭州-深圳每次網(wǎng)絡(luò)訪問(wèn)時(shí)延在30ms,這樣需要對(duì)支付客戶端有100*30ms=3秒的時(shí)延影響,同時(shí)支付服務(wù)端提供的性能容量也會(huì)數(shù)量級(jí)別下降。

由于客戶端的訪問(wèn)時(shí)延主要取決于異地網(wǎng)絡(luò)的交互上,因此為了解決上述客戶端訪問(wèn)時(shí)延大的問(wèn)題,本申請(qǐng)客戶端在將文件數(shù)據(jù)流同步寫(xiě)入本地存儲(chǔ)服務(wù)端和異地存儲(chǔ)服務(wù)端時(shí),增大單次在客戶端與存儲(chǔ)服務(wù)端之間傳輸?shù)臄?shù)據(jù)塊的大小,以此來(lái)減小客戶端與存儲(chǔ)服務(wù)端之間交互的次數(shù)。其中,上述增大單次在客戶端與存儲(chǔ)服務(wù)端之間傳輸?shù)臄?shù)據(jù)塊的大小的主要原理是:文件傳輸協(xié)議的文件傳輸只要保證文件數(shù)據(jù)流的順序即可,無(wú)需客戶端與存儲(chǔ)服務(wù)端之間高頻交互。

以下將通過(guò)實(shí)施例的方式介紹本申請(qǐng)如何在不增大客戶端訪問(wèn)時(shí)延的情況下,來(lái)同時(shí)滿足數(shù)據(jù)不丟和數(shù)據(jù)服務(wù)不中斷兩點(diǎn)要求。

圖2為本申請(qǐng)一種實(shí)施例提供的數(shù)據(jù)的寫(xiě)入方法流程圖。所述方法的執(zhí)行主體可以為具有處理能力的設(shè)備:服務(wù)器或者系統(tǒng)或者裝置,如圖2所示,所述方法具體包括:

步驟210,客戶端接收寫(xiě)文件指令,所述寫(xiě)文件指令中攜帶待寫(xiě)入的文件數(shù)據(jù)流,所述文件數(shù)據(jù)流由有序的數(shù)據(jù)構(gòu)成。

具體地,可以是由客戶端的應(yīng)用程序接收寫(xiě)文件指令。此處,客戶端可以是阿里云手機(jī)客戶端,或者也可以為阿里云PC客戶端;寫(xiě)文件指令可以是由用戶點(diǎn)擊客戶端的保存文件按鈕觸發(fā)。此外,上述待寫(xiě)入的文件數(shù)據(jù)流可以為一部對(duì)賬文件、一個(gè)個(gè)人視頻或者一組/串有序的數(shù)據(jù)。

可選地,客戶端的應(yīng)用程序在接收到寫(xiě)文件指令之后,可以啟動(dòng)應(yīng)用程序的至少一個(gè)線程。

步驟220,將所述文件數(shù)據(jù)流按順序分裝成至少一個(gè)指定大小的數(shù)據(jù)塊,其中,所述指定大小的數(shù)據(jù)塊的字節(jié)數(shù)量大于文件傳輸協(xié)議默認(rèn)傳輸?shù)臄?shù)據(jù)塊的字節(jié)數(shù)量。

需要說(shuō)明的是,文件傳輸協(xié)議(如,超文本傳輸協(xié)議(HTTP,Hyper Text Transfer Protocol))傳輸?shù)奈募?shù)據(jù)流與其它業(yè)務(wù)或者數(shù)據(jù)庫(kù)訪問(wèn)的遠(yuǎn)程過(guò)程調(diào)用協(xié)議(Remote Procedure Call Protocol,RPC)不一樣,其只要保證文件數(shù)據(jù)流的順序即可,無(wú)需客戶端與存儲(chǔ)服務(wù)端之間來(lái)回高頻交互,因此,在固定網(wǎng)絡(luò)帶寬下,可以增大文件傳輸協(xié)議傳輸?shù)臄?shù)據(jù)塊的字節(jié)數(shù)量,也即可以重新設(shè)置數(shù)據(jù)塊的字節(jié)數(shù)量,在一個(gè)例子中,可以將數(shù)據(jù)塊的字節(jié)數(shù)量重新設(shè)置為文件傳輸協(xié)議默認(rèn)傳輸?shù)臄?shù)據(jù)塊的字節(jié)數(shù)量的N倍,N為自然數(shù)。

可以理解的是,通過(guò)增大文件傳輸協(xié)議傳輸?shù)臄?shù)據(jù)塊的字節(jié)數(shù)量,就可以增大單次在客戶端與存儲(chǔ)服務(wù)端之間傳輸?shù)臄?shù)據(jù)塊的大小,以此來(lái)減小客戶端與存儲(chǔ)服務(wù)端之間交互的次數(shù)。而由于本申請(qǐng)中客戶端同時(shí)向本地存儲(chǔ)服務(wù)端和異地存儲(chǔ)服務(wù)端寫(xiě)入文件數(shù)據(jù)流時(shí),客戶端的訪問(wèn)時(shí)延主要取決于異地網(wǎng)絡(luò)交互上,因此在交互次數(shù)較小的情況下,可以很好的避免客戶端的訪問(wèn)時(shí)延問(wèn)題。

舉例來(lái)說(shuō),在OSS中,http協(xié)議默認(rèn)傳輸?shù)臄?shù)據(jù)塊的字節(jié)數(shù)量為1K-8K,以4K為例來(lái)說(shuō),在待寫(xiě)入的文件數(shù)據(jù)流的大小為20M(即20000K)時(shí),則可以將文件數(shù)據(jù)流分裝成20000/4=5000個(gè)默認(rèn)傳輸?shù)臄?shù)據(jù)塊,也即寫(xiě)入20M的文件數(shù)據(jù)流需要客戶端與存儲(chǔ)服務(wù)端之間交互5000次,在異地存儲(chǔ)服務(wù)端距離較遠(yuǎn)的情況下,客戶端的訪問(wèn)時(shí)延是相當(dāng)大的。而在將數(shù)據(jù)塊的字節(jié)數(shù)量重新設(shè)置為默認(rèn)傳輸?shù)臄?shù)據(jù)塊的字節(jié)數(shù)量的32倍,即指定大小的數(shù)據(jù)塊的字節(jié)數(shù)量為32*4=128K時(shí),則在待寫(xiě)入的文件數(shù)據(jù)流的大小為20M時(shí),可以將文件數(shù)據(jù)流劃分為20000/128=160個(gè)指定大小的數(shù)據(jù)塊,也即寫(xiě)入20M的文件數(shù)據(jù)流只需要客戶端與存儲(chǔ)服務(wù)端之間交互160次,這可以大大減小客戶 端的訪問(wèn)時(shí)延。

需要說(shuō)明的是,雖然上述例子以指定大小的數(shù)據(jù)塊的字節(jié)數(shù)量為128K進(jìn)行了說(shuō)明,在實(shí)際應(yīng)用中,也可以將指定大小的數(shù)據(jù)塊的字節(jié)數(shù)量設(shè)置為其它值。然而,由于數(shù)據(jù)塊設(shè)置過(guò)大會(huì)受到服務(wù)端的硬件設(shè)備緩沖,而設(shè)置過(guò)小會(huì)影響網(wǎng)絡(luò)時(shí)延等限制,因此,可以結(jié)合客戶端與異地存儲(chǔ)服務(wù)端的異地距離的時(shí)延大小、網(wǎng)絡(luò)帶寬以及硬件設(shè)備等進(jìn)行設(shè)置,優(yōu)選地,可以將數(shù)據(jù)塊設(shè)置為32K-1024K之間的任一值。

回到步驟220中,當(dāng)啟動(dòng)至少一個(gè)線程時(shí),則可以由至少一個(gè)線程完成上述分裝至少一個(gè)指定大小的數(shù)據(jù)塊的步驟。

參見(jiàn)圖3所示的本申請(qǐng)?zhí)峁┑臄?shù)據(jù)塊的劃分示意圖,圖3中,301表示網(wǎng)絡(luò)時(shí)延,比如,在客戶端與異地存儲(chǔ)服務(wù)端之間的距離為1000公里時(shí),這個(gè)網(wǎng)絡(luò)時(shí)延可以為30ms;每個(gè)302表示分裝成的一個(gè)指定大小的數(shù)據(jù)塊,在網(wǎng)絡(luò)中傳輸時(shí),該指定大小的數(shù)據(jù)塊也可以理解為數(shù)據(jù)包;多個(gè)302組合起來(lái)就是一個(gè)文件數(shù)據(jù)流,這個(gè)文件數(shù)據(jù)流中的數(shù)據(jù)是有序的。

步驟230,將所述至少一個(gè)指定大小的數(shù)據(jù)塊寫(xiě)入本地存儲(chǔ)服務(wù)端和異地存儲(chǔ)服務(wù)端。

參見(jiàn)圖4所示的本申請(qǐng)?zhí)峁┑臄?shù)據(jù)的寫(xiě)入方法示意圖,圖4中,客戶端可以同步將文件數(shù)據(jù)流寫(xiě)入本地存儲(chǔ)服務(wù)端和異地存儲(chǔ)服務(wù)端。具體地,當(dāng)啟動(dòng)一個(gè)線程時(shí),則該一個(gè)線程按照先后順序?qū)⒅辽僖粋€(gè)指定大小的數(shù)據(jù)塊寫(xiě)入本地存儲(chǔ)服務(wù)端和異地存儲(chǔ)服務(wù)端;而當(dāng)啟動(dòng)兩個(gè)線程時(shí),則由兩個(gè)線程同時(shí)將文件數(shù)據(jù)流寫(xiě)入本地存儲(chǔ)服務(wù)端和異地存儲(chǔ)服務(wù)端,由此,可以實(shí)現(xiàn)高容災(zāi)級(jí)的數(shù)據(jù)的同步異地備份模式。

圖4中,第一存儲(chǔ)單元是與本地存儲(chǔ)服務(wù)端對(duì)應(yīng)的存儲(chǔ)單元,該第一存儲(chǔ)單元可以為數(shù)據(jù)庫(kù),也可以為分布式文件系統(tǒng)等其它存儲(chǔ)架構(gòu),即客戶端可以將文件數(shù)據(jù)流寫(xiě)入本地存儲(chǔ)服務(wù)端的數(shù)據(jù)庫(kù)或者分布式文件系統(tǒng)中;第二存儲(chǔ)單元是與異地存儲(chǔ)服務(wù)端對(duì)應(yīng)的存儲(chǔ)單元,該第二存儲(chǔ)單元可以為數(shù) 據(jù)庫(kù),也可以為分布式文件系統(tǒng)等其它存儲(chǔ)架構(gòu),即客戶端可以將文件數(shù)據(jù)流寫(xiě)入異地存儲(chǔ)服務(wù)端的數(shù)據(jù)庫(kù)或者分布式文件系統(tǒng)中。

可以理解的是,當(dāng)圖4中包括多個(gè)異地存儲(chǔ)服務(wù)端時(shí),則可以啟動(dòng)多個(gè)線程,多個(gè)線程可以向本地存儲(chǔ)服務(wù)端和多個(gè)異地存儲(chǔ)服務(wù)端寫(xiě)入文件數(shù)據(jù)流,其中,多個(gè)線程寫(xiě)入文件數(shù)據(jù)流的方法與兩個(gè)線程將文件數(shù)據(jù)流寫(xiě)入兩個(gè)存儲(chǔ)服務(wù)端(一個(gè)本地存儲(chǔ)服務(wù)端和一個(gè)異地存儲(chǔ)服務(wù)端)的方法類似,在此不復(fù)贅述。

需要說(shuō)明的是,客戶端通過(guò)將文件數(shù)據(jù)流同步寫(xiě)入本地存儲(chǔ)服務(wù)端和異地存儲(chǔ)服務(wù)端,也即通過(guò)數(shù)據(jù)的同步異地備份模式,就可以實(shí)現(xiàn)數(shù)據(jù)的高容災(zāi)級(jí)備份,如在出現(xiàn)機(jī)房級(jí)別故障(如,硬件故障)或者斷網(wǎng)時(shí),就可以通過(guò)異地存儲(chǔ)服務(wù)端繼續(xù)為客戶端提供數(shù)據(jù)服務(wù),從而可以同時(shí)滿足數(shù)據(jù)不丟和數(shù)據(jù)服務(wù)不中斷兩點(diǎn)要求。

此外,本申請(qǐng)通過(guò)增大單次在客戶端與存儲(chǔ)服務(wù)端之間傳輸?shù)臄?shù)據(jù)塊的大小,可以極大地減小客戶端的訪問(wèn)時(shí)延,其具體減小的幅度可通過(guò)如下例子說(shuō)明。

在網(wǎng)絡(luò)帶寬為20M時(shí),假設(shè)寫(xiě)本地存儲(chǔ)服務(wù)端的網(wǎng)絡(luò)時(shí)延為0.2ms,寫(xiě)異地存儲(chǔ)服務(wù)端的網(wǎng)絡(luò)時(shí)延(如,圖3中的301)為30ms;在文件傳輸協(xié)議默認(rèn)傳輸?shù)臄?shù)據(jù)塊的字節(jié)數(shù)量為4K時(shí),則客戶端單次向本地存儲(chǔ)服務(wù)端寫(xiě)入數(shù)據(jù)的時(shí)延為4K/20M+0.2ms=0.4ms;而客戶端單次向異地存儲(chǔ)服務(wù)端寫(xiě)入數(shù)據(jù)的時(shí)延為:4K/20M+30ms=30.2ms;當(dāng)分別寫(xiě)入200K、2000K以及20000K的數(shù)據(jù)時(shí),客戶端的訪問(wèn)時(shí)延如表1所示:

表1

從表1中可以看出,隨著文件數(shù)據(jù)流的增大,客戶端的訪問(wèn)時(shí)延也在逐漸增大,當(dāng)文件數(shù)據(jù)流的大小為20M時(shí),則客戶端的訪問(wèn)時(shí)延變?yōu)?5.3s,而這個(gè)時(shí)間可能是用戶無(wú)法接受的;當(dāng)然,在實(shí)際應(yīng)用中,隨著客戶端與存儲(chǔ)服務(wù)端之間網(wǎng)絡(luò)帶寬的增大,客戶端的訪問(wèn)時(shí)延也會(huì)相應(yīng)的降低,特別是在客戶端與存儲(chǔ)服務(wù)端之間的距離比較小(如,幾十米)時(shí),客戶端的訪問(wèn)時(shí)延主要取決于網(wǎng)絡(luò)帶寬,本申請(qǐng)主要針對(duì)在固定網(wǎng)絡(luò)帶寬的情況下,降低客戶端的訪問(wèn)時(shí)延進(jìn)行說(shuō)明。

為了降低客戶端的訪問(wèn)時(shí)延,本申請(qǐng)對(duì)傳輸?shù)臄?shù)據(jù)塊的字節(jié)數(shù)量進(jìn)行調(diào)整,如在將數(shù)據(jù)塊的字節(jié)數(shù)量增大至128K時(shí),則客戶端單次向本地存儲(chǔ)服務(wù)端寫(xiě)入數(shù)據(jù)的時(shí)延為128K/20M+0.2ms=6.6ms;而客戶端單次向異地存儲(chǔ)服務(wù)端寫(xiě)入數(shù)據(jù)的時(shí)延為:128/20M+30ms=36.4ms;當(dāng)分別寫(xiě)入200K、2000K以及20000K的數(shù)據(jù)時(shí),客戶端的訪問(wèn)時(shí)延如表2所示:

表2

綜上,從表2中可以看出,在固定網(wǎng)絡(luò)帶寬的情況下,當(dāng)將數(shù)據(jù)塊的字節(jié)數(shù)量增大至128K時(shí),客戶端的訪問(wèn)時(shí)延只需要6.9s,相比于單次傳輸?shù)臄?shù)據(jù)塊的字節(jié)數(shù)量為4K時(shí)客戶端的訪問(wèn)時(shí)延15.3s,大大降低了客戶端的訪問(wèn)時(shí)延,從而可以提升用戶的體驗(yàn)。

本申請(qǐng)?zhí)峁┑臄?shù)據(jù)的寫(xiě)入方法,客戶端接收寫(xiě)文件指令,所述寫(xiě)文件指令中攜帶待寫(xiě)入的文件數(shù)據(jù)流,所述文件數(shù)據(jù)流由有序的文件數(shù)據(jù)構(gòu)成;將所述文件數(shù)據(jù)流按順序分裝成至少一個(gè)指定大小的數(shù)據(jù)塊,其中,所述指定大小的數(shù)據(jù)塊的字節(jié)數(shù)量大于文件傳輸協(xié)議默認(rèn)傳輸?shù)臄?shù)據(jù)塊的字節(jié)數(shù)量; 將所述至少一個(gè)指定大小的數(shù)據(jù)塊寫(xiě)入本地存儲(chǔ)服務(wù)端和異地存儲(chǔ)服務(wù)端。由此,可以實(shí)現(xiàn)在不增大客戶端訪問(wèn)時(shí)延的情況下,同時(shí)滿足數(shù)據(jù)不丟和數(shù)據(jù)服務(wù)不中斷兩點(diǎn)要求。

與上述數(shù)據(jù)的寫(xiě)入方法對(duì)應(yīng)地,本申請(qǐng)實(shí)施例還提供的一種數(shù)據(jù)的寫(xiě)入裝置,如圖5所示,該寫(xiě)入裝置包括:接收單元501、分裝單元502和寫(xiě)入單元503。

接收單元501,用于接收寫(xiě)文件指令,所述寫(xiě)文件指令中攜帶待寫(xiě)入的文件數(shù)據(jù)流,所述文件數(shù)據(jù)流由有序的數(shù)據(jù)構(gòu)成。

分裝單元502,用于將接收單元501接收的所述文件數(shù)據(jù)流按順序分裝成至少一個(gè)指定大小的數(shù)據(jù)塊,其中,所述指定大小的數(shù)據(jù)塊的字節(jié)數(shù)量大于文件傳輸協(xié)議默認(rèn)傳輸?shù)臄?shù)據(jù)塊的字節(jié)數(shù)量。

在一個(gè)例子中,所述指定大小的數(shù)據(jù)塊的字節(jié)數(shù)量為所述文件傳輸協(xié)議默認(rèn)傳輸?shù)臄?shù)據(jù)塊的字節(jié)數(shù)量的N倍,其中,N為自然數(shù)。

寫(xiě)入單元503,用于將分裝單元502分裝的所述至少一個(gè)指定大小的數(shù)據(jù)塊寫(xiě)入本地存儲(chǔ)服務(wù)端和異地存儲(chǔ)服務(wù)端。

其中,所述本地存儲(chǔ)服務(wù)端和異地存儲(chǔ)服務(wù)端可以為開(kāi)放存儲(chǔ)服務(wù)OSS中的存儲(chǔ)服務(wù)端。

可選地,所述寫(xiě)入裝置還包括:?jiǎn)?dòng)單元504,用于啟動(dòng)至少一個(gè)線程。

寫(xiě)入單元503具體用于:

按照先后順序?qū)⑺鲋辽僖粋€(gè)指定大小的數(shù)據(jù)塊寫(xiě)入本地存儲(chǔ)服務(wù)端和異地存儲(chǔ)服務(wù)端;或者,

同時(shí)將所述至少一個(gè)指定大小的數(shù)據(jù)塊寫(xiě)入本地存儲(chǔ)服務(wù)端和異地存儲(chǔ)服務(wù)端。

可選地,寫(xiě)入單元503還具體用于:

將所述至少一個(gè)指定大小的數(shù)據(jù)塊寫(xiě)入本地存儲(chǔ)服務(wù)端對(duì)應(yīng)的數(shù)據(jù)庫(kù)或者分布式文件系統(tǒng),以及將所述至少一個(gè)指定大小的數(shù)據(jù)塊寫(xiě)入異地存儲(chǔ)服 務(wù)端對(duì)應(yīng)的數(shù)據(jù)庫(kù)或者分布式文件系統(tǒng)。

本申請(qǐng)實(shí)施例裝置的各功能模塊的功能,可以通過(guò)上述方法實(shí)施例的各步驟來(lái)實(shí)現(xiàn),因此,本申請(qǐng)?zhí)峁┑难b置的具體工作過(guò)程,在此不復(fù)贅述。

本申請(qǐng)實(shí)施例提供的數(shù)據(jù)的寫(xiě)入裝置,接收單元501接收寫(xiě)文件指令,所述寫(xiě)文件指令中攜帶待寫(xiě)入的文件數(shù)據(jù)流,所述文件數(shù)據(jù)流由有序的數(shù)據(jù)構(gòu)成;分裝單元502將所述文件數(shù)據(jù)流按順序分裝成至少一個(gè)指定大小的數(shù)據(jù)塊,其中,所述指定大小的數(shù)據(jù)塊的字節(jié)數(shù)量大于文件傳輸協(xié)議默認(rèn)傳輸?shù)臄?shù)據(jù)塊的字節(jié)數(shù)量;寫(xiě)入單元503將所述至少一個(gè)指定大小的數(shù)據(jù)塊寫(xiě)入本地存儲(chǔ)服務(wù)端和異地存儲(chǔ)服務(wù)端。由此,可以實(shí)現(xiàn)在不增大客戶端訪問(wèn)時(shí)延的情況下,同時(shí)滿足數(shù)據(jù)不丟和數(shù)據(jù)服務(wù)不中斷兩點(diǎn)要求。

專業(yè)人員應(yīng)該還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開(kāi)的實(shí)施例描述的各示例的對(duì)象及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來(lái)實(shí)現(xiàn),為了清楚地說(shuō)明硬件和軟件的可互換性,在上述說(shuō)明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本申請(qǐng)的范圍。

結(jié)合本文中所公開(kāi)的實(shí)施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤(pán)、可移動(dòng)磁盤(pán)、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。

以上所述的具體實(shí)施方式,對(duì)本申請(qǐng)的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本申請(qǐng)的具體實(shí)施方式而已,并不用于限定本申請(qǐng)的保護(hù)范圍,凡在本申請(qǐng)的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
洪雅县| 法库县| 新绛县| 无极县| 高邮市| 平度市| 苍溪县| 乌鲁木齐县| 翁源县| 林口县| 靖西县| 丹巴县| 乐陵市| 本溪市| 策勒县| 黄陵县| 汪清县| 连城县| 钦州市| 邹平县| 工布江达县| 时尚| 铜鼓县| 资阳市| 泸溪县| 新田县| 红桥区| 沂南县| 佛学| 嘉善县| 永善县| 文登市| 连州市| 盖州市| 景谷| 汝州市| 若羌县| 云安县| 民乐县| 临沂市| 涞水县|