[发明专利]操作数据的方法和装置以及管理持久化跳表的方法和装置在审

专利信息
申请号: 202010398318.5 申请日: 2020-05-12
公开(公告)号: CN111597076A 公开(公告)日: 2020-08-28
发明(设计)人: 杨俊;陈宬;卢冕 申请(专利权)人: 第四范式(北京)技术有限公司
主分类号: G06F11/14 分类号: G06F11/14;G06F12/06
代理公司: 北京铭硕知识产权代理有限公司 11286 代理人: 张军;曾世骁
地址: 100085 北京市海淀区上*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 操作 数据 方法 装置 以及 管理 持久 化跳表
【说明书】:

提供了一种操作数据的方法和装置以及管理持久化跳表的方法和装置。操作数据的方法包括:读取具有特定格式的第一指针sp,其中,所述特定格式至少包括地址部分和脏位;根据第一指针sp的脏位确定是否对第一指针sp执行flush操作;以及通过比较并交换CAS操作将第一指针sp修改为指向新地址。

技术领域

本申请总体说来涉及持久化内存设备(Persistent Memory,PMEM)的数据操作的技术领域,更具体地讲,涉及持久化内存设备的数据操作的方法和装置以及管理持久化跳表的方法和装置。

背景技术

现有的并发无锁跳表都是基于比较并交换(Compare and Swap,CAS)操作实现的,但是PMEM不同于DRAM的地方在于持久化特性,即在断电时数据不会丢失。在现有计算机软硬件架构下,程序对内存的读写都会经过CPU中的缓存(基本单元叫做缓存行(Cacheline)),所以对于PMEM中的数据的写操作(包括CAS),并不能保证此被写入的新数据会被立刻写入PMEM。只有当新数据所在的Cacheline被写回PMEM中(即进行缓存行刷新(Cacheline flush),以下简称FLUSH)时,数据才被真正写入PMEM。FLUSH的顺序与数据被修改的顺序无关,由CPU自行决定,程序可以通过额外执行一次指令(CLFLUSH/CLWB)达到目的,但是这些指令无法与传统CAS组合成原子操作。因此在某些情况下,使用传统CAS在断电恢复后会造成数据不一致的问题。例如,如图1中所示,X由线程1控制,初始值为1,Y需要始终保持其值等于X+1,由线程2控制。由于CAS+FLUSH不是原子操作,因此线程1和2可能会按照图1的顺序执行,因此,如果在线程1的flush(X)前系统断电,则恢复后由于X的新值未被真正写入PMEM,因此会导致X的值仍为修改前的1,而Y的新值4已经写入PMEM,导致Y≠X+1,进而造成数据不一致的问题。所以现有的CAS无法运用到基于PMEM的持久化数据结构中。

虽然,现有技术可利用读前刷新(flush-on-read)机制从正确性上解决以上问题,即在CAS前对所读数据进行一次FLUSH,但是在现今系统中,缺乏判断所读数据是否需要FLUSH的方法。此外,在无锁跳表的实现中大量使用了CAS,如果每个CAS前都进行FLUSH,则会产生大量的不必要的FLUSH,而FLUSH本身是一个非常耗时的操作。此外,现有技术还可利用Cachelineflush指令(CLFLUSH/CLWB)来解决以上问题,但是这些指令本身只有在flush的数据量≤64字节(64B)才是原子操作,这意味着如果在对于数据量64B的数据执行flush操作的过程中发生断电,则在系统重启恢复后,涉及的数据量64B的数据可能会出现只有部分数据被更新而导致的数据不一致的问题。

发明内容

本申请的示例性实施例在于提供一种操作数据的方法和装置以及管理持久化跳表的方法和装置,以至少解决现有技术存在的上述问题。

根据本申请的示例性实施例,提供一种操作数据的方法,所述方法可包括:读取具有特定格式的第一指针sp,其中,所述特定格式至少包括地址部分和脏位;根据第一指针sp的脏位确定是否对第一指针sp执行flush操作;通过比较并交换CAS操作将第一指针sp修改为指向新地址。

可选地,根据第一指针sp的脏位确定是否对第一指针sp执行flush操作的步骤可包括:确定第一指针sp的脏位是否为第一值;如果第一指针sp的脏位为第一值,则将第一指针sp的脏位设置为第二值并对第一指针sp执行flush操作,如果第一指针sp的脏位为第二值,则不对第一指针sp执行flush操作。

可选地,所述特定格式中的脏位可以是指针的最低的3个位中的至少一位。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于第四范式(北京)技术有限公司,未经第四范式(北京)技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202010398318.5/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top