System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及數據庫,尤其涉及一種數據庫存儲方法。
技術介紹
1、隨著電子設備的廣泛普及,flash(閃存)存儲技術已在手機、平板電腦、ssd等眾多領域得到廣泛應用。在flash數據庫的架構中,日志數據被巧妙地存儲在扇區內部,以確保數據的快速讀寫和長期保存。然而,當前采用的flash存儲方案在處理參數、配置信息及動態數據這類頻繁變化的數據時,顯現出了一系列挑戰。
2、傳統的flash存儲策略依賴于結構體記錄模式,它要求為每個功能模塊劃分一個或多個扇區,并在這些扇區內分別存儲各類數據。一旦扇區中的某個參數發生變動,就需先將整個扇區的數據加載到ram(隨機存取存儲器)中,隨后擦除扇區原存數據,并最終將更新后的參數數據重新寫回扇區。這一過程不僅耗時費力,而且頻繁地擦寫操作會大幅縮短扇區的使用壽命。
3、更進一步地,為了降低擦寫扇區的時間,現有的存儲方法基于靜態規則或簡單算法進行扇區合并,缺乏對未來數據訪問模式和存儲設備狀態的預測能力,導致合并操作可能不是最優解。另外,現有的flash存儲方案在參數管理層面也顯得頗為繁瑣。當需要調整參數順序或增添新參數時,技術人員必須審慎考慮這些變動對現有參數數據的潛在影響,以防止數據遭到破壞或丟失。這種復雜的參數管理機制無疑增加了數據庫的維護難度和運營成本。
4、因此,亟需一種新的數據庫存儲策略來優化flash存儲方法的性能,提高數據訪問速度,延長存儲設備壽命,并簡化數據庫的維護和管理。
技術實現思路
1、本申請通過提
2、本申請提供了一種數據庫存儲方法,包括:
3、s101,根據數據庫鍵值對的類型和長度構建字典樹結構并分類存儲鍵值對;
4、s102,寫入新鍵值對時,先在字典樹中根據鍵名查詢索引字符串,存在則進入步驟s103a處理重復鍵,不存在則設定新索引字符串進入步驟s103b;
5、s103a,創建新鍵值對條目并存儲,更新索引字符串葉子節點地址指向新條目;
6、s103b,構建索引字符串,創建鍵值對條目,更新葉子節點地址指向新條目;
7、s104,根據觸發條件判斷剩余空間是否小于預設閾值;根據各存儲區域的負載情況,動態調整回收頻率;若需要回收,則進入步驟s105;否則,不回收起始扇區;
8、s105,遍歷起始扇區中的所有鍵值對條目,判斷鍵值對條目有效性;若有效,進入步驟s106a;若無效,進入步驟s106b;
9、s106a,選擇扇區負載降序后序列中的最后一個元素作為低存儲區域,在該區域為遷移鍵值對分配空間并創建遷移條目,拷貝原數據至新條目,更新相關索引字符串葉子節點的地址指向新條目,并將原條目標記為刪除;
10、s106b,若起始扇區的鍵值對條目未遍歷完成,則繼續遍歷下一條鍵值對條目;若遍歷完成,負載低且無效條目超過扇區容量的30%,則進入步驟s107;若負載高、無效條目未超過扇區容量的30%,延遲扇區回收,返回正常操作流程等待下一次評估;
11、s107,僅擦除起始扇區中標記為刪除的鍵值對條目所占用的空間,釋放存儲空間,以起始扇區的下一個扇區作為新的起始扇區。
12、優選地,所述s101,分類存儲鍵值對包括:
13、鍵值對的分類標準根據鍵值對的用途、性質和數據類型,將鍵值對分為不同的類型;
14、對于每種類型,進一步細分類型格式;
15、在類型分類的基礎上,再根據鍵名和鍵值的長度進行細分。
16、優選地,所述s104,動態調整回收頻率,包括:
17、回收頻率與存儲區域的負載成反比,動態調整回收頻率代表負載低于30%時為負載低增加基礎頻率30%的回收頻率,高于70%時為負載高減少基礎頻率20%的回收頻率。
18、優選地,所述s107,包括:
19、s201,初始化存儲設備,建立扇區映射表,設定存儲空間使用的預設閾值;
20、s202,當某一扇區剩余空間低于預設閾值時,觸發扇區回收流程;
21、s203,遍歷這些扇區及其相鄰扇區,標記出狀態為空和無效數據的扇區;
22、s204,將標記為空和無效數據的相鄰扇區進行合并,形成連續存儲區域,并更新扇區映射表;
23、s205,擦除合并扇區中的無效數據,釋放存儲空間,并在存儲設備的管理信息中記錄合并后的扇區信息;
24、s206,有新鍵值對需要存儲時,首先檢查合并扇區池中是否有可用的扇區;
25、s207,若有可用扇區,從合并扇區池中分配與鍵值對需求匹配的扇區進行存儲;
26、s208,將新分配的扇區與新鍵值對進行關聯,并記錄其存儲信息。
27、優選地,所述s201,扇區映射表,包括:
28、扇區映射表存儲設備中每個扇區的位置、狀態以及存儲分類規則的數據結構;
29、設定的存儲空間使用下限,當扇區剩余空間低于此值時,觸發扇區回收流程,該預設閾值設為扇區總容量的10%。
30、優選地,所述s203,包括:
31、從待回收扇區開始,遍歷其相鄰的扇區;
32、檢查每個扇區的狀態,如果狀態為空、無效數據,則將該扇區標記為可合并狀態;
33、遍歷過程中,相鄰扇區的物理連續性一致。
34、優選地,所述狀態為空、無效數據,包括:
35、狀態為空代表未使用或已完全擦除的扇區,無效數據代表已刪除或損壞的數據的扇區。
36、優選地,所述s204,相鄰扇區進行合并,包括:
37、根據標記的可合并扇區,執行合并操作;
38、合并操作涉及多個扇區的物理地址重新分配;
39、合并過程中,保留原扇區的存儲分類規則,合并扇區繼承原扇區的存儲分類規則
40、更新扇區映射表,記錄合并后的扇區信息;
41、合并后的扇區大小等于所有合并前扇區大小的總和。
42、優選地,所述s204,還包括:
43、s301,制定數據訪問頻率和扇區擦除壽命的分組標準;
44、s302,在扇區合并過程中根據制定的分組標準對合并后的扇區進行分組;
45、s303,在接收到鍵值對更新請求時,根據鍵值對的標識信息在扇區映射表中定位到其所在的扇區組,在該扇區組內進一步定位到具體的扇區和扇區內的位置;
46、s304,在定位到的扇區內對目標鍵值對進行局部修改操作。
47、優選地,所述s304,局部修改,包括:
48、在定位到目標鍵值對所在的扇區后,對該扇區進行讀取操作,提取出目標鍵值對;
49、僅對鍵值對進行更新、修改操作;<本文檔來自技高網...
【技術保護點】
1.一種數據庫存儲方法,其特征在于,包括:
2.如權利要求1的一種數據庫存儲方法,其特征在于,所述S101,分類存儲鍵值對包括:
3.如權利要求1的一種數據庫存儲方法,其特征在于,所述S104,動態調整回收頻率,包括:
4.如權利要求1的一種數據庫存儲方法,其特征在于,所述S107,包括:
5.如權利要求4的一種數據庫存儲方法,其特征在于,所述S201,扇區映射表,包括:
6.如權利要求4的一種數據庫存儲方法,其特征在于,所述S203,包括:
7.如權利要求6的一種數據庫存儲方法,其特征在于,所述狀態為空、無效數據,包括:
8.如權利要求4的一種數據庫存儲方法,其特征在于,所述S204,相鄰扇區進行合并,包括:
9.如權利要求4的一種數據庫存儲方法,其特征在于,所述S204,還包括:
10.如權利要求9的一種數據庫存儲方法,其特征在于,所述S304,局部修改,包括:
【技術特征摘要】
1.一種數據庫存儲方法,其特征在于,包括:
2.如權利要求1的一種數據庫存儲方法,其特征在于,所述s101,分類存儲鍵值對包括:
3.如權利要求1的一種數據庫存儲方法,其特征在于,所述s104,動態調整回收頻率,包括:
4.如權利要求1的一種數據庫存儲方法,其特征在于,所述s107,包括:
5.如權利要求4的一種數據庫存儲方法,其特征在于,所述s201,扇區映射表,包括:
6.如...
【專利技術屬性】
技術研發人員:胡迪義,劉焱,向灝帆,董麗,王斌,郭念,郭勝,劉力,余靖,周莉,
申請(專利權)人:湖北華中電力科技開發有限責任公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。