一種文件同步方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,尤其涉及一種文件同步方法及裝置。
【背景技術(shù)】
[0002]近年來(lái),隨著基于云服務(wù)的同步文件方法的流行,越來(lái)越多的人通過(guò)這些簡(jiǎn)便的服務(wù)來(lái)上傳個(gè)人文件、同步裝置和分享內(nèi)容,這種廣泛流行的服務(wù)也更加吸引了各式各樣的供應(yīng)商積極加入到云存儲(chǔ)市場(chǎng)。Dropbox、OneDrive和GoogleDrive這些服務(wù)在人們的日常生活中已經(jīng)非常普遍,OneDrive已經(jīng)服務(wù)了 2億用戶、上傳了 14PB數(shù)據(jù)量,每天有I億的用戶用Dropbox上傳或更新10億文件等。這些應(yīng)用是數(shù)據(jù)集中型,隨著使用量的增加,它們會(huì)產(chǎn)生非常大的網(wǎng)絡(luò)流量。Dropbox已經(jīng)占了大約4%的網(wǎng)絡(luò)流量,為YouTube (全世界最大的視頻網(wǎng)站)產(chǎn)生流量的1/3。
[0003]數(shù)據(jù)同步是個(gè)人云存儲(chǔ)服務(wù)的一個(gè)主要特征,客戶端通過(guò)網(wǎng)絡(luò)交互自動(dòng)的向云端更新本地的文件狀態(tài)從而實(shí)現(xiàn)云端數(shù)據(jù)的更新。同步效率、網(wǎng)絡(luò)流量開(kāi)銷也是一個(gè)用于測(cè)量云存儲(chǔ)服務(wù)性能的指標(biāo)。近年來(lái),很多研究工作圍繞著降低個(gè)人云存儲(chǔ)的網(wǎng)絡(luò)開(kāi)銷展開(kāi)。
[0004]隨著個(gè)人云存儲(chǔ)服務(wù)更廣泛的應(yīng)用、上傳的文件量越來(lái)越多,不可避免的產(chǎn)生了更多的網(wǎng)絡(luò)流量。在有限的網(wǎng)絡(luò)帶寬條件下,網(wǎng)絡(luò)流量成為了人們更加廣泛的使用這些應(yīng)用的一大障礙。
[0005]目前采用增量編碼方式,可以在客戶端數(shù)據(jù)發(fā)生改變時(shí),僅將客戶端和服務(wù)器之間不同之處傳至服務(wù)器端,減少傳輸流量。但這種方式只適合同步已完成的文件發(fā)生改變的情況,而對(duì)于在同步的文件發(fā)生修改時(shí),由于在同步的文件尚未在服務(wù)器端形成索引,無(wú)法通過(guò)現(xiàn)有增量編碼方式來(lái)減少網(wǎng)絡(luò)流量。
[0006]現(xiàn)有技術(shù)不足在于:
[0007]雖然現(xiàn)有方案可以在一定程度上降低了網(wǎng)絡(luò)流量,但是對(duì)于在同步的文件發(fā)生修改的情況仍然無(wú)法降低網(wǎng)絡(luò)流量的開(kāi)銷,對(duì)應(yīng)用性能、用戶體驗(yàn)造成很大的影響。
【發(fā)明內(nèi)容】
[0008]本發(fā)明實(shí)施例提出了一種文件同步方法及裝置,解決了現(xiàn)有技術(shù)中在同步的文件發(fā)生修改時(shí)無(wú)法根據(jù)服務(wù)器確定文件的不同之處,只能將修改后的整個(gè)文件重新上傳導(dǎo)致網(wǎng)絡(luò)流量較大的技術(shù)問(wèn)題。
[0009]本發(fā)明實(shí)施例提供了一種文件同步方法,包括如下步驟:
[0010]確定在同步的文件,同步的文件是將置于本地緩存中通過(guò)網(wǎng)絡(luò)上傳到云端服務(wù)器的文件;
[0011]在確定同步的文件發(fā)生修改后,確定該同步的文件是否已經(jīng)上傳成功;
[0012]若未上傳成功,則將修改后的文件與置于本地緩存中上傳云端服務(wù)器的文件比較,將文件不同的部分置于本地緩存中通過(guò)網(wǎng)絡(luò)上傳到云端服務(wù)器;
[0013]若上傳成功,則將修改后的文件與已上傳云端服務(wù)器的文件比較,將文件不同的部分置于本地緩存中通過(guò)網(wǎng)絡(luò)上傳到云端服務(wù)器。
[0014]本發(fā)明實(shí)施例提供了一種文件同步裝置,包括:
[0015]同步文件確定模塊,用于確定在同步的文件,同步的文件是將置于本地緩存中通過(guò)網(wǎng)絡(luò)上傳到云端服務(wù)器的文件;
[0016]上傳狀態(tài)確定模塊,用于在確定同步的文件發(fā)生修改后,確定該同步的文件是否已經(jīng)上傳成功;
[0017]上傳模塊,用于若未上傳成功,則將修改后的文件與置于本地緩存中上傳云端服務(wù)器的文件比較,將文件不同的部分置于本地緩存中通過(guò)網(wǎng)絡(luò)上傳到云端服務(wù)器;若上傳成功,則將修改后的文件與已上傳云端服務(wù)器的文件比較,將文件不同的部分置于本地緩存中通過(guò)網(wǎng)絡(luò)上傳到云端服務(wù)器。
[0018]有益效果如下:
[0019]針對(duì)目前在同步的文件發(fā)生改變時(shí)所帶來(lái)的網(wǎng)絡(luò)流量較大的問(wèn)題,本發(fā)明實(shí)施例通過(guò)確定在同步的文件,該同步的文件是將置于本地緩存中通過(guò)網(wǎng)絡(luò)上傳到云端服務(wù)器的文件;當(dāng)該文件發(fā)生修改后,確定其是否已經(jīng)上傳成功;如果沒(méi)有上傳成功,則將修改后的文件與置于本地緩存中上傳云端服務(wù)器的文件比較,如果上傳成功,則將修改后的文件與已上傳云端服務(wù)器的文件比較,最后將文件不同的部分置于本地緩存中通過(guò)網(wǎng)絡(luò)上傳到云端服務(wù)器;由于本發(fā)明實(shí)施例所提供的技術(shù)方案當(dāng)同步的文件發(fā)生修改時(shí),增加了確定該文件是否已經(jīng)上傳成功的判斷步驟,僅將文件不同的部分上傳到云端服務(wù)器,而不是將整個(gè)文件重新上傳,從而解決了現(xiàn)有技術(shù)中相同數(shù)據(jù)重復(fù)上傳的問(wèn)題,減少了網(wǎng)絡(luò)流量。
【附圖說(shuō)明】
[0020]下面將參照附圖描述本發(fā)明的具體實(shí)施例,其中:
[0021]圖1示出了本發(fā)明實(shí)施例中文件同步場(chǎng)景的示意性框圖;
[0022]圖2示出了本發(fā)明實(shí)施例中文件同步方法實(shí)施的流程示意圖;
[0023]圖3示出了本發(fā)明實(shí)施例中文件同步裝置的結(jié)構(gòu)示意圖;
[0024]圖4示出了本發(fā)明實(shí)施例中文件同步實(shí)例的流程示意圖。
【具體實(shí)施方式】
[0025]為了使本發(fā)明的技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖對(duì)本發(fā)明的示例性實(shí)施例進(jìn)行進(jìn)一步詳細(xì)的說(shuō)明,顯然,所描述的實(shí)施例僅是本發(fā)明的一部分實(shí)施例,而不是所有實(shí)施例的窮舉。并且在不沖突的情況下,本說(shuō)明中的實(shí)施例及實(shí)施例中的特征可以互相結(jié)合。
[0026]發(fā)明人在發(fā)明過(guò)程中注意到:
[0027]很多云存儲(chǔ)都執(zhí)行了切塊(Chunking)、捆綁(Bundling)、冗余消除(Deduplicat1n)、增量編碼(Delta encoding)和壓縮(Compress1n)等方案來(lái)優(yōu)化存儲(chǔ)性能。
[0028]其中,增量編碼的原理是:在客戶端和服務(wù)器端有對(duì)整個(gè)文件的索引(Index),在控制存儲(chǔ)器端一直監(jiān)視客戶端的數(shù)據(jù)。一旦檢測(cè)到客戶端數(shù)據(jù)發(fā)生改變,即識(shí)別出兩個(gè)副本之間不同之處,客戶端只將文本中變動(dòng)的地方傳輸?shù)椒?wù)器端,而不需要將原始的整個(gè)文件重新傳送。這種方式大大減少了傳輸過(guò)程中需要傳送的數(shù)據(jù)量,從而降低網(wǎng)絡(luò)開(kāi)銷。
[0029]然而現(xiàn)有方案卻還是遠(yuǎn)遠(yuǎn)沒(méi)有達(dá)到滿意狀態(tài),當(dāng)正在上傳至同步文件夾中的文件發(fā)生改變時(shí),服務(wù)器端并沒(méi)有此文件的索引,因此增量編碼也就無(wú)法執(zhí)行。最后當(dāng)服務(wù)器端檢測(cè)到改變發(fā)生時(shí),客戶端再上傳原始的和經(jīng)過(guò)改變的數(shù)據(jù)塊,這樣會(huì)使同步流量加倍。雖然執(zhí)行了增量編碼,但在一些情況下仍然無(wú)法降低網(wǎng)絡(luò)流量的開(kāi)銷。對(duì)于網(wǎng)絡(luò)流量敏感的用戶,數(shù)據(jù)同步占的流量開(kāi)銷比較大,會(huì)對(duì)應(yīng)用性能、用戶體驗(yàn)造成很大的影響。
[0030]針對(duì)上述不足,本發(fā)明實(shí)施例提出了一種文件同步方法及裝置,在保證應(yīng)用性能的前提下進(jìn)行網(wǎng)絡(luò)流量?jī)?yōu)化,減少不必要的網(wǎng)絡(luò)流量。下面進(jìn)行說(shuō)明。
[0031]本發(fā)明實(shí)施例在內(nèi)存中設(shè)置了本地緩存(Cache),通過(guò)在本地磁盤和云端服務(wù)器之間增加本地緩存,來(lái)作為本地磁盤與云端服務(wù)器的中間媒介,數(shù)據(jù)均通過(guò)本地緩存同步到云端服務(wù)器。
[0032]圖1示出了本發(fā)明實(shí)施例文件同步場(chǎng)景的示意性框圖,如圖所示,整個(gè)同步過(guò)程可以由以下幾個(gè)部分組成:
[0033]本地磁盤,作為同步文件夾和文件修改的載體;
[0034]本地緩存,是本地磁盤數(shù)據(jù)上傳同步文件夾的媒介,文件不是直接和云端進(jìn)行交互,都是需要將其放入本地緩存中,再通過(guò)本地緩存上傳至云端服務(wù)器;
[0035]同步文件夾,是本地和云端共同維護(hù)的文件夾,位于本地磁盤