麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

調用分布式文件系統的方法和裝置與流程

文檔序號:11154651閱讀:494來源:國知局
調用分布式文件系統的方法和裝置與制造工藝

本申請涉及計算機技術領域,具體涉及互聯網技術領域,尤其涉及一種調用分布式文件系統的方法和裝置。



背景技術:

基于分布式文件系統運行的分布式文件系統,需要解決高可用相關的所有,例如滿足包括選主、主角色通知、柵欄(Fence)機制、數據流的復制和持久化、數據流的緊置化(Compaction)等需求。

目前的分布式文件系統,通常采用以下兩種高可用設計方案:

1、組合式方案:例如,選主用分布式服務框架(ZooKeeper)方案、基于心跳的方案或者其它自主設計的方案;Fence采用第三方系統或者自主設計的方案;數據流復制采用自主設計的復制方案等。

2、整體方案,例如分布式一致性協議(Raft),基于Raft協議實現各種庫,Raft的日志流存儲在本地。

然而,上述的兩種高可用涉及方案,其中組合式方案常常依賴第三方,甚至同時依賴多個第三方,系統中存在著各種自主設計的方案,系統整體架構復雜,穩定性風險高,并且難以演化;整體方案中基于Raft協議實現的分布式文件系統補建副本非常緩慢,很難實現一個快速的負載均衡機制,尤其是在全局范圍內難以實現數據流的分裂與合并,難以和分布式文件系統協作。例如適合于非結構化數據存儲的數據庫(HBase),如果數據流使用了Raft協議,那么如果仍然基于分布式文件系統,會造成大量的額外流量開銷,如果不再基于分布式文件系統,則又會失去了HBase節點的無狀態特性。



技術實現要素:

本申請的目的在于提出一種改進的調用分布式文件系統的方法和裝置,來解決以上背景技術部分提到的技術問題。

一次方面,本申請提供了一種調用分布式文件系統的方法,所述方法包括:基于接收的用戶端的會話請求,建立新會話;向分布式文件系統的管理者發送首次加鎖請求,所述首次加鎖請求用于請求對租約目錄加鎖;響應于接收到對所述首次加鎖請求的響應為加鎖成功,向所述管理者發送在租約目錄中新建子目錄的請求,所述子目錄以所述新會話的IP地址和端口命名;響應于接收到對所述新建子目錄的請求的響應為新建成功,將所述新會話標記為主會話。

在一些實施例中,所述方法還包括以下任意一項或多項:在所述主會話存活期間,定期向所述管理者發送更新所述租約目錄的修改時間戳的請求;和響應于所述主會話關閉,向所述管理者發送刪除所述租約目錄中的子目錄并解鎖所述租約目錄的請求。

在一些實施例中,響應于接收到對所述首次加鎖請求的響應為加鎖成功,向所述管理者發送在租約目錄中新建子目錄的請求包括:響應于接收到對所述首次加鎖請求的響應為加鎖成功,向所述管理者發送首次查詢請求,所述首次查詢請求用于查詢租約目錄中是否存在以其它會話的IP地址和端口命名的子目錄;響應于接收到對所述首次查詢請求的響應為存在,向所述管理者發送刪除請求,所述刪除請求用于刪除所述租約目錄中的子目錄;響應于接收到對所述首次查詢請求的響應為不存在或接收到對所述刪除請求的響應為刪除成功,向所述管理者發送在租約目錄中新建子目錄的請求。

在一些實施例中,所述方法還包括:響應于接收到對首次加鎖請求的響應為加鎖失敗,間隔預定時長檢查所述修改時間戳距當前時間的時長是否超過預設時長;響應于所述修改時間戳距當前時間的時長超過預設時長,向所述管理者發送再次加鎖請求,所述再次加鎖請求用于請求對所述租約目錄加鎖;響應于接收到對所述再次加鎖請求的響應為加鎖成功,執行所述向所述管理者發送首次查詢請求。

在一些實施例中,所述方法還包括:響應于接收到對所述再次加鎖請求的響應為加鎖失敗,向所述管理者發送再次查詢請求,所述再次查詢請求用于查詢租約目錄中是否存在以其它會話的IP地址和端口命名的子目錄;響應于接收到對再次查詢請求的響應為存在,執行所述間隔預定時長檢查所述修改時間戳距當前時間的時長是否超過預設時長。

在一些實施例中,所述方法還包括:響應于接收到對再次查詢請求的響應為不存在,執行所述向分布式文件系統的管理者發送加鎖租約目錄的首次加鎖請求。

在一些實施例中,所述方法還包括以下任意一項或多項:響應于接收到對所述新建子目錄請求的響應為新建失敗,執行所述間隔預定時長檢查所述修改時間戳距當前時間的時長是否超過預設時長;響應于接收到對所述刪除請求的響應為刪除失敗,執行所述間隔預定時長檢查所述修改時間戳距當前時間的時長是否超過預設時長;以及響應于所述修改時間戳距當前時間的時長未超過預設時長,執行所述間隔預定時長檢查所述修改時間戳距當前時間的時長是否超過預設時長。

在一些實施例中,所述方法還包括:響應于接收生成日志請求,生成每條數據流的每個日志的日志序列號;響應于切換主會話或日志文件大小達到預定字節,新創建日志文件;以日志文件中最小的日志序列號命名創建的日志文件;將所述日志序列號、日志的長度、校驗信息以及寫入的會話的IP地址添加至創建的日志文件的頭部信息;將日志添加至創建的日志文件中直至日志文件大小達到預定字節。

在一些實施例中,所述方法還包括:響應于接收生成快照請求,間隔預定時間觸發快照;將所有日志序列號均小于快照中日志序列號的日志文件刪除。

在一些實施例中,所述方法還包括:接收回放日志請求;根據所述日志序列號,回放日志。

第二方面,本申請提供了一種調用分布式文件系統的裝置,所述裝置包括:會話建立單元,用于基于接收的用戶端的會話請求,建立新會話;首次加鎖請求單元,用于向分布式文件系統的管理者發送首次加鎖請求,所述首次加鎖請求用于請求對租約目錄加鎖;新建子目錄請求單元,用于響應于接收到對所述首次加鎖請求的響應為加鎖成功,向所述管理者發送在租約目錄中新建子目錄的請求,所述子目錄以所述新會話的IP地址和端口命名;主會話標記單元,用于響應于接收到對所述新建子目錄的請求的響應為新建成功,將所述新會話標記為主會話。

在一些實施例中,所述裝置還包括以下任意一項或多項:修改時間戳單元,用于在所述主會話存活期間,定期向所述管理者發送更新所述租約目錄的修改時間戳的請求;和刪除及加鎖單元,用于響應于所述主會話關閉,向所述管理者發送刪除所述租約目錄中的子目錄并解鎖所述租約目錄的請求。

在一些實施例中,所述新建子目錄請求單元包括:首次查詢請求子單元,用于響應于接收到對所述首次加鎖請求的響應為加鎖成功,向所述管理者發送首次查詢請求,所述首次查詢請求用于查詢租約目錄中是否存在以其它會話的IP地址和端口命名的子目錄;刪除子目錄子單元,用于響應于接收到對所述首次查詢請求的響應為存在,向所述管理者發送刪除請求,所述刪除請求用于刪除所述租約目錄中的子目錄;新建子目錄子單元,用于響應于接收到對所述首次查詢請求的響應為不存在或接收到對所述刪除請求的響應為刪除成功,向所述管理者發送在租約目錄中新建子目錄的請求。

在一些實施例中,所述裝置還包括:時長檢查單元,用于響應于接收到對首次加鎖請求的響應為加鎖失敗,間隔預定時長檢查所述修改時間戳距當前時間的時長是否超過預設時長;再次加鎖請求單元,用于響應于所述修改時間戳距當前時間的時長超過預設時長,向所述管理者發送再次加鎖請求,所述再次加鎖請求用于請求對所述租約目錄加鎖;所述子目錄查詢子單元進一步用于:響應于接收到對所述再次加鎖請求的響應為加鎖成功,執行所述向所述管理者發送首次查詢請求。

在一些實施例中,所述裝置還包括:再次查詢請求單元,用于響應于接收到對所述再次加鎖請求的響應為加鎖失敗,向所述管理者發送再次查詢請求,所述再次查詢請求用于查詢租約目錄中是否存在以其它會話的IP地址和端口命名的子目錄;所述時長檢查單元進一步用于:響應于接收到對再次查詢請求的響應為存在,執行所述間隔預定時長檢查所述修改時間戳距當前時間的時長是否超過預設時長。

在一些實施例中,所述裝置還包括:所述首次加鎖請求單元進一步用于:響應于接收到對再次查詢請求的響應為不存在,執行所述向分布式文件系統的管理者發送加鎖租約目錄的首次加鎖請求。

在一些實施例中,所述裝置還包括以下任意一項或多項:所述時長檢查單元進一步用于:響應于接收到對所述新建子目錄請求的響應為新建失敗,執行所述間隔預定時長檢查所述修改時間戳距當前時間的時長是否超過預設時長;所述時長檢查單元進一步用于:響應于接收到對所述刪除請求的響應為刪除失敗,執行所述間隔預定時長檢查所述修改時間戳距當前時間的時長是否超過預設時長;以及所述時長檢查單元進一步用于:響應于所述修改時間戳距當前時間的時長未超過預設時長,執行所述間隔預定時長檢查所述修改時間戳距當前時間的時長是否超過預設時長。

在一些實施例中,所述裝置還包括:日志請求接收單元,用于接收生成日志請求;序列號生成單元,用于生成每條數據流的每個日志的日志序列號;文件創建單元,用于響應于切換主會話或日志文件大小達到預定字節,新創建日志文件;文件命名單元,用于以日志文件中最小的日志序列號命名創建的日志文件;信息添加單元,用于將所述日志序列號、日志的長度、校驗信息以及寫入的會話的IP地址添加至創建的日志文件的頭部信息;日志添加單元,用于將日志添加至創建的日志文件中直至日志文件大小達到預定字節。

在一些實施例中,所述裝置還包括:快照請求接收單元,用于接收生成快照請求;快照觸發單元,用于間隔預定時間觸發快照;文件刪除單元,用于將所有日志序列號均小于快照中日志序列號的日志文件刪除。

在一些實施例中,所述裝置還包括:回放請求接收單元,用于接收回放日志請求;日志回放單元,用于根據所述日志序列號,回放日志。

本申請提供的調用分布式文件系統的方法和裝置,首先基于接收的用戶端的會話請求,建立新會話;之后向分布式文件系統的管理者發送加鎖租約目錄的首次加鎖請求;之后響應于接收到對應首次加鎖請求的一次加鎖成功的響應,向所述管理者發送用于在租約目錄中新建以所述新會話的IP地址和端口命名的子目錄的新建子目錄請求;最后響應于接收到對應所述新建子目錄請求的新建子目錄成功的響應,將所述新會話標記為主會話,從而實現了新會話的選主,并對主會話進行鎖定,有效提高了調用分布式文件系統的健壯性。另外,該調用分布式文件系統的方法和裝置簡化了系統架構,不再需要依賴任何第三方機制/系統,提升了調用分布式文件系統的方法和裝置的穩定性和可演化性,易實現無狀態化,從而很容易實現全局的快速負載均衡機制和分片分裂與合并機制等。

附圖說明

通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本申請的其它特征、目的和優點將會變得更明顯:

圖1是本申請可以應用于其中的示例性系統架構圖;

圖2是根據本申請的調用分布式文件系統的方法的一個實施例的示意性流程圖;

圖3是根據本申請的調用分布式文件系統的方法的另一個實施例的示意性流程圖;

圖4是根據本申請的調用分布式文件系統的方法的一個實施例的應用場景;

圖5是根據本申請的調用分布式文件系統的裝置的一個實施例的示例性結構圖;

圖6是適于用來實現本申請實施例的終端設備或服務器的計算機系統的結構示意圖。

具體實施方式

下面結合附圖和實施例對本申請作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋相關發明,而非對該發明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關發明相關的部分。

需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結合實施例來詳細說明本申請。

圖1示出了可以應用本申請的調用分布式文件系統的方法或調用分布式文件系統的裝置的實施例的示例性系統架構100。

如圖1所示,系統架構100可以包括終端設備101、102、103,網絡104和服務器105、106。網絡104用以在終端設備101、102、103和服務器105、106之間提供通信鏈路的介質。網絡104可以包括各種連接類型,例如有線、無線通信鏈路或者光纖電纜等等。

用戶110可以使用終端設備101、102、103通過網絡104與服務器105、106交互,以接收或發送消息等。終端設備101、102、103上可以安裝有各種通訊客戶端應用,例如視頻播放類應用、搜索引擎類應用、購物類應用、即時通信工具、郵箱客戶端、社交平臺軟件等。

終端設備101、102、103可以是具有顯示屏并且支持彈幕交互功能的各種電子設備,包括但不限于智能手機、平板電腦、電子書閱讀器、MP3播放器(Moving Picture Experts Group Audio Layer III,動態影像專家壓縮標準音頻層面3)、MP4(Moving Picture Experts Group Audio Layer IV,動態影像專家壓縮標準音頻層面4)播放器、膝上型便攜計算機和臺式計算機等等。

服務器105、106可以是提供各種服務的服務器,例如對終端設備101、102、103提供支持的后臺服務器。后臺服務器可以對終端提交的數據進行存儲或計算等處理,并在接收到終端的請求時將存儲或計算結果反饋給終端設備。

需要說明的是,本申請中實施例所提供的調用分布式文件系統的方法一般由服務器105、106執行,相應地,調用分布式文件系統的裝置一般設置于服務器105、106中。

應該理解,圖1中的終端設備、網絡和服務器的數目僅僅是示意性的。根據實現需要,可以具有任意數目的終端設備、網絡和服務器。

繼續參考圖2,圖2示出了根據本申請的調用分布式文件系統的方法的一個實施例的流程200。該調用分布式文件系統的方法,包括以下步驟:

步驟201,基于接收的用戶端的會話請求,建立新會話。

在本實施例中,調用分布式文件的方法所運行的設備(例如圖1中所示的服務器105、106)向用戶端提供了建立新會話的接口,該接口在接收用戶端發送的會話請求時,與用戶端建立新會話。

步驟202,向分布式文件系統的管理者發送首次加鎖請求,首次加鎖請求用于請求對租約目錄加鎖。

在本實施例中,響應于步驟201中建立了新會話,該新會話默認為從角色,采用新會話加鎖租約目錄進行搶主角色。這里的租約目錄為文件系統中預先設定的作為搶到主會話的指示器的目錄,這里的加鎖方式可以為現有技術或未來發展的技術中的加鎖方式,本申請對此不做限定。這里的分布式文件系統,可以為分布式存儲系統、分布式計算系統或基于分布式文件之上的其它存儲系統,甚至可以包括另一個分布式文件系統。分布式文件系統的管理者(例如目錄樹管理器)可以記錄下租約目錄當前是被哪個會話所鎖住,如果該會話掛掉,則自動清理該會話所持有的鎖。

步驟203,響應于接收到對首次加鎖請求的響應為加鎖成功,向管理者發送在租約目錄中新建子目錄的請求,子目錄以所述新會話的IP地址和端口命名。

在本實施例中,當步驟202中的管理者對首次加鎖請求返回的響應為加鎖成功時,可以將包括新會話的IP地址和端口的在租約目錄中新建子目錄請求發送至管理者,以便管理者采用新會話的IP地址和端口命名子目錄。

步驟204,響應于接收到對新建子目錄的請求的響應為新建成功,將新會話標記為主會話。

在本實施例中,當接收到管理者返回的對應新建子目錄請求的響應為新建成功時,可以確定新會話搶主成功,從而可以將新會話標記為主會話。

本申請上述實施例提供的調用分布式文件系統的方法和裝置,實現了新會話的選主,并對主會話進行鎖定,有效提高了調用分布式文件系統的健壯性。另外,該調用分布式文件系統的方法和裝置簡化了系統架構,不再需要依賴任何第三方機制/系統,提升了調用分布式文件系統的方法和裝置的穩定性和可演化性,易實現無狀態化,從而很容易實現全局的快速負載均衡機制和分片分裂與合并機制等。

進一步參考圖3,圖3示出了根據本申請的調用分布式文件系統的方法的另一個實施例的流程。該調用分布式文件系統的方法,包括以下步驟:

在步驟301中,響應于用戶端的請求,建立新會話,之后執行步驟302;

在步驟302中,向分布式文件系統的管理者發送加鎖租約目錄的首次加鎖請求,之后執行步驟303;

在步驟303中,判斷管理者返回的響應是否為加鎖成功,若是,執行步驟304,若否,執行步驟305;

在步驟304中,向管理者首次查詢租約目錄中是否存在以其它會話的IP地址和端口命名的子目錄,若是,執行步驟306,若否,則執行步驟308;

在步驟305中,間隔預定時長檢查修改時間戳距當前時間的時長是否超過預設時長,若是,則執行步驟313,若否,則繼續執行步驟305;

在步驟306中,向管理者發送用于刪除租約目錄中的子目錄的刪除請求,之后執行步驟307;

在步驟307中,判斷管理者返回的對應刪除請求的響應是否為刪除成功,若是,則執行步驟308,若否,則執行步驟305;

在步驟308中,向管理者發送在租約目錄中新建子目錄的請求,子目錄以所述新會話的IP地址和端口命名,之后執行步驟309;

在步驟309中,判斷管理者返回的對新建子目錄的請求的響應是否為新建成功,若是,則執行步驟310,若否,則執行步驟305;

在步驟310中,將新會話標記為主會話,之后執行步驟311;

在步驟311中,在主會話存活期間,定期向管理者發送更新租約目錄的修改時間戳的請求,之后執行步驟312;

在步驟312中,響應于主會話關閉,向管理者發送刪除租約目錄中的子目錄并解鎖租約目錄的請求;

在步驟313中,向管理者發送再次加鎖請求,再次加鎖請求用于請求對租約目錄加鎖,之后執行步驟314;

在步驟314中,判斷接收到對再次加鎖請求的響應是否為加鎖成功,若是,則執行步驟304,若否,則執行步驟315;

在步驟315中,向管理者再次查詢租約目錄中是否存在以其它會話的IP地址和端口命名的子目錄,若是,則執行步驟305,若否,則執行步驟302。

在本實施例中,可以預先在分布式文件系統中指定一個目錄(下文稱之為租約目錄)作為搶主的指示器,搶到主的會話則將自己的IP地址和端口(例如IP:PORT)作為子目錄名字記錄到租約目錄的子樹中去,我們稱之為服務標識。主會話會定期更新租約目錄的最后修改時間戳(ModificationTime),從會話定期檢查該時間戳是否超過了規定的時長而沒有發生任何變化,如果是,則發起搶主。

以下舉例說明租約目錄及其中的子目錄的結構:

假定有A(假定其IP:PORT為1.1.1.1:1111)和B(假定其IP:PORT為2.2.2.2:2222)兩個會話參與選主,如果A是主,則目錄結構是:

xxx/lease/1.1.1.1:1111

如果B是主,則目錄結構是

xxx/lease/2.2.2.2:2222

這里的lease就是指租約目錄,它的子目錄的名字代表了當前的主的服務標識。

在本實施例中,選主可以通過以下過程實現:

過程1:啟動一個新的會話時,默認為從角色。該會話首先對租約目錄進行加鎖操作,如果加鎖失敗,說明此時有主,本會話進入周期性檢查租約目錄時間戳的階段。如果加鎖成功,說明搶到了主,則首先將租約目錄下的內容清空,然后將自己的服務標識記錄到租約目錄下,結束過程。

過程2:本會話不斷地檢查租約目錄的時間戳是否超過規定時間閾值仍然沒有發生任何變化,是則觸發選主,也是通過對租約目錄執行加鎖操作,如果加鎖成功,參見過程1結束搶主過程。如果加鎖失敗,則先檢查租約目錄下是否存在其它角色的服務標識,若存在,則說明其它會話搶到了主,本會話進入周期檢查租約目錄時間戳的階段;如果不存在,則過一會繼續加鎖,重復之前的過程。

本申請上述實施例提供的調用分布式文件系統的方法和裝置,通過響應于建立的新會話執行如圖3中所述的操作步驟,可以實現新會話從從角色到主角色的角色轉換過程,并且實現了對主會話的鎖定,有效提高了調用分布式文件系統的健壯性。另外,該調用分布式文件系統的方法和裝置簡化了系統架構,不再需要依賴任何第三方機制/系統,提升了調用分布式文件系統的方法和裝置的穩定性和可演化性,易實現無狀態化,從而很容易實現全局的快速負載均衡機制和分片分裂與合并機制等。

在上述實施例的一些可選實現方式中(圖中未示出),上述調用分布式文件系統的方法還可以包括:接收生成日志請求;生成每條數據流的每個日志的日志序列號;響應于切換主會話或日志文件大小達到預定字節,新創建日志文件;以日志文件中最小的日志序列號命名創建的日志文件;將所述日志序列號、日志的長度、校驗信息以及添加日志的會話的IP地址添加至創建的日志文件的頭部信息,將日志寫入創建的日志文件中直至日志文件大小達到預定字節。

在上述實現方式中,通過首先響應于接收生成日志請求,生成每條數據流的每個日志的日志序列號;之后響應于切換主會話或日志文件大小達到預定字節,新創建日志文件;之后以日志文件中最小的日志序列號命名創建的日志文件;最后將所述日志序列號、日志的長度、校驗信息以及添加日志的會話的IP地址添加至創建的日志文件的頭部信息,將日志寫入創建的日志文件中直至日志文件大小達到預定字節,實現了數據流的復制和持久化。

在上述實施例的一些可選實現方式中(圖中未示出),所述方法還可以包括:接收生成快照請求;間隔預定時間觸發快照;將所有日志序列號均小于快照中日志序列號的日志文件刪除。

在本實現方式中,提供了一個周期性地快照接口,默認按照預定時間間隔觸發,也可以設計定制化觸發策略。每次執行完畢一個快照之后,本方案自動將那些日志序列號比該快照對應的日志序列號還要小的記錄所在的文件刪掉。需要注意的是,有的文件前半部分比該日志序列號要小,后半部分比該日志序列號要大,那么這樣的文件本次不能刪除。做快照然后刪除數據,就是一次緊置化過程。通過響應于接收生成快照請求,間隔預定時間觸發快照,并將所有日志序列號均小于快照中日志序列號的日志文件刪除,可以實現數據流的緊置化。

在上述實施例的一些可選實現方式中(圖中未示出),方法還可以包括:接收回放日志請求;根據日志序列號,回放日志。

在本實現方式中,可以實現將日志回放到狀態機,也即將寫入的數據一條一條地,嚴格按照與寫入時一樣的順序提交給服務單元在內存中進行處理。對于主會話來說,它在寫入分布式文件系統結束之后,直接將該記錄在內存狀態機中進行回放。可以看出,狀態機的回放順序嚴格符合日志序列號的單調遞增順序,二者完全一致。對于從會話來說,本方案提供了一個自動循環執行的機制,該機制自動從數據流(也就是分布式文件系統的一系列文件)中按序讀取記錄,該機制在讀到記錄之后,嚴格按照日志序列號的順序將記錄提交給狀態機進行回放,因此,可以看出,主從的回放順序因為日志序列號的序從而保證了嚴格的一致。

進一步參考圖4,圖4示出了根據本申請的調用分布式文件系統的方法的一個實施例的應用場景。

如圖4所示,在該調用分布式文件系統的方法的應用場景中,包括:應用系統410、接口裝置420和分布式文件系統430。

首先,應用系統410與接口裝置420建立會話411和會話412,其中的會話411和會話412經由接口裝置420中的會話狀態與數據控制器421與選主管理器422發生交互,由選主管理器422與分布時文件系統430中的目錄鎖管理器431進行目錄鎖的狀態交換,從而確定了會話411為主會話。

在主會話411和從會話412與會話狀態與數據控制器421進行交互的過程中,主會話411和從會話412可以經由會話狀態與數據控制器421向日志寫入器423寫入日志,再經由日志寫入器423向分布式文件系統430寫入日志數據流,例如日志文件1、日志文件2直至日志文件N等;主會話411和從會話412還可以經由會話狀態與數據控制器421向快照寫入器425寫入快照,再經由快照寫入器425向分布式文件系統430寫入快照,例如寫入快照文件1、快照文件2等,其中快照1中可以包括快照1文件1和快照1文件2,快照2中可以包括快照2文件1、快照2文件2、快照2文件3等;從會話412還可以經由會話狀態與數據控制器421從日志與快照讀取器424讀取日志和/或讀取快照,此時快照讀取器從分布式文件系統430中存儲的以下一項或多項數據中讀取從會話412請求的數據:日志文件1至日志文件N、快照1和快照2。

應當理解,在本應用場景中,本申請調用分布式文件系統的方法通過接口裝置420實現,在上述主會話411和從會話412與會話狀態與數據控制器421交互的過程中,會話狀態與數據控制器421可以對日志寫入器423、日志與快照讀取器424進行內部狀態控制,還可以對快照寫入器425進行快照狀態控制。另外,本應用場景僅為本申請調用分布式文件系統的方法的一個示例性應用場景,并不代表對本申請的限定。例如其中的會話狀態與數據控制器421、選主管理器422、日志寫入器423、日志與快照讀取器424和快照寫入器425這五個器件,可以合并為一個或多個器件;這五個器件中的任意一個器件,也可以拆分為多個子器件,本申請對此不作限定。

進一步參考圖5,作為對上述方法的實現,本申請提供了一種調用分布式文件系統的裝置的一個實施例,該裝置實施例與圖2所示的方法實施例相對應,由此,上文針對方法描述的操作和特征同樣適用于裝置500及其中包含的單元,在此不再贅述。該裝置具體可以應用于各種電子設備中。

如圖5所示,本實施例的調用分布式文件系統的裝置500包括:會話建立單元510、首次加鎖請求單元520、新建子目錄請求單元530和主會話標記單元540。

其中,會話建立單元510,用于基于接收的用戶端的會話請求,建立新會話。

首次加鎖請求單元520,用于向分布式文件系統的管理者發送首次加鎖請求,首次加鎖請求用于請求對租約目錄加鎖。

新建子目錄請求單元530,用于響應于接收到對首次加鎖請求的響應為加鎖成功,向管理者發送在租約目錄中新建子目錄的請求,子目錄以新會話的IP地址和端口命名。

主會話標記單元540,用于響應于接收到對新建子目錄的請求的響應為新建成功,將新會話標記為主會話。

在本實施例的一些可選實現方式中,裝置還可以包括以下任意一項或多項:修改時間戳單元,用于在主會話存活期間,定期向管理者發送更新租約目錄的修改時間戳的請求;和刪除及加鎖單元,用于響應于主會話關閉,向管理者發送刪除租約目錄中的子目錄并解鎖租約目錄的請求。

在本實施例的一些可選實現方式中,新建子目錄請求單元可以包括:首次查詢請求子單元,用于響應于接收到對首次加鎖請求的響應為加鎖成功,向管理者發送首次查詢請求,首次查詢請求用于查詢租約目錄中是否存在以其它會話的IP地址和端口命名的子目錄;刪除子目錄子單元,用于響應于接收到對首次查詢請求的響應為存在,向管理者發送刪除請求,刪除請求用于刪除租約目錄中的子目錄;新建子目錄子單元,用于響應于接收到對首次查詢請求的響應為不存在或接收到對刪除請求的響應為刪除成功,向管理者發送在租約目錄中新建子目錄的請求。

在本實施例的一些可選實現方式中,裝置還包括:時長檢查單元,用于響應于接收到對首次加鎖請求的響應為加鎖失敗,間隔預定時長檢查修改時間戳距當前時間的時長是否超過預設時長;再次加鎖請求單元,用于響應于修改時間戳距當前時間的時長超過預設時長,向管理者發送再次加鎖請求,再次加鎖請求用于請求對租約目錄加鎖;子目錄查詢子單元進一步用于:響應于接收到對再次加鎖請求的響應為加鎖成功,執行向管理者發送首次查詢請求。

在本實施例的一些可選實現方式中,裝置還包括:再次查詢請求單元,用于響應于接收到對再次加鎖請求的響應為加鎖失敗,向管理者發送再次查詢請求,再次查詢請求用于查詢租約目錄中是否存在以其它會話的IP地址和端口命名的子目錄;時長檢查單元進一步用于:響應于接收到對再次查詢請求的響應為存在,執行間隔預定時長檢查修改時間戳距當前時間的時長是否超過預設時長。

在本實施例的一些可選實現方式中,裝置還包括:首次加鎖請求單元進一步用于:響應于接收到對再次查詢請求的響應為不存在,執行向分布式文件系統的管理者發送加鎖租約目錄的首次加鎖請求。

在本實施例的一些可選實現方式中,裝置還包括以下任意一項或多項:時長檢查單元進一步用于:響應于接收到對新建子目錄請求的響應為新建失敗,執行間隔預定時長檢查修改時間戳距當前時間的時長是否超過預設時長;時長檢查單元進一步用于:響應于接收到對刪除請求的響應為刪除失敗,執行間隔預定時長檢查修改時間戳距當前時間的時長是否超過預設時長;以及時長檢查單元進一步用于:響應于修改時間戳距當前時間的時長未超過預設時長,執行間隔預定時長檢查修改時間戳距當前時間的時長是否超過預設時長。

在本實施例的一些可選實現方式中,裝置還包括:序列號生成單元,用于響應于接收生成日志請求,生成每條數據流的每個日志的日志序列號;文件創建單元,用于響應于切換主會話或日志文件大小達到預定字節,新創建日志文件;文件命名單元,用于以日志文件中最小的日志序列號命名創建的日志文件;信息添加單元,用于將日志序列號、日志的長度、校驗信息以及寫入的會話的IP地址添加至創建的日志文件的頭部信息;日志添加單元,用于將日志添加至創建的日志文件中直至日志文件大小達到預定字節。

在本實施例的一些可選實現方式中,裝置還包括:快照觸發單元,用于響應于接收生成快照請求,間隔預定時間觸發快照;文件刪除單元,用于將所有日志序列號均小于快照中日志序列號的日志文件刪除。

在本實施例的一些可選實現方式中,裝置還包括:回放請求接收單元,用于接收回放日志請求;日志回放單元,用于根據日志序列號,回放日志。

應當理解,本申請上述實施例中的調用分布式文件系統的裝置,僅為對本申請的示例性描述,并不代表對本申請的限定。例如,可以根據需要將其中包括的多個單元合并為一個單元,也可以根據需要將其中包括的單元拆分為多個子單元。服務器端可以為單個服務器、多個服務器或服務器集群等。

下面參考圖6,其示出了適于用來實現本申請實施例的終端設備或服務器的計算機系統600的結構示意圖。

如圖6所示,計算機系統600包括中央處理單元(CPU)601,其可以根據存儲在只讀存儲器(ROM)602中的程序或者從存儲部分608加載到隨機訪問存儲器(RAM)603中的程序而執行各種適當的動作和處理。在RAM 603中,還存儲有系統600操作所需的各種程序和數據。CPU 601、ROM 602以及RAM 603通過總線604彼此相連。輸入/輸出(I/O)接口605也連接至總線604。

以下部件連接至I/O接口605:包括鍵盤、鼠標等的輸入部分606;包括諸如陰極射線管(CRT)、液晶顯示器(LCD)等以及揚聲器等的輸出部分607;包括硬盤等的存儲部分608;以及包括諸如LAN卡、調制解調器等的網絡接口卡的通信部分609。通信部分609經由諸如因特網的網絡執行通信處理。驅動器610也根據需要連接至I/O接口606。可拆卸介質611,諸如磁盤、光盤、磁光盤、半導體存儲器等等,根據需要安裝在驅動器610上,以便于從其上讀出的計算機程序根據需要被安裝入存儲部分608。

特別地,根據本公開的實施例,上文參考流程圖描述的過程可以被實現為計算機軟件程序。例如,本公開的實施例包括一種計算機程序產品,其包括有形地包含在機器可讀介質上的計算機程序,所述計算機程序包含用于執行流程圖所示的方法的程序代碼。在這樣的實施例中,該計算機程序可以通過通信部分609從網絡上被下載和安裝,和/或從可拆卸介質611被安裝。在該計算機程序被中央處理單元(CPU)601執行時,執行本申請的方法中限定的上述功能。

附圖中的流程圖和框圖,圖示了按照本申請各種實施例的系統、方法和計算機程序產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個單元、程序段、或代碼的一部分,所述單元、程序段、或代碼的一部分包含一個或多個用于實現規定的邏輯功能的可執行指令。也應當注意,在有些作為替換的實現中,方框中所標注的功能也可以以不同于附圖中所標注的順序發生。例如,兩個接連地表示的方框實際上可以基本并行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執行規定的功能或操作的專用的基于硬件的系統來實現,或者可以用專用硬件與計算機指令的組合來實現。

描述于本申請實施例中所涉及到的單元可以通過軟件的方式實現,也可以通過硬件的方式來實現。所描述的單元也可以設置在處理器中,例如,可以描述為:一種處理器包括會話建立單元、首次加鎖請求單元、新建子目錄請求單元和主會話標記單元。其中,這些單元的名稱在某種情況下并不構成對該單元本身的限定,例如,會話建立單元還可以被描述為“基于接收的用戶端的會話請求,建立新會話的單元”。

作為另一方面,本申請還提供了一種非易失性計算機存儲介質,該非易失性計算機存儲介質可以是上述實施例中所述裝置中所包含的非易失性計算機存儲介質;也可以是單獨存在,未裝配入終端中的非易失性計算機存儲介質。上述非易失性計算機存儲介質存儲有一個或者多個程序,當所述一個或者多個程序被一個設備執行時,使得所述設備:基于接收的用戶端的會話請求,建立新會話;向分布式文件系統的管理者發送首次加鎖請求,首次加鎖請求用于請求對租約目錄加鎖;響應于接收到對首次加鎖請求的響應為加鎖成功,向管理者發送在租約目錄中新建子目錄的請求,子目錄以新會話的IP地址和端口命名;響應于接收到對新建子目錄的請求的響應為新建成功,將新會話標記為主會話。

以上描述僅為本申請的較佳實施例以及對所運用技術原理的說明。本領域技術人員應當理解,本申請中所涉及的發明范圍,并不限于上述技術特征的特定組合而成的技術方案,同時也應涵蓋在不脫離所述發明構思的情況下,由上述技術特征或其等同特征進行任意組合而形成的其它技術方案。例如上述特征與本申請中公開的(但不限于)具有類似功能的技術特征進行互相替換而形成的技術方案。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 驻马店市| 通化市| 冀州市| 扶沟县| 塔城市| 梓潼县| 徐闻县| 宽城| 岢岚县| 蒲城县| 江陵县| 镇原县| 垦利县| 汉沽区| 神农架林区| 河间市| 建阳市| 河源市| 昭苏县| 英吉沙县| 江西省| 岐山县| 黔西| 繁峙县| 长兴县| 长汀县| 徐汇区| 青田县| 龙泉市| 蛟河市| 淮安市| 抚远县| 城步| 连山| 商南县| 大关县| 石棉县| 昭平县| 醴陵市| 图们市| 新竹县|