新四季網

數據的寫入方法、系統和裝置製造方法

2023-08-09 00:10:31

數據的寫入方法、系統和裝置製造方法
【專利摘要】本發明實施例公開了一種數據的寫入方法、系統和裝置,通過應用本發明實施例的技術方案,客戶端在向數據存儲伺服器的文件中寫入數據時,通過攜帶自身分配到的該文件對應的序列號,以通過搶佔式的序列號的方式,來保障只有一個客戶端向文件中寫入數據,從而保障了數據安全;且與現有的租約管理機制相比,減輕了伺服器的負載,提高了系統的性能,並且可以得到更快的響應速度,恢復延時很短。
【專利說明】數據的寫入方法、系統和裝置
【技術領域】
[0001]本發明涉及通信【技術領域】,特別涉及一種數據的寫入方法、系統和裝置。
【背景技術】
[0002]在HDFS (Hadoop Distributed File System,開源的分布式文件系統)中,可能出 現多個客戶端同時向一個文件中寫入數據的情況,為此:現有技術中通過使用租約的方式 避免多個客戶端同時向一個文件中寫入數據。
[0003]具體的,當需要向文件中寫入數據時,客戶端請求一個租約,並且在該租約的時間 期限內只允許該客戶端向該文件中寫入數據,而不允許其他客戶端向該文件中寫入數據; 在租約過期時,該客戶端可以進行續約,以更新租約;當該客戶端不需要向該文件中寫入數 據時則退回租約,此時另一個客戶端能夠搶佔該文件的租約,從而可以允許其他客戶端向 該文件中寫入數據。
[0004]在實現本發明實施例的過程中,發明人發現現有技術至少存在以下問題:
現有的租約管理機制中,會頻繁的更新租約,對元信息伺服器造成巨大壓力,元信息服 務器的負載過重,且系統性能比較低;此外,當客戶端出現故障之後,需要等待租約過期才 能繼續向文件中寫入數據,恢復延時很大。

【發明內容】

[0005]本發明實施例提供一種數據的寫入方法、系統和裝置,解決現有技術的租約管理 機制中,伺服器負載過重、系統性能比較低以及恢復延時大等問題。
[0006]為達到上述目的,本發明實施例一方面提供了一種數據的寫入方法,所述方法具 體包括:
在客戶端需要向文件中寫入數據時,所述客戶端向位置提供伺服器發送用於請求所述 文件位置的第一請求消息;
所述位置提供伺服器在接收到所述第一請求消息之後,確定所述文件對應的最近被分 配的第一序列號,並分配所述文件對應的第二序列號,所述第二序列號大於所述第一序列 號或者所述第二序列號小於所述第一序列號;以及,將所述文件的位置信息和所述第二序 列號發送給所述客戶端;
所述客戶端向數據存儲伺服器發送用於請求向所述文件中寫入數據的第二請求消息, 且所述第二請求消息中攜帶所述第二序列號;
所述數據存儲伺服器在接收到所述第二請求消息之後,利用所述第二序列號確定允許 所述客戶端利用所述文件的位置信息向所述文件中寫入數據或者拒絕所述客戶端利用所 述文件的位置信息向所述文件中寫入數據。
[0007]所述數據存儲伺服器利用所述第二序列號確定允許所述客戶端利用所述文件的 位置信息向所述文件中寫入數據或者拒絕所述客戶端利用所述文件的位置信息向所述文 件中寫入數據,具體包括:所述數據存儲伺服器獲得最近一個向所述文件中寫入數據的客戶端所分配到的所述 文件對應的第三序列號,並比較所述第二序列號與所述第三序列號之間的大小關係;
在所述第二序列號大於所述第一序列號時,如果所述第二序列號大於等於所述第三序 列號,則所述數據存儲伺服器允許所述客戶端利用所述文件的位置信息向所述文件中寫入 數據;如果所述第二序列號小於所述第三序列號,則所述數據存儲伺服器拒絕所述客戶端 利用所述文件的位置信息向所述文件中寫入數據;
在所述第二序列號小於所述第一序列號時,如果所述第二序列號小於等於所述第三序 列號,則所述數據存儲伺服器允許所述客戶端利用所述文件的位置信息向所述文件中寫入 數據;如果所述第二序列號大於所述第三序列號,則所述數據存儲伺服器拒絕所述客戶端 利用所述文件的位置信息向所述文件中寫入數據。
[0008]該方法進一步包括:所述位置提供伺服器為每個文件記錄最近被分配的序列號; 在接收到所述第一請求消息之後,所述位置提供伺服器通過自身記錄的信息確定所述
文件對應的最近被分配的第一序列號,並將所述最近被分配的第一序列號遞增或遞減,得 到所述文件當前被分配的第二序列號;
在將所述第二序列號發送給所述客戶端之後,所述位置提供伺服器記錄所述第二序列 號為所述文件對應的最近被分配的序列號。
[0009]該方法進一步包括:當多個數據存儲伺服器同時存儲所述文件時,所述客戶端利 用所述文件的位置信息向其中一個數據存儲伺服器的所述文件中寫入數據,由該數據存儲 伺服器向其他數據存儲伺服器的所述文件中寫入數據;
當其他數據存儲伺服器在文件中寫入數據成功之後,所述其他數據存儲伺服器向該數 據存儲伺服器發送寫入成功的響應,並由該數據存儲伺服器將所述客戶端所分配到的所述 文件對應的序列號發送給所述位置提供伺服器;
所述位置提供伺服器比較接收到的序列號以及自身記錄的所述文件對應的最近被分 配的序列號;如果二者相同,則確認所述客戶端數據寫入成功;如果二者不同,則確認所述 客戶端數據寫入失敗。
[0010]另一方面,本發明實施例還提供了一種數據的寫入系統,所述系統具體包括: 客戶端,用於在需要向文件中寫入數據時,向位置提供伺服器發送用於請求所述文件
位置的第一請求消息;以及,
在接收到所述文件的位置信息和第二序列號之後,向數據存儲伺服器發送用於請求向 所述文件中寫入數據的第二請求消息,且所述第二請求消息中攜帶所述第二序列號;
位置提供伺服器,用於在接收到所述第一請求消息之後,確定所述文件對應的最近被 分配的第一序列號,並分配所述文件對應的第二序列號,所述第二序列號大於所述第一序 列號或者所述第二序列號小於所述第一序列號;以及,將所述文件的位置信息和所述第二 序列號發送給所述客戶端;
數據存儲伺服器,用於在接收到所述第二請求消息之後,利用所述第二序列號確定允 許所述客戶端利用所述文件的位置信息向所述文件中寫入數據或者拒絕所述客戶端利用 所述文件的位置信息向所述文件中寫入數據。
[0011]所述數據存儲伺服器,具體用於獲得最近一個向所述文件中寫入數據的客戶端所 分配到的所述文件對應的第三序列號,並比較所述第二序列號與所述第三序列號之間的大小關係;
在所述第二序列號大於所述第一序列號時,如果所述第二序列號大於等於所述第三序 列號,則允許所述客戶端利用所述文件的位置信息向所述文件中寫入數據;如果所述第二 序列號小於所述第三序列號,則拒絕所述客戶端利用所述文件的位置信息向所述文件中寫 入數據;
在所述第二序列號小於所述第一序列號時,如果所述第二序列號小於等於所述第三序 列號,則允許所述客戶端利用所述文件的位置信息向所述文件中寫入數據;如果所述第二 序列號大於所述第三序列號,則拒絕所述客戶端利用所述文件的位置信息向所述文件中寫 入數據。
[0012]另一方面,本發明實施例還提供了一種客戶端,所述客戶端具體包括:
第一發送模塊,用於在需要向文件中寫入數據時,向位置提供伺服器發送用於請求所 述文件位置的第一請求消息;
接收模塊,用於在所述位置提供伺服器利用所述文件對應的最近被分配的第一序列號 分配所述文件對應的第二序列號之後,接收所述位置提供伺服器返回的所述文件的位置信 息和所述第二序列號;
第二發送模塊,用於向數據存儲伺服器發送用於請求向所述文件中寫入數據的第二請 求消息,且所述第二請求消息中攜帶所述第二序列號;
由所述數據存儲伺服器利用所述第二序列號確定允許所述客戶端利用所述文件的位 置信息向所述文件中寫入數據或者拒絕所述客戶端利用所述文件的位置信息向所述文件 中寫入數據。
[0013]另一方面,本發明實施例還提供了一種位置提供伺服器,所述位置提供伺服器具 體包括:
接收模塊,用於在客戶端需要向文件中寫入數據時,接收來自所述客戶端的用於請求 所述文件位置的第一請求消息;
處理模塊,用於在接收到所述第一請求消息之後,確定所述文件對應的最近被分配的 第一序列號,並分配所述文件對應的第二序列號,所述第二序列號大於所述第一序列號或 者所述第二序列號小於所述第一序列號;
發送模塊,用於將所述文件的位置信息和所述第二序列號發送給所述客戶端,由所述 客戶端向數據存儲伺服器發送用於請求向所述文件中寫入數據的攜帶所述第二序列號的 第二請求消息,並由所述數據存儲伺服器利用所述第二序列號確定允許所述客戶端利用所 述文件的位置信息向所述文件中寫入數據或者拒絕所述客戶端利用所述文件的位置信息 向所述文件中寫入數據。
[0014]所述處理模塊,進一步用於為每個文件記錄最近被分配的序列號;
在接收到所述第一請求消息之後,通過自身記錄的信息確定所述文件對應的最近被分 配的第一序列號,並將所述最近被分配的第一序列號遞增或遞減,得到所述文件當前被分 配的第二序列號;
在將所述第二序列號發送給所述客戶端之後,記錄所述第二序列號為所述文件對應的 最近被分配的序列號。
[0015]另一方面,本發明實施例還提供了 一種數據存儲伺服器,所述數據存儲伺服器具體包括:
接收模塊,用於在客戶端需要向文件中寫入數據時,接收來自所述客戶端的用於請求 向所述文件中寫入數據的第二請求消息,且所述第二請求消息中攜帶第二序列號;其中,所 述第二序列號為位置提供伺服器在接收到所述客戶端的用於請求所述文件位置的第一請 求消息之後,利用所述文件對應的最近被分配的第一序列號所分配的所述文件對應的第二 序列號,所述第二序列號大於所述第一序列號或者所述第二序列號小於所述第一序列號; 處理模塊,用於在接收到所述第二請求消息之後,利用所述第二序列號確定允許所述 客戶端利用所述文件的位置信息向所述文件中寫入數據或者拒絕所述客戶端利用所述文 件的位置信息向所述文件中寫入數據。
[0016]所述處理模塊,具體用於獲得最近一個向所述文件中寫入數據的客戶端所分配到 的所述文件對應的第三序列號,並比較所述第二序列號與所述第三序列號之間的大小關 系;
在所述第二序列號大於所述第一序列號時,如果所述第二序列號大於等於所述第三序 列號,則允許所述客戶端利用所述文件的位置信息向所述文件中寫入數據;如果所述第二 序列號小於所述第三序列號,則拒絕所述客戶端利用所述文件的位置信息向所述文件中寫 入數據;
在所述第二序列號小於所述第一序列號時,如果所述第二序列號小於等於所述第三序 列號,則允許所述客戶端利用所述文件的位置信息向所述文件中寫入數據;如果所述第二 序列號大於所述第三序列號,則拒絕所述客戶端利用所述文件的位置信息向所述文件中寫 入數據。
[0017]與現有技術相比,本發明實施例具有以下優點:
通過應用本發明實施例的技術方案,客戶端在向數據存儲伺服器的文件中寫入數據 時,通過攜帶自身分配到的該文件對應的序列號,以通過搶佔式的序列號的方式,來保障只 有一個客戶端向文件中寫入數據,從而保障了數據安全;且與現有的租約管理機制相比,減 輕了伺服器的負載,提高了系統的性能,並且可以得到更快的響應速度,恢復延時很短。
【專利附圖】

【附圖說明】
[0018]圖1為本發明實施例提出的一種數據的寫入方法的流程示意圖;
圖2為本發明實施例的具體應用場景下所提出的一種數據的寫入方法的流程示意圖; 圖3為本發明實施例提出的一種客戶端的結構示意圖;
圖4為本發明實施例提出的一種位置提供伺服器的結構示意圖;
圖5為本發明實施例提出的一種數據存儲伺服器的結構示意圖。
【具體實施方式】
[0019]在現有的租約管理機制中,由於會頻繁的更新租約,且當客戶端出現故障之後需 要等待租約過期才能繼續向文件中寫入數據,因此,會存在元信息伺服器的負載過重、系統 的性能比較低、恢復的延時很大等問題。
[0020]為了克服這樣的缺陷,本發明實施例提出了一種數據的寫入方法、系統和裝置,以 通過搶佔式的序列號的方式來保障只有一個客戶端向文件中寫入數據,從而保障了數據安全;且與現有的租約管理機制相比,減輕了伺服器的負載,提高了系統的性能,並且可以得 到更快的響應速度,恢復延時很短。
[0021]如圖1所示,為本發明實施例提出的一種數據的寫入方法的流程示意圖,該方法 具體包括以下步驟:
步驟S101、在客戶端需要向文件中寫入數據時,該客戶端向位置提供伺服器發送用於 請求該文件位置的第一請求消息。
[0022]步驟S102、位置提供伺服器在接收到第一請求消息之後,確定該文件對應的最近 被分配的第一序列號,並分配該文件對應的第二序列號;其中,該第二序列號大於第一序列 號或者該第二序列號小於第一序列號;具體的,根據不同的分配策略,在得到第一序列號之 後,可以分配比第一序列號更大的值為第二序列號;或者,可以分配比第一序列號更小的值 為第二序列號。
[0023]本發明實施例中,在位置提供伺服器中需要為每個文件記錄其最近被分配的序列 號;在接收到第一請求消息之後,該位置提供伺服器通過自身記錄的信息可以確定該文件 對應的最近被分配的序列號(為方便描述,以第一序列號為例),並將該最近被分配的第一 序列號進行遞增或者遞減,以得到該文件當前被分配的序列號(為方便描述,以第二序列號 為例);進一步,該位置提供伺服器還需要記錄該第二序列號為該文件對應的最近被分配的 序列號。
[0024]例如,位置提供伺服器記錄文件I最近被分配的序列號為100,在收到客戶端I的 針對文件I的第一請求消息後,確定文件I對應的最近被分配的序列號為100,並分配序列 號101,以及記錄101為文件I對應的最近被分配的序列號;之後如果收到客戶端2的針對 文件I的第一請求消息,確定文件I對應的最近被分配的序列號為101,並分配序列號102, 以及記錄102為文件I對應的最近被分配的序列號;或者,在收到客戶端I的針對文件I的 第一請求消息後,確定文件I對應的最近被分配的序列號為100,並分配序列號99,以及記 錄99為文件I對應的最近被分配的序列號;之後如果收到客戶端2的針對文件I的第一請 求消息,確定文件I對應的最近被分配的序列號為99,並分配序列號98,以及記錄98為文 件I對應的最近被分配的序列號。
[0025]步驟S103、位置提供伺服器將該文件的位置信息和第二序列號(即當前分配的該 文件對應的第二序列號)發送給客戶端。
[0026]步驟S104、客戶端向數據存儲伺服器發送用於請求向該文件中寫入數據的第二請 求消息,且該第二請求消息中攜帶第二序列號。
[0027]步驟S105、數據存儲伺服器在接收到第二請求消息之後,利用第二請求消息中攜 帶的第二序列號確定允許客戶端利用該文件的位置信息向該文件中寫入數據或者拒絕客 戶端利用該文件的位置信息向該文件中寫入數據。
[0028]具體的,本步驟中,數據存儲伺服器獲得最近一個向該文件中寫入數據的客戶端 所分配到的該文件對應的第三序列號,並比較第二序列號與第三序列號之間的大小關係; 在第二序列號大於第一序列號時,如果第二序列號大於等於第三序列號,則數據存儲服務 器允許客戶端利用該文件的位置信息向該文件中寫入數據;如果第二序列號小於第三序列 號,則數據存儲伺服器拒絕客戶端利用該文件的位置信息向該文件中寫入數據;在第二序 列號小於第一序列號時,如果第二序列號小於等於第三序列號,則數據存儲伺服器允許客戶端利用該文件的位置信息向該文件中寫入數據;如果第二序列號大於第三序列號,則數 據存儲伺服器拒絕客戶端利用該文件的位置信息向該文件中寫入數據。
[0029]本發明實施例中,當有多個數據存儲伺服器同時存儲該文件時,則該客戶端還可 以利用文件的位置信息只向其中一個數據存儲伺服器的文件中寫入數據,並由該數據存儲 伺服器向其他數據存儲伺服器的文件中寫入數據;在此情況下,當其他數據存儲伺服器在 文件中寫入數據成功之後,其他數據存儲伺服器還需要向該數據存儲伺服器發送寫入成功 的響應信息,並由該數據存儲伺服器將客戶端所分配到的該文件對應的序列號發送給上述 位置提供伺服器;之後,該位置提供伺服器比較接收到的序列號以及自身記錄的該文件對 應的最近被分配的序列號;如果二者相同,則可以確認客戶端數據寫入成功;如果二者不 同,則可以確認客戶端數據寫入失敗。
[0030]與現有技術相比,本發明實施例具有以下優點:
通過應用本發明實施例的技術方案,客戶端在向數據存儲伺服器的文件中寫入數據 時,通過攜帶自身分配到的該文件對應的序列號,以通過搶佔式的序列號的方式,來保障只 有一個客戶端向文件中寫入數據,從而保障了數據安全;且與現有的租約管理機制相比,減 輕了伺服器的負載,提高了系統的性能,並且可以得到更快的響應速度,恢復延時很短。
[0031]下面結合具體的應用場景,對本發明實施例所提出的技術方案進行說明。
[0032]本應用場景下,該數據的寫入方法應用在多個客戶端可能同時向數據存儲伺服器 的同一個文件中寫入數據的場景,該場景包括但不限於開源的分布式文件系統HDFS,以該 HDFS場景為例進行後續說明,上述位置提供伺服器可以為元信息伺服器(MetaServer),上 述數據存儲伺服器可以為節點伺服器(NodeServer);且該MetaServer用於提供文件的位 置信息,該NodeServer用於存儲相關文件,並允許客戶端向各文件中寫入數據。
[0033]本發明實施例中,需要在MetaServer中對每個文件記錄一個序列號,在客戶端需 要向文件中寫入數據時,將MetaServer中記錄的該文件所對應的序列號遞增(或遞減),並 將遞增(或遞減)後的序列號返回給客戶端;之後,客戶端在向該文件中寫數據時需要帶上 這個序列號,且NodeServer在客戶端需要向該文件中寫入數據時,需要校驗來自客戶端的 序列號,以允許該客戶端向該文件中寫入數據或者拒絕該客戶端向該文件中寫入數據。
[0034]例如,如果同時有兩個客戶端向一個文件中寫入數據,客戶端A得到了一個序列 號A,客戶端B得到了一個序列號B ;在向客戶端返回遞增的序列號時,如果序列號B大於序 列號A,則客戶端B能夠向該文件中寫入數據,客戶端A不能向該文件中寫入數據;在向客 戶端返回遞減的序列號時,如果序列號B大於序列號A,則客戶端A能夠向該文件中寫入數 據,客戶端B不能向該文件中寫入數據;從而保證只有一個客戶端能夠向該文件中寫入數 據。
[0035]在該應用場景下,如圖2所示,該數據的寫入方法的流程包括以下步驟:
步驟S201,客戶端在需要向文件中寫入數據時,向MetaServer發送用於請求該文件位 置的請求消息。
[0036]在HDFS場景下,客戶端可以通過向Master(主設備)發送向文件中寫入數據的請求 (該請求中可以攜帶該文件的邏輯路徑信息),以得到該Master返回的文件標識(file id); 之後,客戶端向MetaServer發送用於請求該文件位置的請求消息,且在該請求消息中攜帶 該文件標識。[0037]步驟S202,MetaServer利用該文件標識確定該文件的位置信息,並利用該文件對 應的最近被分配的序列號分配該文件對應的當前序列號。
[0038]在一種實施方式中,可以分配比最近被分配的序列號更大的序列號為該文件對應 的當前序列號;在另一種實施方式中,可以分配比最近被分配的序列號更小的序列號為該 文件對應的當前序列號。為了方便說明,後續以分配比最近被分配的序列號更大的序列號 為該文件對應的當前序列號為例。
[0039]步驟S203, MetaServer將該文件的位置信息和當前序列號發送給客戶端。
[0040]步驟S204,客戶端向NodeServer發送用於請求向該文件中寫入數據的請求消息, 且該請求消息中攜帶該當前序列號。
[0041]步驟S205, NodeServer在收到該請求消息後,利用該當前序列號確定允許客戶端 利用該文件的位置信息向該文件中寫入數據或者拒絕客戶端利用該文件的位置信息向該 文件中寫入數據,具體的數據寫入過程在此不再贅述。
[0042]具體的,NodeServer獲得最近一個向該文件中寫入數據的客戶端所分配到的該文 件對應的序列號,並比較當前序列號與該獲得的序列號之間的大小關係;如果前者大於等 於後者,則允許客戶端利用該文件的位置信息向該文件中寫入數據;如果前者小於後者,則 拒絕客戶端利用該文件的位置信息向該文件中寫入數據。
[0043]本發明實施例中,當有多個NodeServer同時存儲該文件時,則該客戶端可以採 用流水線機制,只向其中的一個NodeServer的文件中寫入數據,並由該NodeServer向其 他NodeServer的文件中寫入數據;當其他NodeServer在文件中寫入數據成功之後,向該 NodeServer發送寫入成功的響應信息,並由該NodeServer將客戶端所分配到的該文件對 應的序列號、寫入數據的大小以及校驗和等信息發送給MetaServer ;由MetaServer比較接 收到的序列號以及自身記錄的該文件對應的最近被分配的序列號;如果二者相同,則可以 確認客戶端數據寫入成功;如果二者不同,則可以確認客戶端數據寫入失敗。
[0044]進一步的,如果確認客戶端數據寫入成功,則該MetaServer還可以向其中一個 NodeServer返回客戶端數據寫入成功的信息,並由該NodeServer向客戶端返回其數據寫 入成功的信息,從而完成數據寫入過程。
[0045]與現有技術相比,本發明實施例具有以下優點:
通過應用本發明實施例的技術方案,客戶端在向NodeServer的文件中寫入數據時,通 過攜帶自身分配到的該文件對應的序列號,以通過搶佔式的序列號的方式,來保障只有一 個客戶端向文件中寫入數據,從而保障了數據安全;且與現有的租約管理機制相比,減輕了 MetaServer的負載,提高了系統的性能,並且可以得到更快的響應速度,恢復延時很短。
[0046]基於與上述方法同樣的發明構思,本發明實施例還提供了一種數據的寫入系統, 所述系統具體包括:
客戶端,用於在需要向文件中寫入數據時,向位置提供伺服器發送用於請求所述文件 位置的第一請求消息;以及,在接收到所述文件的位置信息和第二序列號之後,向數據存儲 伺服器發送用於請求向所述文件中寫入數據的第二請求消息,且所述第二請求消息中攜帶 所述第二序列號;
位置提供伺服器,用於在接收到所述第一請求消息之後,確定所述文件對應的最近被 分配的第一序列號,並分配所述文件對應的第二序列號,所述第二序列號大於所述第一序列號或者所述第二序列號小於所述第一序列號;以及,將所述文件的位置信息和所述第二 序列號發送給所述客戶端;
數據存儲伺服器,用於在接收到所述第二請求消息之後,利用所述第二序列號確定允 許所述客戶端利用所述文件的位置信息向所述文件中寫入數據或者拒絕所述客戶端利用 所述文件的位置信息向所述文件中寫入數據。
[0047]進一步的,所述數據存儲伺服器,具體用於獲得最近一個向所述文件中寫入數據 的客戶端所分配到的所述文件對應的第三序列號,並比較所述第二序列號與所述第三序列 號之間的大小關係;
在所述第二序列號大於所述第一序列號時,如果所述第二序列號大於等於所述第三序 列號,則允許所述客戶端利用所述文件的位置信息向所述文件中寫入數據;如果所述第二 序列號小於所述第三序列號,則拒絕所述客戶端利用所述文件的位置信息向所述文件中寫 入數據;
在所述第二序列號小於所述第一序列號時,如果所述第二序列號小於等於所述第三序 列號,則允許所述客戶端利用所述文件的位置信息向所述文件中寫入數據;如果所述第二 序列號大於所述第三序列號,則拒絕所述客戶端利用所述文件的位置信息向所述文件中寫 入數據。
[0048]與現有技術相比,本發明實施例具有以下優點:
通過應用本發明實施例的技術方案,客戶端在向數據存儲伺服器的文件中寫入數據 時,通過攜帶自身分配到的該文件對應的序列號,以通過搶佔式的序列號的方式,來保障只 有一個客戶端向文件中寫入數據,從而保障了數據安全;且與現有的租約管理機制相比,減 輕了伺服器的負載,提高了系統的性能,並且可以得到更快的響應速度,恢復延時很短。
[0049]基於與上述方法同樣的發明構思,本發明實施例還提供了一種客戶端,具體的結 構示意圖如圖3所示,所述客戶端具體包括:
第一發送模塊31,用於在需要向文件中寫入數據時,向位置提供伺服器發送用於請求 所述文件位置的第一請求消息;
接收模塊32,用於在所述位置提供伺服器利用所述文件對應的最近被分配的第一序列 號分配所述文件對應的第二序列號之後,接收所述位置提供伺服器返回的所述文件的位置 信息和所述第二序列號;
第二發送模塊33,用於向數據存儲伺服器發送用於請求向所述文件中寫入數據的第二 請求消息,且所述第二請求消息中攜帶所述第二序列號;
由所述數據存儲伺服器利用所述第二序列號確定允許所述客戶端利用所述文件的位 置信息向所述文件中寫入數據或者拒絕所述客戶端利用所述文件的位置信息向所述文件 中寫入數據。
[0050]與現有技術相比,本發明實施例具有以下優點:
通過應用本發明實施例的技術方案,客戶端在向數據存儲伺服器的文件中寫入數據 時,通過攜帶自身分配到的該文件對應的序列號,以通過搶佔式的序列號的方式,來保障只 有一個客戶端向文件中寫入數據,從而保障了數據安全;且與現有的租約管理機制相比,減 輕了伺服器的負載,提高了系統的性能,並且可以得到更快的響應速度,恢復延時很短。
[0051]基於與上述方法同樣的發明構思,本發明實施例還提供了一種位置提供伺服器,具體的結構示意圖如圖4所示,所述位置提供伺服器具體包括:
接收模塊41,用於在客戶端需要向文件中寫入數據時,接收來自所述客戶端的用於請 求所述文件位置的第一請求消息;
處理模塊42,用於在接收到所述第一請求消息之後,確定所述文件對應的最近被分配 的第一序列號,並分配所述文件對應的第二序列號,所述第二序列號大於所述第一序列號 或者所述第二序列號小於所述第一序列號;
發送模塊43,用於將所述文件的位置信息和所述第二序列號發送給所述客戶端,由所 述客戶端向數據存儲伺服器發送用於請求向所述文件中寫入數據的攜帶所述第二序列號 的第二請求消息,由所述數據存儲伺服器利用所述第二序列號確定允許所述客戶端利用所 述文件的位置信息向所述文件中寫入數據或者拒絕所述客戶端利用所述文件的位置信息 向所述文件中寫入數據。
[0052]所述處理模塊42,進一步用於為每個文件記錄最近被分配的序列號;
在接收到所述第一請求消息之後,通過自身記錄的信息確定所述文件對應的最近被分 配的第一序列號,並將所述最近被分配的第一序列號遞增或遞減,得到所述文件當前被分 配的第二序列號;
在將所述第二序列號發送給所述客戶端之後,記錄所述第二序列號為所述文件對應的 最近被分配的序列號。
[0053]與現有技術相比,本發明實施例具有以下優點:
通過應用本發明實施例的技術方案,客戶端在向數據存儲伺服器的文件中寫入數據 時,通過攜帶自身分配到的該文件對應的序列號,以通過搶佔式的序列號的方式,來保障只 有一個客戶端向文件中寫入數據,從而保障了數據安全;且與現有的租約管理機制相比,減 輕了伺服器的負載,提高了系統的性能,並且可以得到更快的響應速度,恢復延時很短。
[0054]基於與上述方法同樣的發明構思,本發明實施例還提供了一種數據存儲伺服器, 具體的結構示意圖如圖5所示,所述數據存儲伺服器具體包括:
接收模塊51,用於在客戶端需要向文件中寫入數據時,接收來自所述客戶端的用於請 求向所述文件中寫入數據的第二請求消息,且所述第二請求消息中攜帶第二序列號;其中, 所述第二序列號為位置提供伺服器在接收到所述客戶端的用於請求所述文件位置的第一 請求消息之後,利用所述文件對應的最近被分配的第一序列號所分配的所述文件對應的第 二序列號,所述第二序列號大於所述第一序列號或者所述第二序列號小於所述第一序列 號;
處理模塊52,用於在接收到所述第二請求消息之後,利用所述第二序列號確定允許所 述客戶端利用所述文件的位置信息向所述文件中寫入數據或者拒絕所述客戶端利用所述 文件的位置信息向所述文件中寫入數據。
[0055]所述處理模塊52,具體用於獲得最近一個向所述文件中寫入數據的客戶端所分配 到的所述文件對應的第三序列號,並比較所述第二序列號與所述第三序列號之間的大小關 系;
在所述第二序列號大於所述第一序列號時,如果所述第二序列號大於等於所述第三序 列號,則允許所述客戶端利用所述文件的位置信息向所述文件中寫入數據;如果所述第二 序列號小於所述第三序列號,則拒絕所述客戶端利用所述文件的位置信息向所述文件中寫入數據;
在所述第二序列號小於所述第一序列號時,如果所述第二序列號小於等於所述第三序 列號,則允許所述客戶端利用所述文件的位置信息向所述文件中寫入數據;如果所述第二 序列號大於所述第三序列號,則拒絕所述客戶端利用所述文件的位置信息向所述文件中寫 入數據。
[0056]與現有技術相比,本發明實施例具有以下優點:
通過應用本發明實施例的技術方案,客戶端在向數據存儲伺服器的文件中寫入數據 時,通過攜帶自身分配到的該文件對應的序列號,以通過搶佔式的序列號的方式,來保障只 有一個客戶端向文件中寫入數據,從而保障了數據安全;且與現有的租約管理機制相比,減 輕了伺服器的負載,提高了系統的性能,並且可以得到更快的響應速度,恢復延時很短。
[0057]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發明實施例 可以通過硬體實現,也可以藉助軟體加必要的通用硬體平臺的方式來實現。基於這樣的理 解,本發明實施例的技術方案可以以軟體產品的形式體現出來,該軟體產品可以存儲在一 個非易失性存儲介質(可以是⑶-ROM,U盤,移動硬碟等)中,包括若干指令用以使得一臺計 算機設備(可以是個人計算機,伺服器,或網絡設備等)執行本發明實施例各個實施場景所 述的方法。
[0058]本領域技術人員可以理解附圖只是一個優選實施場景的示意圖,附圖中的模塊或 流程並不一定是實施本發明實施例所必須的。
[0059]本領域技術人員可以理解實施場景中的裝置中的模塊可以按照實施場景描述進 行分布於實施場景的裝置中,也可以進行相應變化位於不同於本實施場景的一個或多個裝 置中。上述實施場景的模塊可以合併為一個模塊,也可以進一步拆分成多個子模塊。
[0060]上述本發明實施例序號僅僅為了描述,不代表實施場景的優劣。
[0061]以上公開的僅為本發明實施例的幾個具體實施場景,但是,本發明實施例並非局 限於此,任何本領域的技術人員能思之的變化都應落入本發明實施例的業務限制範圍。
【權利要求】
1.一種數據的寫入方法,其特徵在於,所述方法具體包括:在客戶端需要向文件中寫入數據時,所述客戶端向位置提供伺服器發送用於請求所述文件位置的第一請求消息;所述位置提供伺服器在接收到所述第一請求消息之後,確定所述文件對應的最近被分配的第一序列號,並分配所述文件對應的第二序列號,所述第二序列號大於所述第一序列號或者所述第二序列號小於所述第一序列號;以及,將所述文件的位置信息和所述第二序列號發送給所述客戶端;所述客戶端向數據存儲伺服器發送用於請求向所述文件中寫入數據的第二請求消息, 且所述第二請求消息中攜帶所述第二序列號;所述數據存儲伺服器在接收到所述第二請求消息之後,利用所述第二序列號確定允許所述客戶端利用所述文件的位置信息向所述文件中寫入數據或者拒絕所述客戶端利用所述文件的位置信息向所述文件中寫入數據。
2.如權利要求1所述的方法,其特徵在於,所述數據存儲伺服器利用所述第二序列號確定允許所述客戶端利用所述文件的位置信息向所述文件中寫入數據或者拒絕所述客戶端利用所述文件的位置信息向所述文件中寫入數據,具體包括:所述數據存儲伺服器獲得最近一個向所述文件中寫入數據的客戶端所分配到的所述文件對應的第三序列號,並比較所述第二序列號與所述第三序列號之間的大小關係;在所述第二序列號大於所述第一序列號時,如果所述第二序列號大於等於所述第三序列號,則所述數據存儲伺服器允許所述客戶端利用所述文件的位置信息向所述文件中寫入數據;如果所述第二序列號小於所述第三序列號,則所述數據存儲伺服器拒絕所述客戶端利用所述文件的位置信息向所述文件中寫入數據;在所述第二序列號小於所述第一序列號時,如果所述第二序列號小於等於所述第三序列號,則所述數據存儲伺服器允許所述客戶端利用所述文件的位置信息向所述文件中寫入數據;如果所述第二序列號大於所述第三序列號,則所述數據存儲伺服器拒絕所述客戶端利用所述文件的位置信息向所述文件中寫入數據。
3.如權利要求1或2所述的方法,其特徵在於,該方法進一步包括:所述位置提供伺服器為每個文件記錄最近被分配的序列號;在接收到所述第一請求消息之後,所述位置提供伺服器通過自身記錄的信息確定所述文件對應的最近被分配的第一序列號,並將所述最近被分配的第一序列號遞增或遞減,得到所述文件當前被分配的第二序列號;在將所述第二序列號發送給所述客戶端之後,所述位置提供伺服器記錄所述第二序列號為所述文件對應的最近被分配的序列號。
4.如權利要求3所述的方法,其特徵在於,該方法進一步包括:當多個數據存儲伺服器同時存儲所述文件時,所述客戶端利用所述文件的位置信息向其中一個數據存儲伺服器的所述文件中寫入數據,並由該數據存儲伺服器向其他數據存儲伺服器的所述文件中寫入數據;當其他數據存儲伺服器在文件中寫入數據成功之後,所述其他數據存儲伺服器向該數據存儲伺服器發送寫入成功的響應,並由該數據存儲伺服器將所述客戶端所分配到的所述文件對應的序列號發送給所述位置提供伺服器;所述位置提供伺服器比較接收到的序列號以及自身記錄的所述文件對應的最近被分配的序列號;如果二者相同,則確認所述客戶端數據寫入成功;如果二者不同,則確認所述客戶端數據寫入失敗。
5.一種數據的寫入系統,其特徵在於,所述系統具體包括:客戶端,用於在需要向文件中寫入數據時,向位置提供伺服器發送用於請求所述文件位置的第一請求消息;以及,在接收到所述文件的位置信息和第二序列號之後,向數據存儲伺服器發送用於請求向所述文件中寫入數據的第二請求消息,且所述第二請求消息中攜帶所述第二序列號;位置提供伺服器,用於在接收到所述第一請求消息之後,確定所述文件對應的最近被分配的第一序列號,並分配所述文件對應的第二序列號,所述第二序列號大於所述第一序列號或者所述第二序列號小於所述第一序列號;以及,將所述文件的位置信息和所述第二序列號發送給所述客戶端;數據存儲伺服器,用於在接收到所述第二請求消息之後,利用所述第二序列號確定允許所述客戶端利用所述文件的位置信息向所述文件中寫入數據或者拒絕所述客戶端利用所述文件的位置信息向所述文件中寫入數據。
6.如權利要求5所述的系統,其特徵在於,所述數據存儲伺服器,具體用於獲得最近一個向所述文件中寫入數據的客戶端所分配到的所述文件對應的第三序列號,並比較所述第二序列號與所述第三序列號之間的大小關係;在所述第二序列號大於所述第一序列號時,如果所述第二序列號大於等於所述第三序列號,則允許所述客戶端利用所述文件的位置信息向所述文件中寫入數據;如果所述 第二序列號小於所述第三序列號,則拒絕所述客戶端利用所述文件的位置信息向所述文件中寫入數據;在所述第二序列號小於所述第一序列號時,如果所述第二序列號小於等於所述第三序列號,則允許所述客戶端利用所述文件的位置信息向所述文件中寫入數據;如果所述第二序列號大於所述第三序列號,則拒絕所述客戶端利用所述文件的位置信息向所述文件中寫入數據。
7.一種客戶端,其特徵在於,所述客戶端具體包括:第一發送模塊,用於在需要向文件中寫入數據時,向位置提供伺服器發送用於請求所述文件位置的第一請求消息;接收模塊,用於在所述位置提供伺服器利用所述文件對應的最近被分配的第一序列號分配所述文件對應的第二序列號之後,接收所述位置提供伺服器返回的所述文件的位置信息和所述第二序列號;第二發送模塊,用於向數據存儲伺服器發送用於請求向所述文件中寫入數據的第二請求消息,且所述第二請求消息中攜帶所述第二序列號;由所述數據存儲伺服器利用所述第二序列號確定允許所述客戶端利用所述文件的位置信息向所述文件中寫入數據或者拒絕所述客戶端利用所述文件的位置信息向所述文件中寫入數據。
8.—種位置提供伺服器,其特徵在於,所述位置提供伺服器具體包括:接收模塊,用於在客戶端需要向文件中寫入數據時,接收來自所述客戶端的用於請求所述文件位置的第一請求消息;處理模塊,用於在接收到所述第一請求消息之後,確定所述文件對應的最近被分配的第一序列號,並分配所述文件對應的第二序列號,所述第二序列號大於所述第一序列號或者所述第二序列號小於所述第一序列號;發送模塊,用於將所述文件的位置信息和所述第二序列號發送給所述客戶端,由所述客戶端向數據存儲伺服器發送用於請求向所述文件中寫入數據的攜帶所述第二序列號的第二請求消息,並由所述數據存儲伺服器利用所述第二序列號確定允許所述客戶端利用所述文件的位置信息向所述文件中寫入數據或者拒絕所述客戶端利用所述文件的位置信息向所述文件中寫入數據。
9.如權利要求8所述的位置提供伺服器,其特徵在於,所述處理模塊,進一步用於為每個文件記錄最近被分配的序列號;在接收到所述第一請求消息之後,通過自身記錄的信息確定所述文件對應的最近被分配的第一序列號,並將所述最近被分配的第一序列號遞增或遞減,得到所述文件當前被分配的第二序列號;在將所述第二序列號發送給所述客戶端之後,記錄所述第二序列號為所述文件對應的最近被分配的序列號。
10.一種數據存儲伺服器,其特徵在於,所述數據存儲伺服器具體包括:接收模塊,用於在客戶端 需要向文件中寫入數據時,接收來自所述客戶端的用於請求向所述文件中寫入數據的第二請求消息,且所述第二請求消息中攜帶第二序列號;其中,所述第二序列號為位置提供伺服器在接收到所述客戶端的用於請求所述文件位置的第一請求消息之後,利用所述文件對應的最近被分配的第一序列號所分配的所述文件對應的第二序列號,所述第二序列號大於所述第一序列號或者所述第二序列號小於所述第一序列號;處理模塊,用於在接收到所述第二請求消息之後,利用所述第二序列號確定允許所述客戶端利用所述文件的位置信息向所述文件中寫入數據或者拒絕所述客戶端利用所述文件的位置信息向所述文件中寫入數據。
11.如權利要求10所述的數據存儲伺服器,其特徵在於,所述處理模塊,具體用於獲得最近一個向所述文件中寫入數據的客戶端所分配到的所述文件對應的第三序列號,並比較所述第二序列號與所述第三序列號之間的大小關係;在所述第二序列號大於所述第一序列號時,如果所述第二序列號大於等於所述第三序列號,則允許所述客戶端利用所述文件的位置信息向所述文件中寫入數據;如果所述第二序列號小於所述第三序列號,則拒絕所述客戶端利用所述文件的位置信息向所述文件中寫入數據;在所述第二序列號小於所述第一序列號時,如果所述第二序列號小於等於所述第三序列號,則允許所述客戶端利用所述文件的位置信息向所述文件中寫入數據;如果所述第二序列號大於所述第三序列號,則拒絕所述客戶端利用所述文件的位置信息向所述文件中寫入數據。
【文檔編號】H04L29/06GK103581122SQ201210259170
【公開日】2014年2月12日 申請日期:2012年7月25日 優先權日:2012年7月25日
【發明者】李銳, 伍海君, 朱會燦, 鄧大付, 鄒永強, 董乘宇, 闕太富, 王磊, 楊紹鵬, 張書鑫, 趙大勇, 劉暢, 陳曉東, 張銀鋒 申請人:騰訊科技(深圳)有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀