CN116226232B 面向分布式数据库的持久内存数据存储方法及系统 (浪潮软件集团有限公司)_第1页
CN116226232B 面向分布式数据库的持久内存数据存储方法及系统 (浪潮软件集团有限公司)_第2页
CN116226232B 面向分布式数据库的持久内存数据存储方法及系统 (浪潮软件集团有限公司)_第3页
CN116226232B 面向分布式数据库的持久内存数据存储方法及系统 (浪潮软件集团有限公司)_第4页
CN116226232B 面向分布式数据库的持久内存数据存储方法及系统 (浪潮软件集团有限公司)_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

US2020042496A1,2020.面向分布式数据库的持久内存数据存储方本发明公开了面向分布式数据库的持久内存数据存储方法及系统,属于数据存储技术领擎和多个存取器,所述存储引擎包括DRAM和2通过存储引擎将持久数据以分块对齐的方式顺序存储在PMem中,按照对PMem中线程访问区内的数据条目进行有效性判定,对于通过判定的将PMem上已释放的空闲数据条目组成为隐式链表freelist,并对数据个线程访问区用于存储数据条目以及一个锁定标识和一个freelist局所述数据条目在PMem中以8字节进行对齐,包括8字节的header字段以及末尾8字节的footer字段,header字段和footer字段均用于记录所述数据条目的长度所述锁定标识保存于对应线程访问区的起始位置,用于标记对应线程每个线程访问区中保存有属于所述线程访问区的首个空闲数据条验证空闲数据条目的freelist前后指针有效性:如果无效则说明指存在两个连续的空闲数据条目:说明所述数据条目在分验证header与footer一致性:由于header在数据条目中相对footer先3验证当前数据条目的key是否已存在:根据插入操作中交替更改新旧数据条目header对空闲数据条目的分配操作为:从freelist中遍历选取一个长度合其中,对空闲数据条目进行再分配时按照前后指针进行遍5.根据权利要求1_4任一项所述的面向分布式数据库的持久内存数据存储方法,其特存取器执行写操作时,其访问存储引擎内对应编号的线程访问区,从fre存取器执行读操作时,直接从索引中查找目标键值对在PMem的数由于线程访问区按地址对齐,可直接通过线程访问区地址确定数据条目所属的编号,6.一种面向分布式数据库的持久内存数据存储系统,多个存取器,用于通过如权利要求1_5任一项所述的面向分布式数据库的持久内存数据存数据存储模块,所述数据存储模块用于通过存储引擎将持久数据空间管理模块,所述空间管理模块用于将PMem上已4键值索引模块,所述键值索引模块用于对数据条目进行键到地址的映射所述数据条目在PMem中以8字节进行对齐,包括8字节的header字段以及末尾8字节的footer字段,header字段和footer字段均用于记录所述数据条目的长度所述锁定标识保存于对应线程访问区的起始位置,用于标记对应线程每个线程访问区中保存有属于所述线程访问区的首个空闲数据条所述DRAM通过mmap映射的方式反映PMem中内容,并通过列表结构记所述数据存储模块用于通过如下步骤对线程访问区内的数据条目逐条验证空闲数据条目的freelist前后指针有效性:如果无效则说明指存在两个连续的空闲数据条目:说明所述数据条目在分验证header与footer一致性:由于header在数据条目中相对footer先验证当前数据条目的key是否已存在:根据插入操作中交替更改新旧数据条目header5所述分配操作从freelist中遍历选取一个长度合适的条目,根据需值索引模块用于在系统重启时通过扫描的方式10.根据权利要求6所述的面向分布式数据库的持久内存数据存储系统,其特征在于,所述读接口包括单条读取与范围读取,通过对基数树索引的先序遍历所述写接口用于调用空间管理模块的分配操作为新数据分配条目并调用存取器执行写操作时,其访问存储引擎内对应编号的线程访问所述删除接口利用轻量级逻辑删除的方式,调用空间管理模块的6磁盘缺陷的理想存储设备。当前持久内存最显著的[0005]面向持久内存的数据存储系统是典型的持久内存应用案例。以一个典型的基于分布式数据库等系统中包含大量的范围查找需求,无序的散列索引难以有效支持范围操7开销。小将分块依次加载到DRAM的数据映射区,并在元信息中记录已保存的持久数据和分块数[0015]对PMem中线程访问区内的数据条目进行有效性判定,对字段以及末尾8字节的footer字段,header字段和footer字段均用于记录所述数据条目的8[0024]存在两个连续的空闲数据条目:说明所述数据条目在分配后尚未完成写入即断更新header的时机是完成键值写入或准备释放数据条目,恢复时均以header的状态为准,[0026]验证当前数据条目的key是否已存在:根据插入操作中交替更改新旧数据条目header标记为已释放,恢复时可根据所述验证header与footer一致性的规则完成释放操9息中记录已保存的持久数据和分块数量;在DRAM中通过列表结构记录已创建的分块;对字段以及末尾8字节的footer字段,header字段和footer字段均用于记录所述数据条目的[0049]所述数据存储模块用于通过如下步骤对线程访问区内的数据条目逐条判定有效[0051]存在两个连续的空闲数据条目:说明所述数据条目在分配后尚未完成写入即断更新header的时机是完成键值写入或准备释放数据条目,恢复时均以header的状态为准,[0053]验证当前数据条目的key是否已存在:根据插入操作中交替更改新旧数据条目header标记为已释放,恢复时可根据所述验证header与footer一致性的规则完成释放操[0055]所述分配操作从freelist中遍历选取一个长度合适的条[0062]调用存取器执行读操作时,直接从索引中查找目标键值对在PMem的数据条目地[0064]调用存取器执行写操作时,其访问存储引擎内对应编号的线程访问区,从入开销;[0085]对PMem中线程访问区内的数据条目进行有效性判定,对于通过判定的是数据条[0088]本实施例中,每个线程访问区用于存储数据条目以及一个锁定标识和一个以及末尾8字节的footer字段,header字段和footer字段均用于记录所述数据条目的长度[0091]同时,每个线程访问区中保存有属于所述线程访问区的[0093](1)验证空闲数据条目的freelist前后指针有效性:如果无效则说明指向的数据[0094](2)存在两个连续的空闲数据条目:说明所述数据条目在分配后尚未完成写入即且更新header的时机是完成键值写入或准备释放数据条目,恢复时均以header的状态为header标记为已释放,恢复时可根据所述验证header与footer一致性的规则完成释放操[0107]数据存储模块用于通过存储引擎将持久数据以分块对齐的方式顺序存储在PMem分为等量的访问区,划分的大小取决于支持并发访问的并发程度与键值数据的平均大小;每个访问区内包含一个锁定标识、一个freelist局部入口指针,其余部分保存数据条目。结构记录当前已创建的块,当存取器没有足够的空间写入新条目时由该模块负责创建新以及末尾8字节的footer字段,header字段和footer字段均用于记录所述数据条目的长度[0115](1)验证空闲数据条目的freelist前后指针有效性:如果无效则说明指向的数据[0116](2)存在两个连续的空闲数据条目:说明所述数据条目在分配后尚未完成写入即且更新header的时机是完成键值写入或准备释放数据条目,恢复时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论