System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本公開涉及計算機,尤其涉及云存儲,特別涉及一種分片方法及裝置。
技術介紹
1、在對象存儲服務中,桶是用來存儲對象的容器。索引池中存儲有桶中所存儲對象的對象信息,用于遍歷桶中的對象,并且,同一個桶中不同對象的對象信息可以存儲在索引池包含的不同分片中。隨著桶中存儲的對象不斷增多,桶對應的每一分片中存儲的對象信息也不斷增多。在對象存儲服務啟動時,需要加載或校驗分片中存儲的對象信息,這種情況下若分片中存儲的對象信息過多,會導致加載或校驗分片中對象信息的耗時較長,從而可能導致服務超時。
2、針對這種情況,對象存儲服務可以通過分片操作來增加桶對應的分片的數量,以減少每一分片中存儲的對象信息的數量。
3、另外,當桶中存儲的對象較少、索引池中桶對應的分片的數量較多時,對象存儲服務也可以通過分片操作來減少桶對應的分片的數量。
技術實現思路
1、本公開提供了一種分片方法及裝置。
2、第一方面,本公開實施例提供了一種分片方法,包括:
3、響應于針對目標桶的分片指令,在索引池中創建所述目標桶對應的目標分片;
4、將所述索引池中所述目標桶對應的源分片中存儲的、所述目標桶中對象的對象信息同步至所述目標分片,并在同步過程中向所述目標桶寫入第一對象的情況下,獲取所述第一對象的第一對象信息,將所述第一對象信息存儲在所述源分片以及所述目標分片中;
5、在對象信息同步完成的情況下,刪除所述源分片;
6、在對象信息同步失敗的情況下,刪除所
7、本公開的一個實施例中,所述將所述索引池中所述目標桶對應的源分片中存儲的、所述目標桶中對象的對象信息同步至所述目標分片,包括:
8、遍歷所述目標桶對應的源分片中存儲的、所述目標桶中對象的對象信息,得到待寫入對象信息;
9、在向所述目標分片中同步每一待寫入對象信息的過程中,檢測所述目標分片中是否已存在該待寫入對象信息所屬對象的對象信息,若存在,則刪除該待寫入對象信息,若不存在,則將該待寫入對象信息寫入所述目標分片。
10、本公開的一個實施例中,在所述對象信息包含對象名的情況下,所述檢測所述目標分片中是否已存在該待寫入對象信息所屬對象的對象信息,包括:
11、檢測所述目標分片已存儲對象信息包含的對象名中是否存在該待寫入對象信息包含的對象名。
12、本公開的一個實施例中,所述方法還包括:
13、在同步過程中刪除所述目標桶中的第二對象的情況下,刪除所述源分片中存儲的所述第二對象的第二對象信息;
14、檢測所述目標分片中是否存在所述第二對象信息;
15、若存在,則刪除所述目標分片中存儲的所述第二對象信息。
16、本公開的一個實施例中,所述將所述目標桶對應的源分片中存儲的、所述目標桶中對象的對象信息同步至所述目標分片,包括:
17、遍歷所述目標桶對應的源分片中存儲的、所述目標桶中對象的對象信息,得到待寫入對象信息;
18、向所述目標分片同步所述待寫入對象信息;
19、在同步過程中,若感知到所述源分片中刪除了所述第二對象信息,則檢測未同步至所述目標分片的所述待寫入對象信息中是否存在所述第二對象信息;
20、若存在,則從未同步至所述目標分片的所述待寫入對象信息中刪除所述第二對象信息。
21、本公開的一個實施例中,所述方法還包括:
22、響應于針對目標桶的分片指令,設置所述目標桶的分片狀態為正常狀態,并開始計時;
23、當計時時長到達第一時長時對象信息同步過程正常進行,則重新計時;
24、當計時時長到達第二時長時,調整所述目標桶的分片狀態為異常狀態,其中,所述第一時長小于所述第二時長;
25、所述在同步過程中向所述目標桶寫入第一對象的情況下,獲取所述第一對象的第一對象信息,將所述第一對象信息存儲在所述源分片以及所述目標分片中,包括:
26、在同步過程中向所述目標桶寫入第一對象的情況下,若所述目標桶的分片狀態為正常狀態,則獲取所述第一對象的第一對象信息,將所述第一對象信息存儲在所述源分片以及所述目標分片中。
27、本公開的一個實施例中,所述方法還包括:
28、在同步過程中向所述目標桶寫入第一對象的情況下,若所述目標桶的分片狀態為異常狀態,則確定同步失敗,并將所述第一對象信息存儲至所述源分片。
29、本公開的一個實施例中,所述第一時長為所述第二時長的一半。
30、第二方面,本公開實施例提供了一種分片裝置,包括:
31、分片創建模塊,用于響應于針對目標桶的分片指令,在索引池中創建所述目標桶對應的目標分片;
32、信息同步模塊,用于將所述索引池中所述目標桶對應的源分片中存儲的、所述目標桶中對象的對象信息同步至所述目標分片,并在同步過程中向所述目標桶寫入第一對象的情況下,獲取所述第一對象的第一對象信息,將所述第一對象信息存儲在所述源分片以及所述目標分片中;
33、第一刪除模塊,用于在對象信息同步完成的情況下,刪除所述源分片;
34、第二刪除模塊,用于在對象信息同步失敗的情況下,刪除所述目標分片。
35、本公開的一個實施例中,所述信息同步模塊,包括:
36、信息遍歷子模塊,用于遍歷所述目標桶對應的源分片中存儲的、所述目標桶中對象的對象信息,得到待寫入對象信息;
37、信息寫入子模塊,用于在向所述目標分片中同步每一待寫入對象信息的過程中,檢測所述目標分片中是否已存在該待寫入對象信息所屬對象的對象信息,若存在,則刪除該待寫入對象信息,若不存在,則將該待寫入對象信息寫入所述目標分片;
38、信息存儲子模塊,用于在同步過程中向所述目標桶寫入第一對象的情況下,獲取所述第一對象的第一對象信息,將所述第一對象信息存儲在所述源分片以及所述目標分片中。
39、本公開的一個實施例中,在所述對象信息包含對象名的情況下,所述信息寫入子模塊,具體用于:
40、檢測所述目標分片已存儲對象信息包含的對象名中是否存在該待寫入對象信息包含的對象名。
41、本公開的一個實施例中,所述裝置還包括:
42、信息刪除模塊,用于在同步過程中刪除所述目標桶中的第二對象的情況下,刪除所述源分片中存儲的所述第二對象的第二對象信息;
43、信息檢測模塊,用于檢測所述目標分片中是否存在所述第二對象信息,若存在,則觸發第三刪除模塊;
44、所述第三刪除模塊,用于刪除所述目標分片中存儲的所述第二對象信息。
45、本公開的一個實施例中,所述信息同步模塊,具體用于:
46、遍歷所述目標桶對應的源分片中存儲的、所述目標桶中對象的對象信息,得到待寫入對象信息;
47、向所述目標分片同步所述待寫入對象信息;
48、在同本文檔來自技高網...
【技術保護點】
1.一種分片方法,其中,所述方法包括:
2.根據權利要求1所述方法,其中,所述將所述索引池中所述目標桶對應的源分片中存儲的、所述目標桶中對象的對象信息同步至所述目標分片,包括:
3.根據權利要求2所述方法,其中,在所述對象信息包含對象名的情況下,所述檢測所述目標分片中是否已存在該待寫入對象信息所屬對象的對象信息,包括:
4.根據權利要求1所述方法,其中,所述方法還包括:
5.根據權利要求4所述方法,其中,所述將所述目標桶對應的源分片中存儲的、所述目標桶中對象的對象信息同步至所述目標分片,包括:
6.根據權利要求1所述方法,其中,所述方法還包括:
7.根據權利要求6所述方法,其中,所述方法還包括:
8.根據權利要求6或7所述方法,其中,所述第一時長為所述第二時長的一半。
9.一種分片裝置,其中,所述裝置包括:
10.根據權利要求9所述裝置,其中,所述信息同步模塊,包括:
11.根據權利要求10所述裝置,其中,在所述對象信息包含對象名的情況下,所述信息寫入子模塊,具
12.根據權利要求9所述裝置,其中,所述裝置還包括:
13.根據權利要求12所述裝置,其中,所述信息同步模塊,具體用于:
14.根據權利要求9所述裝置,其中,所述裝置還包括:
15.根據權利要求14所述裝置,其中,所述裝置還包括:
16.根據權利要求14或15所述裝置,其中,所述第一時長為所述第二時長的一半。
17.一種電子設備,其中,所述電子設備包括:
18.一種存儲有計算機指令的非瞬時計算機可讀存儲介質,其中,所述計算機指令用于使所述計算機執行根據權利要求1-8中任一項所述的方法。
19.一種計算機程序產品,其中,所述計算機程序產品包括計算機程序,所述計算機程序在被處理器執行時實現根據權利要求1-8中任一項所述的方法。
...【技術特征摘要】
1.一種分片方法,其中,所述方法包括:
2.根據權利要求1所述方法,其中,所述將所述索引池中所述目標桶對應的源分片中存儲的、所述目標桶中對象的對象信息同步至所述目標分片,包括:
3.根據權利要求2所述方法,其中,在所述對象信息包含對象名的情況下,所述檢測所述目標分片中是否已存在該待寫入對象信息所屬對象的對象信息,包括:
4.根據權利要求1所述方法,其中,所述方法還包括:
5.根據權利要求4所述方法,其中,所述將所述目標桶對應的源分片中存儲的、所述目標桶中對象的對象信息同步至所述目標分片,包括:
6.根據權利要求1所述方法,其中,所述方法還包括:
7.根據權利要求6所述方法,其中,所述方法還包括:
8.根據權利要求6或7所述方法,其中,所述第一時長為所述第二時長的一半。
9.一種分片裝置,其中,所述裝置包括:
10.根據權利要求9所述裝置,其中,所述...
【專利技術屬性】
技術研發人員:梁明遠,
申請(專利權)人:北京百度網訊科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。