【技术实现步骤摘要】
基于NVM主存的数据索引方法及数据处理系统
本专利技术涉及数据库系统及大数据系统领域,特别涉及一种面向非易失主存的树状索引结构,索引方法和系统。
技术介绍
1.1新一代非易失性存储技术新一代非易失性存储器(NVM)是一种计算机存储器,是对现有的DRAM(动态随机存储器)主存技术的替代或补充。当前的集成电路特征尺寸已经达到7nm,DRAM技术继续向下扩展至更小的特征尺寸存在巨大的挑战。新一代NVM技术通过改变存储介质的电阻来存储0/1,可以支持更小的特征尺寸,为上述问题提供了一种可行的解决方案。新一代NVM技术包括相变存储器(PCM),自旋转移扭矩磁性随机存取存储器(STT-MRAM)和忆阻器(Memristor),3DXPoint等。与DRAM技术相比,NVM技术具有下述特点:(1)NVM的读写性能与DRAM相近,但是比DRAM慢(例如3倍);(2)NVM的写比读性能差,功耗高,而且写可能有次数的限制,即同一个存储单元写的次数超过某个阈值,存储单元就会损坏;(3)写入NVM的数据在掉电后不消失,而掉电后DRAM和CPUCache中的数据将会消失;(4)为了保证CPUCache中的内容写回NVM,需要执行clwb/clflush/clflushopt等cachelineflush指令和sfence/mfence等内存操作排序指令,这些特殊指令的性能代价比普通写高(例如10倍);(5)CPU访问NVM的基本单元是一个Cacheline(例如64B)。(6)NVM模块内部的访问基本单元可能比Cachelin ...
【技术保护点】
1.一种基于NVM的数据索引方法,其特征在于,包括:/n构建树状索引结构;该树状索引结构的根节点及内部节点设置于数据处理系统的DRAM主存,该树状索引结构的叶子节点设置于该数据处理系统的NVM主存;该叶子节点具有多个且处于同一层,并从左到右以兄弟链表连接;该叶子节点包括A索引单元,该A索引单元依次包括首索引行、中间索引行和尾索引行,该首索引行、该中间索引行和该尾索引行分别包括多个索引项;/n将新增数据写入该当前叶子节点时,判断该当前叶子节点的A索引单元是否存在空闲索引项,若存在,则进行数据写入操作,反之则进行并完成节点分裂操作后再进行该数据写入操作;/n其中,该数据写入操作包括:若该首索引行存在空闲索引项,则将该新增数据写入该首索引行的空闲索引项;反之则将该新增数据和该首索引行内存储的已存数据迁移至该中间索引行和/或该尾索引行的空闲索引项;/n该节点分裂操作包括:构建新叶子节点并加入该兄弟链表,将该当前叶子节点的部分已存数据迁移至该新叶子节点的索引单元的空闲索引项。/n
【技术特征摘要】
1.一种基于NVM的数据索引方法,其特征在于,包括:
构建树状索引结构;该树状索引结构的根节点及内部节点设置于数据处理系统的DRAM主存,该树状索引结构的叶子节点设置于该数据处理系统的NVM主存;该叶子节点具有多个且处于同一层,并从左到右以兄弟链表连接;该叶子节点包括A索引单元,该A索引单元依次包括首索引行、中间索引行和尾索引行,该首索引行、该中间索引行和该尾索引行分别包括多个索引项;
将新增数据写入该当前叶子节点时,判断该当前叶子节点的A索引单元是否存在空闲索引项,若存在,则进行数据写入操作,反之则进行并完成节点分裂操作后再进行该数据写入操作;
其中,该数据写入操作包括:若该首索引行存在空闲索引项,则将该新增数据写入该首索引行的空闲索引项;反之则将该新增数据和该首索引行内存储的已存数据迁移至该中间索引行和/或该尾索引行的空闲索引项;
该节点分裂操作包括:构建新叶子节点并加入该兄弟链表,将该当前叶子节点的部分已存数据迁移至该新叶子节点的索引单元的空闲索引项。
2.如权利要求1所述的数据索引方法,其特征在于,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的有效指针用于连接该兄弟链表。
3.如权利要求2所述的数据索引方法,其特征在于,该节点分裂操作步骤具体包括:
当叶子节点Noden的所有索引项都被占用,分配新增叶子节点Noden',Noden'具有与Noden相同的结构;
将Noden的部分已存数据复制到Noden'的索引项,并修改Noden'的首索引行Lh'索引头H'的索引占用位图bitmap';
将Noden'的兄弟链表指针项S'的有效指针指向Noden的右兄弟叶子节点Noden+1,将Noden的兄弟链表指针项S的无效指针指向Noden';
在该NVM主...
【专利技术属性】
技术研发人员:陈世敏,刘霁航,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。