[发明专利]非统一内存访问架构下的持久性内存索引构建方法在审
申请号: | 202110722046.4 | 申请日: | 2021-06-28 |
公开(公告)号: | CN113656396A | 公开(公告)日: | 2021-11-16 |
发明(设计)人: | 舒继武;汪庆;陆游游;程卓 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2455;G06F16/245;G06F16/23;G06F12/02;G06F11/14 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 张梦瑶 |
地址: | 10008*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 统一 内存 访问 架构 持久性 索引 构建 方法 | ||
1.一种非统一内存访问架构下的持久性内存索引构建方法,其特征在于,包括以下步骤:
在持久性内存中维护多份局部持久视图,在DRAM中维护一份全局易失视图;
当线程访问冷数据时,所述线程中的请求被底层持久性内存索引处理;
当线程访问热数据时,判断所述线程中的请求的类型,若为查询操作,所述线程读取全局易失视图中对应数据,若为插入、更新、删除操作,所述线程更新对应的本地局部持久视图和全局易失视图;
当发生热点迁移时,进行后台操作,生成新的局部持久视图和全局易失视图,并回收旧的局部持久视图和全局易失视图。
2.如权利要求1所述的方法,其特征在于,所述非统一内存访问架构包括多个非统一内存访问NUMA节点,所述NUMA节点包含若干持久性内存和DRAM。
3.如权利要求1所述的方法,其特征在于,根据对应键的访问频率区间将数据分为冷数据和热数据,所述对应键的访问频率若高于设定的阈值,所述数据为热数据,否则所述数据为冷数据。
4.如权利要求1或2所述的方法,其特征在于,所述局部持久视图有多份,每一个NUMA节点中有一份局部持久视图,所述本地局部持久视图为所述线程所在NUMA节点的局部持久视图。
5.如权利要求1所述的方法,其特征在于,所述局部持久视图存储着热数据的键值,并通过记录额外元数据,保证系统崩溃重启后,能够从多份局部持久视图中恢复最新的数据。
6.如权利要求1所述的方法,其特征在于,针对每份热数据,所述全局易失视图中记录对应的键值、读写锁和该键值在局部持久视图中的位置信息,所述读写锁用于保证并发访问的正确性。
7.如权利要求1所述的方法,其特征在于,所述底层持久性内存索引为现有的任何支持并发访问的持久性索引,所述底层持久性内存索引被存储在多个NUMA节点的持久性内存中。
8.如权利要求1所述的方法,其特征在于,所述热数据的查询操作具体过程为:
所述线程查询全局易失视图,获得对应键值的读锁,然后读取值并释放读锁。
9.如权利要求1所述的方法,其特征在于,所述热数据的插入、更新、删除操作,包括以下步骤:
所述线程查询全局易失视图,获得对应键值的写锁;
读取所述对应键值在局部持久视图的位置信息;
所述线程根据所述位置信息将最新的值写入本地局部持久视图中;
所述线程更新全局易失视图中对应的值,并释放写锁。
10.如权利要求1或2所述的方法,其特征在于,当热点迁移时,所述后台操作的具体过程为:
后台线程根据新的热数据生成新的局部持久视图和全局易失视图;
所述后台线程将所述新的局部持久视图和全局易失视图安装至系统中,服务后续的操作请求;
所述后台线程将旧的全局易失视图中的键值插入至所述底层持久性内存索引中,并释放旧的视图所占用的所述持久性内存和所述DRAM的空间。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110722046.4/1.html,转载请声明来源钻瓜专利网。