[發明專利]基于NVM主存的數據索引方法及數據處理系統有效
| 申請號: | 202010064770.8 | 申請日: | 2020-01-20 |
| 公開(公告)號: | CN111274456B | 公開(公告)日: | 2023-09-12 |
| 發明(設計)人: | 陳世敏;劉霽航 | 申請(專利權)人: | 中國科學院計算技術研究所 |
| 主分類號: | G06F16/901 | 分類號: | G06F16/901 |
| 代理公司: | 北京律誠同業知識產權代理有限公司 11006 | 代理人: | 祁建國 |
| 地址: | 100080 北*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 nvm 主存 數據 索引 方法 數據處理系統 | ||
1.一種基于NVM的數據索引方法,其特征在于,包括:
構建樹狀索引結構;該樹狀索引結構的根節點及內部節點設置于數據處理系統的DRAM主存,該樹狀索引結構的葉子節點設置于該數據處理系統的NVM主存;該葉子節點具有多個且處于同一層,并從左到右以兄弟鏈表連接;該葉子節點包括A索引單元,該A索引單元NVMLine包括M個索引行Line,每個Line具有N個數據項存儲位置;第1個Line為首索引行Lh,Lh的第1個數據項存儲位置為索引頭H,Lh的其余數據項存儲位置為索引項,第2~M-1個Line為中間索引行Li,Li的所有數據項存儲位置均為索引項,第M個Line為尾索引行Lt,Lt的第N個數據項為兄弟鏈表指針項S,Lt的其余數據項為索引項;M、N為正整數;索引頭H包括寫入鎖定位lockbit、交替控制位altbit、索引占用位圖bitmap和索引指紋位F,S包括指針S0和指針S1;lockbit用于設置當前葉子節點的寫入狀態;altbit用于通過NVM原子寫設置S0和S1的其中一個為有效指針,且另一個為無效指針;bitmap,用于分別記錄每個索引項的占用狀態;F為fingerprint數組,用于分別記錄每個索引項的指紋;S的有效指針用于連接該兄弟鏈表;
將新增數據寫入當前葉子節點時,判斷該當前葉子節點的A索引單元是否存在空閑索引項,若存在,則進行數據寫入操作,反之則進行并完成節點分裂操作后再進行該數據寫入操作;
其中,該數據寫入操作包括:若該首索引行存在空閑索引項,則將該新增數據寫入該首索引行的空閑索引項;反之則將該新增數據和該首索引行內存儲的已存數據遷移至該中間索引行和/或該尾索引行的空閑索引項;
該節點分裂操作包括:當葉子節點Noden的所有索引項都被占用,分配新增葉子節點Noden',Noden'具有與Noden相同的結構;將Noden的部分已存數據復制到Noden'的索引項,并修改Noden'的首索引行Lh'索引頭H'的索引占用位圖bitmap';將Noden'的兄弟鏈表指針項S'的有效指針指向Noden的右兄弟葉子節點Noden+1,將Noden的兄弟鏈表指針項S的無效指針指向Noden';在該NVM主存中持久化Noden';以NVM原子寫設置altbit以將S指向Noden'的指針設置為有效指針,并將S指向Noden+1的指針設置為無效指針;將該部分已存數據在Noden的索引項清空為空閑索引項,并以NVM原子寫修改bitmap。
2.如權利要求1所述的數據索引方法,其特征在于,該葉子節點還包括至少一個B索引單元NVMLine',設置于每個NVMLine'包括M個Line,每個Line具有N個數據項存儲位置;
NVMLine'的第1個Line的第1個數據項存儲位置為首索引頭H0,NVMLine'的第M個Line的第N個數據項存儲位置為尾索引頭H1;
H0包括索引占用位圖bitmap'和索引指紋位F';H1具有與H0相同的結構;通過NVM原子寫設置H的altbit,以設置H0和H1的其中一個為有效索引頭,且另一個為無效索引頭,其中,有效索引頭的bitmap'用于分別記錄當前NVMLine'的每個索引項的占用狀態;有效索引頭的F'為fingerprint數組,用于分別記錄當前NVMLine'的每個索引項的指紋。
3.如權利要求1所述的數據索引方法,其特征在于,該數據索引方法還包括:
僅當寫入鎖定位lockbit設置為鎖定狀態且退出并發控制的硬件事務后,進行獨占葉子節點的數據寫入操作。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院計算技術研究所,未經中國科學院計算技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010064770.8/1.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





