本申請涉及云服務(wù)領(lǐng)域,尤其涉及一種基于分布式塊存儲的副本數(shù)據(jù)落盤方法和裝置。
背景技術(shù):
1、隨著互聯(lián)網(wǎng)的發(fā)展,對分布式塊存儲中數(shù)據(jù)的快速落盤提出了新的要求?,F(xiàn)有技術(shù)中,對于副本的落盤,采用的是數(shù)據(jù)通過追加寫的模式寫入原始數(shù)據(jù)區(qū),索引通過分層,有序,面向磁盤的數(shù)據(jù)結(jié)構(gòu)樹(log?structured?merge?tree,lsm?tree)的方式進行存儲和壓縮,最后對接一致性協(xié)議raft協(xié)議,從副本被動接受主副本發(fā)起的數(shù)據(jù)追加寫。
2、然而,現(xiàn)有技術(shù)中存在雙寫的問題,即數(shù)據(jù)落盤時先寫日志,再寫數(shù)據(jù),造成數(shù)據(jù)落盤效率低這一結(jié)果。
技術(shù)實現(xiàn)思路
1、本申請?zhí)峁┝艘环N基于分布式塊存儲的副本數(shù)據(jù)落盤方法和裝置,以解決數(shù)據(jù)落盤效率低的問題。
2、第一方面,本申請?zhí)峁┝艘环N基于分布式塊存儲的副本數(shù)據(jù)落盤方法,包括:在接收到目標(biāo)副本的副本數(shù)據(jù)塊的寫請求的情況下,將上述寫請求對應(yīng)的上述副本數(shù)據(jù)塊寫入到物理盤上,其中,上述寫請求用于請求將上述副本數(shù)據(jù)塊落盤;返回回復(fù)消息,其中,上述回復(fù)消息中攜帶有已經(jīng)寫入到上述物理盤的上述目標(biāo)副本的副本長度;在接收到讀取上述目標(biāo)副本的讀請求的情況下,在上述讀請求所請求的副本數(shù)據(jù)塊位于上述目標(biāo)副本的副本長度內(nèi)的情況下,返回上述讀請求所請求的副本數(shù)據(jù)塊;在上述讀請求所請求的副本數(shù)據(jù)塊位于上述目標(biāo)副本的副本長度外的情況下,根據(jù)上述讀請求所請求的副本數(shù)據(jù)塊的查找結(jié)果返回提示消息。
3、第二方面,本申請?zhí)峁┝艘环N基于分布式塊存儲的副本數(shù)據(jù)落盤裝置,包括:寫入模塊,用于在接收到目標(biāo)副本的副本數(shù)據(jù)塊的寫請求的情況下,將上述寫請求對應(yīng)的上述副本數(shù)據(jù)塊寫入到物理盤上,其中,上述寫請求用于請求將上述副本數(shù)據(jù)塊落盤;回復(fù)模塊,用于返回回復(fù)消息,其中,上述回復(fù)消息中攜帶有已經(jīng)寫入到上述物理盤的上述目標(biāo)副本的副本長度;讀取模塊,用于在接收到讀取上述目標(biāo)副本的讀請求的情況下,在上述讀請求所請求的副本數(shù)據(jù)塊位于上述目標(biāo)副本的副本長度內(nèi)的情況下,返回上述讀請求所請求的副本數(shù)據(jù)塊;在上述讀請求所請求的副本數(shù)據(jù)塊位于上述目標(biāo)副本的副本長度外的情況下,根據(jù)上述讀請求所請求的副本數(shù)據(jù)塊的查找結(jié)果返回提示消息。
4、作為一種可選的示例,上述寫入模塊包括:寫入單元,用于在接收到上述寫請求的情況下,將上述副本數(shù)據(jù)塊按照隨機寫入順序?qū)懭氲缴鲜鑫锢肀P上;確定單元,用于從上述目標(biāo)副本的首個副本數(shù)據(jù)塊開始,將連續(xù)不間斷的多個副本數(shù)據(jù)塊的長度確定為上述副本長度。
5、作為一種可選的示例,上述確定單元包括:確定子單元,用于在任意一個副本數(shù)據(jù)塊寫入上述物理盤的情況下,將上述副本數(shù)據(jù)塊所對應(yīng)的上述寫請求存入消息確認隊列中,其中,上述消息確認隊列中的寫請求為已經(jīng)收到并寫入完成的請求;在上述消息確認隊列中存在第1到第n個寫請求且未包括第n+1個寫請求的情況下,將上述n確定為上述副本長度。
6、作為一種可選的示例,上述讀取模塊包括:回復(fù)單元,用于在目標(biāo)物理盤上查找上述讀請求所請求的副本數(shù)據(jù)塊;在查找到上述讀請求所請求的副本數(shù)據(jù)塊的情況下,返回上述副本數(shù)據(jù)塊;在未查找到上述讀請求所請求的副本數(shù)據(jù)塊的情況下,從其他物理盤中查找上述讀請求所請求的副本數(shù)據(jù)塊,其中,上述其他物理盤為其他寫入上述目標(biāo)副本的物理盤;在上述其他物理盤中查找到上述讀請求所請求的副本數(shù)據(jù)塊的情況下,返回上述副本數(shù)據(jù)塊;在上述其他物理盤中未查找到上述讀請求所請求的副本數(shù)據(jù)塊的情況下,返回報錯消息。
7、作為一種可選的示例,上述裝置還包括:補副本模塊,用于在將上述目標(biāo)副本寫入到上述物理盤之后,在補副本操作被觸發(fā)的情況下,將其他物理盤的所有目標(biāo)副本中最長的目標(biāo)副本確定為數(shù)據(jù)源;將上述數(shù)據(jù)源設(shè)置為禁止寫入狀態(tài);使用上述數(shù)據(jù)源對目標(biāo)物理盤上的上述目標(biāo)副本執(zhí)行補副本操作。
8、作為一種可選的示例,上述補副本模塊包括:補副本單元,用于從上述數(shù)據(jù)源的偏移位置開始讀取數(shù)據(jù),其中,上述偏移位置為上述數(shù)據(jù)源中偏移為上述目標(biāo)副本的副本長度的位置;將讀取到的數(shù)據(jù)寫入到上述目標(biāo)副本中,直到上述目標(biāo)副本和上述數(shù)據(jù)源的長度相同;更新上述目標(biāo)副本的副本長度。
9、作為一種可選的示例,上述裝置還包括:執(zhí)行模塊,用于在接收到目標(biāo)副本的副本數(shù)據(jù)塊的寫請求的情況下,為上述寫請求分配第一操作類型編碼;將上述第一操作類型編碼插入到無鎖隊列中,其中,上述無鎖隊列中還包括第二操作類型編碼,上述第二操作類型編碼為用于落盤的數(shù)據(jù)服務(wù)器的內(nèi)部操作的編碼;按照上述無鎖隊列中的操作類型編碼的順序,執(zhí)行上述寫請求和上述內(nèi)部操作。
10、第三方面,本申請?zhí)峁┝艘环N電子設(shè)備,包括:至少一個通信接口;與上述至少一個通信接口相連接的至少一個總線;與上述至少一個總線相連接的至少一個處理器;與上述至少一個總線相連接的至少一個存儲器,其中,上述處理器被配置為:在接收到目標(biāo)副本的副本數(shù)據(jù)塊的寫請求的情況下,將上述寫請求對應(yīng)的上述副本數(shù)據(jù)塊寫入到物理盤上,其中,上述寫請求用于請求將上述副本數(shù)據(jù)塊落盤;返回回復(fù)消息,其中,上述回復(fù)消息中攜帶有已經(jīng)寫入到上述物理盤的上述目標(biāo)副本的副本長度;在接收到讀取上述目標(biāo)副本的讀請求的情況下,在上述讀請求所請求的副本數(shù)據(jù)塊位于上述目標(biāo)副本的副本長度內(nèi)的情況下,返回上述讀請求所請求的副本數(shù)據(jù)塊;在上述讀請求所請求的副本數(shù)據(jù)塊位于上述目標(biāo)副本的副本長度外的情況下,根據(jù)上述讀請求所請求的副本數(shù)據(jù)塊的查找結(jié)果返回提示消息。
11、第四方面,本申請還提供了一種計算機存儲介質(zhì),存儲有計算機可執(zhí)行指令,上述計算機可執(zhí)行指令用于執(zhí)行本申請上述任一項上述的基于分布式塊存儲的副本數(shù)據(jù)落盤方法。
12、本申請實施例提供的上述技術(shù)方案與現(xiàn)有技術(shù)相比具有如下優(yōu)點:本申請實施例提供的該方法,在數(shù)據(jù)落盤時,對于每一個副本數(shù)據(jù)塊,在接收到寫請求的情況下,將數(shù)據(jù)塊寫入到物理盤上。在回復(fù)消息時,回復(fù)的是副本的副本長度,這樣在讀取數(shù)據(jù)時,只提供副本長度內(nèi)的數(shù)據(jù)的讀取,超出的數(shù)據(jù)不保證成功返回,從而不再需要在數(shù)據(jù)落盤時進行雙寫的操作,即先寫日志再寫數(shù)據(jù)的操作,提高了數(shù)據(jù)落盤效率。
1.一種基于分布式塊存儲的副本數(shù)據(jù)落盤方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述在接收到目標(biāo)副本的副本數(shù)據(jù)塊的寫請求的情況下,將所述寫請求對應(yīng)的所述副本數(shù)據(jù)塊寫入到物理盤上包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述從所述目標(biāo)副本的首個副本數(shù)據(jù)塊開始,將連續(xù)不間斷的多個副本數(shù)據(jù)塊的長度確定為所述副本長度包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述在所述讀請求所請求的副本數(shù)據(jù)塊位于所述目標(biāo)副本的副本長度外的情況下,根據(jù)所述讀請求所請求的副本數(shù)據(jù)塊的查找結(jié)果返回提示消息包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,在將所述目標(biāo)副本寫入到所述物理盤之后,所述方法還包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述使用所述數(shù)據(jù)源對所述目標(biāo)物理盤上的所述目標(biāo)副本執(zhí)行補副本操作包括:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,在接收到目標(biāo)副本的副本數(shù)據(jù)塊的寫請求的情況下,所述方法還包括:
8.一種基于分布式塊存儲的副本數(shù)據(jù)落盤裝置,其特征在于,包括:
9.一種計算機可讀的存儲介質(zhì),所述計算機可讀的存儲介質(zhì)存儲有計算機程序,其特征在于,所述計算機程序被處理器運行時執(zhí)行所述權(quán)利要求1至7任一項中所述的方法。
10.一種電子設(shè)備,包括存儲器和處理器,其特征在于,所述存儲器中存儲有計算機程序,所述處理器被設(shè)置為通過所述計算機程序執(zhí)行所述權(quán)利要求1至7任一項中所述的方法。