[發明專利]一種分布式數據庫事務數據存儲優化的方法有效
| 申請號: | 202011429468.4 | 申請日: | 2020-12-09 |
| 公開(公告)號: | CN112487095B | 公開(公告)日: | 2023-03-28 |
| 發明(設計)人: | 賈德星;孫思清;張暉;劉佳星;張煒剛 | 申請(專利權)人: | 浪潮云信息技術股份公司 |
| 主分類號: | G06F16/27 | 分類號: | G06F16/27;G06F16/22;G06F16/21 |
| 代理公司: | 濟南信達專利事務所有限公司 37100 | 代理人: | 姜鵬 |
| 地址: | 250100 山東省濟南市高*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 分布式 數據庫 事務 數據 存儲 優化 方法 | ||
1.一種分布式數據庫事務數據存儲優化的方法,其特征在于,具有以下步驟:
S1、增加半固化內存表;
S2、半固化內存表由內存Block與SST文件組成;
S3、內存Block數據合并執行Compaction操作;
S4、半固化內存表的內存Block為空時,從存儲引擎中移除該內存表;
S5、半固化內存表設置一個最長生命周期時間閾值;
S6、系統發生故障并重啟后,根據WAL恢復為只讀內存表的數據;
S7、半固化內存表對外提供與只讀內存表相同的讀接口;
S8、收到讀請求后,確保最新寫入的數據優先被讀取。
2.根據權利要求1所述的一種分布式數據庫事務數據存儲優化的方法,其特征在于,在步驟S1中,增加新的半固化內存表,在只讀內存表需要持久化時,進行Compaction處理后轉換為半固化內存表,寫意圖數據駐留在內存中,多版本數據寫入SST文件。
3.根據權利要求1所述的一種分布式數據庫事務數據存儲優化的方法,其特征在于,在步驟S2中,半固化內存表由內存Block與SST文件組成,其中,內存Block記錄的是事務中寫意圖的數據,SST文件中記錄的則是正常的多版本數據。
4.根據權利要求1所述的一種分布式數據庫事務數據存儲優化的方法,其特征在于,在步驟S3中,當有新的只讀內存表進行Flush操作時,會與所有半固化內存表中的內存Block數據合并執行Compaction操作,清理已經刪除的寫意圖數據。
5.根據權利要求1所述的一種分布式數據庫事務數據存儲優化的方法,其特征在于,在步驟S4中,當半固化內存表的內存Block為空時,則將半固化內存表中的SST文件移動到存儲引擎的L0層,并從存儲引擎中移除該內存表;
同時修改Manifest摘要文件,將SST文件加入到存儲引擎實例中,移除對WAL的引用,使得存儲引擎在之后的操作中刪除內存表關聯的WAL文件。
6.根據權利要求1所述的一種分布式數據庫事務數據存儲優化的方法,其特征在于,在步驟S5中,半固化內存表設置一個最長的生命周期時間閾值,當從只讀內存表轉換為半固化內存表后,會啟動后臺定時線程監測半固化內存表的存活時間;
當存活時間超過閾值后,如果內存表中的內存Block不為空,則強制刪除內存中的寫意圖數據,移動SST文件到存儲引擎L0層,從存儲引擎中刪除該內存表,相當于丟棄事務數據;
內存表的生命周期時間閾值大于事務的超時時間,在存儲引擎層丟棄寫意圖數據之后,根據事務隔離級別的不同,對SQL層發送的清理操作可以不處理或返回錯誤。
7.根據權利要求1所述的一種分布式數據庫事務數據存儲優化的方法,其特征在于,在步驟S6中,當系統發生故障并重啟后,存儲引擎需要根據WAL恢復為只讀內存表的數據,再重新Compaction后轉換為半固化內存表,而故障前半固化內存表中的SST文件則直接刪除。
8.根據權利要求1所述的一種分布式數據庫事務數據存儲優化的方法,其特征在于,在步驟S7中,半固化內存表對外提供與只讀內存表相同的讀接口,外部讀寫通過接口讀取內存表中的內存Block和SST文件數據。
9.根據權利要求1所述的一種分布式數據庫事務數據存儲優化的方法,其特征在于,在步驟S8中,當接收到讀取請求后,存儲引擎將按照活動內存表只讀內存表半固化內存表SST文件的順序逐層處理,保持與數據寫入的順序一致。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浪潮云信息技術股份公司,未經浪潮云信息技術股份公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011429468.4/1.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





