[发明专利]操作数据的方法和装置以及管理持久化跳表的方法和装置在审
申请号: | 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个位中的至少一位。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于第四范式(北京)技术有限公司,未经第四范式(北京)技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010398318.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于垃圾中转站的壁挂式除臭系统
- 下一篇:一种模组用组合式线路板组
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置