[發明專利]支持并發的客戶端與服務器端的文檔操作同步方法有效
| 申請號: | 201310582305.3 | 申請日: | 2013-11-18 |
| 公開(公告)號: | CN103607451B | 公開(公告)日: | 2017-02-15 |
| 發明(設計)人: | 黃君洲 | 申請(專利權)人: | 上海愛數信息技術股份有限公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08 |
| 代理公司: | 上海科盛知識產權代理有限公司31225 | 代理人: | 趙志遠 |
| 地址: | 201112 上海市閔行*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 支持 并發 客戶端 服務器端 文檔 操作 同步 方法 | ||
技術領域
本發明涉及一種分布式文件管理系統的同步技術,尤其是涉及一種支持并發的客戶端與服務器端的文檔操作同步方法。
背景技術
在一個傳統的分布式文件管理系統中,為確保文檔操作的一致性,在客戶端的實現中,從某個特定的客戶端到云存儲平臺的文檔操作同步通常采用單一隊列的模型來管理。所有待同步的文檔操作都首先進入一個隊列進行排隊,按照先到先處理的機制,逐個同步隊列中的文檔操作,如圖1所示。
這種單一隊列的文檔操作同步模型實現簡單,能夠確保操作的一致性,但存在以下不足:
不能實現并發同步,傳輸效率低;
如果中間有命令執行失敗,通常的做法是無限期重試直到成功為止,導致隊列堵塞;
如果隊列中有操作耗時較長,例如大文件的傳輸,后續命令只能等待,導致隊列堵塞;
以上問題,可能導致從客戶端到云存儲平臺文檔操作的同步效率較低,有些操作不能及時完成,造成客戶端和服務器端的同步延遲,進而影響用戶體驗。
發明內容
本發明的目的就是為了克服上述現有技術存在的缺陷而提供一種支持并發的客戶端與服務器端的文檔操作同步方法;提高傳輸效率,能夠實現文件上傳的有限量的并發;將大文件和小文件區分處理,以避免大文件上傳時間太長從而影響小文件的同步;解決隊列堵塞的問題,使得隊列中不會出現由于個別命令執行失敗而導致其它毫無關聯的命令長時間等待。
本發明的目的可以通過以下技術方案來實現:
一種支持并發的客戶端與服務器端的文檔操作同步方法,其特征在于,包括以下步驟:
1)將文檔操作命令隊列按照類型分為三種:普通命令隊列NCQ、大數據上傳隊列BDQ和小數據上傳隊列SDQ,其中NCQ中包含所有待處理的文檔操作命令,BDQ中包含所有的大數據量的文件的上傳操作,SDQ中包含所有的小數據量的文件的上傳操作;
2)通過上傳管理器Upload?Manager來管理整個文檔操作的上傳,Upload?Manager管理一個上傳代理池Upload?Agent?Pool,上傳代理池中包括NCQ?Agent、SDQ?Agent和BDQ?Agent,通過調用這些代理來完成一個控制命令或者數據上傳命令;其中文檔上傳隊列的管理包括以下步驟:
(1)上傳管理器Upload?Manager進行初始化,包括初始化普通命令隊列NCQ隊列、大數據上傳隊列BDQ隊列、小數據上傳隊列SDQ隊列、NCQAgent、SDQAgent和BDQ?Agent;
(2)Upload?Manager執行邏輯,包括檢查是否有應用層的請求、輪詢NCQ隊列、輪詢SDQ隊列和輪詢BDQ隊列。
所述的NCQ隊列、BDQ隊列和SDQ隊列分別如下:
NCQ隊列包含所有待同步的文檔操作命令;
BDQ隊列包含所有的大數據量文件的上傳操作;
SDQ隊列包含所有的小數據量文件的上傳操作;
其中大數據量及小數據量的定義根據用戶環境設置,即文件大小大于閾值的設置為大數據量文件,小于或者等于閾值的設置為小數據量文件;
客戶端產生的所有的文檔操作命令,首先添加到NCQ隊列的末尾,若該命令為文件上傳操作,則同時根據文件的大小,在相應的BDQ隊列或者SDQ隊列中添加一條文件上傳命令,并建立和NCQ隊列中相應命令的關聯。
所述的NCQ隊列采用順序執行方式,BDQ隊列和SDQ隊列采用并發執行方式。
所述的NCQ?Agent在NCQ隊列中有命令需要執行時,執行隊列中的命令;SDQAgent和BDQAgent分別用于執行SDQ隊列和BDQ隊列的數據上傳,當SDQ隊列中有命令等待執行時,分配處于空閑狀態的SDQ?Agent完成該同步指令,如果沒有空閑的SDQ?Agent,則需要等待正在工作的SDQ?Agent變成空閑狀態;當BDQ隊列中有命令等待執行時,分配處于空閑狀態的BDQ?Agent完成該同步指令,如果沒有空閑的BDQ?Agent,則需要等待正在工作的BDQAgent變成空閑狀態。
所述的Upload?Manager檢查是否有應用層的請求具體為:
若有操作需要添加到同步隊列,則首先將該命令添加到NCQ隊列的末尾;
若有操作需要取消,則將NCQ隊列中該操作對應的命令刪除;
若為查詢操作,則從隊列中獲取對應的命令的狀態,回復給上層應用。
所述的Upload?Manager輪詢NCQ隊列具體為:
1)獲取當前NCQ隊列的隊首命令;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海愛數信息技術股份有限公司,未經上海愛數信息技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310582305.3/2.html,轉載請聲明來源鉆瓜專利網。





