一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种分布式持久性内存文件系统保持数据一致性的方法与流程

2022-02-21 04:18:55 来源:中国专利 TAG:

1.本发明涉及保持数据一致性的技术领域,尤其涉及一种分布式持久性内存文件系统保持数据一致性的方法。


背景技术:

2.近年来,新兴的非易失性存储器(nvm)具有字节可寻址、非易失性、存储密度高以及访问延迟低的特性,其经由内存总线与cpu连接的非易失性存储器也被称为持久性内存(pm)。另一方面,由于高速、超低延迟、零拷贝、内核旁路的网络传输特性,远程内存直接访问(rdma)逐渐应用于数据中心等领域。rddma可以实现应用点对点的通信,以避免诸如上下文切换、冗余内存拷贝、内核网络协议栈等开销。持久性内存和rdma的出现为构建新的存储系统提供了新的机会。
3.持久性内存和rdma的新特性对于存储系统的一致性设计提出了两个挑战。1)现代处理器利用多核和内部缓存来提高整体运转速度,通常采用乱序执行技术,最终写入存储器的数据不是预期的结果,针对持久性内存会出现数据一致性的问题。在这种情况下,为了将数据顺序写入持久性内存,cpu需要有效地执行数据刷写入命令,但是该处理开销高,使cpu的处理能力降低,影响持久性内存和rddma的性能优越性。2)rdma的通信过程需要注册内存,单向的原语可以绕过服务器端cpu直接读写注册的内存。为了考虑性能,rdma会将数据先写入至末级高速缓存,由于cpu不能及时将数据刷写至持久性内存。因此,系统崩溃后,原始数据将无法有效恢复。
4.在面向rdma的分布式持久性内存系统下,有以下两种现有的技术方案。1)该方案结合rdma和持久性内存的特性在hdfs基础上实现了分布式文件系统nvfs,它利用rdma的高性能特性设计并实现了一套高效的网络通信接口,利用字节寻址的持久性内存构建缓冲池,将写前日志和计算的中间结果保存在持久性内存中,这极大提高了系统整体性能;2)第二种方案设计并实现了分布式持久性内存文件系统octopus,它将文件系统的读写操作与rdma读写原语相结合起来,实现了一套高性能的远程过程调用和读写接口。同时,利用rdma的读写和原子操作实现了分布式事务机制,充分发挥rdma的性能优势,减少了传统事务操作中网络通信和cpu处理所带来的开销。
5.现有技术方案要么完全不考虑数据一致性,要么使用常见的redo/undo日志机制保障操作的原子性。然而,使用redo/undo日志会导致数据重复写问题,在加重数据持久化开销的同时,还会浪费带宽和加速持久性内存磨损;而影子分页技术采用异地更新数据块的方法,将原有指向旧数据块的指针更新指向新的数据块,但这将有可能导致所有的数据更新蔓延到根节点。针对服务器端无法感知客户端写入数据的问题,一种可行的方案是采用客户端执行rdma send原语发送数据给服务器端,服务器端将数据写到指定的地址,然后执行数据持久化操作,但此方式引入了冗余拷贝。


技术实现要素:

6.本发明的目的就是为了解决上述问题,提供一种分布式持久性内存文件系统保持数据一致性的方法,可以保障系统的数据一致性,保证服务端数据的一致性,能减少系统的开销。
7.为了实现上述目的,本发明采用如下技术方案:
8.一种分布式持久性内存文件系统保持数据一致性的方法,包括:
9.步骤一,将非易失存储器(nvm)作为影子内存来储存检查点与数据,系统故障或崩溃后,恢复最近一次的检查点的数据,保证系统的一致性;
10.步骤二,通过基于非易失存储器(nvm)的直接存储器(dma)访问技术,将非易失存储器(nvm)中的数据预拷贝到远程节点。
11.所述步骤一中,在本地检查点期间,所有检查点的数据都存放在非易失存储器(nvm)中。
12.所述步骤一中,系统故障或崩溃后在读回数据时,直接访问非易失存储器(nvm)。
13.所述步骤一中,系统故障或崩溃后在试图修改数据时,将非易失存储器(nvm)中的数据移回内存来进行写操作。
14.所述步骤二中,通过维护每个块数据的计数器与状态,来降低开销。
15.降低开销的具体方法为:当处理器发出块的写入错误时,块对应的故障地址标记为脏,块数据不会拷贝到非易失存储器(nvm)中,直至修改的计数大于等于预测表中的值。
16.本发明的有益效果:
17.本发明首先提出了一种基于持久性内存-检查点的一致性保障策略,在系统崩溃后,会通过最近一次的检查点来恢复数据,保障了系统的数据一致性;然后,实现了一种基于远程检查点的预拷贝机制,既能保证服务端数据的一致性,又能减少系统的开销。
具体实施方式
18.下面结合实施例对本发明作进一步说明。
19.本发明首先提出了一种基于持久性内存-检查点的一致性保障策略,通过影子缓冲机制,将nvm作为内存而非io设备,创建一个基于nvm的影子内存来备份数据与检查点。这样系统崩溃后,可以恢复最近一次的检查点的数据,保证系统的一致性。然后,实现了一种基于远程检查点的预拷贝机制,通过基于nvm的dma技术,将nvm中的数据预拷贝到远程节点,既能保证服务端数据的一致性,又能减少系统的开销。
20.一种分布式持久性内存文件系统保持数据一致性的方法包括:
21.步骤一、基于nvm阴影缓冲-本地检查点的一致性保障策略;
22.由于nvm相对于内存的写入性能差,而读性能是在一个量级上的,不宜把nvm直接面对上层应用。因此提出了一个影子缓冲机制,将nvm作为影子内存来储存检查点与数据。在本地检查点期间,所有检查点的数据都存放在nvm中。在读回数据时可以直接访问nvm;在试图修改数据时,将nvm中的数据移回内存来进行写操作。这样当系统发生故障或者崩溃时,会通过最近一次的检查点来恢复数据,保障了系统的数据一致性。
23.步骤二、基于远程检查点的预拷贝机制;
24.使用远程检查点的目的主要有二;第一,减少峰值资源的使用;第二,在不影响应
用程序的情况下,加快远程检查点的速度,保持服务端的数据一致性。基于以上两点,提出了一个基于远程检查点的预拷贝机制。将客户端nvm缓冲区的数据通过基于nvm的dma技术预拷贝到服务端,这样大大的降低了峰值资源的使用,提高了检查点的速度。为了降低预拷贝带来的数据移动开销,提出了一个预测表机制。通过维护每个块数据的计数器与状态,来降低开销。当处理器发出写入错误时,该块对应的故障地址标记为脏,该块数据不会拷贝到nvm中直至修改的计数大于等于预测表中的值。例如,块c2是在初始运行期间修改了2次,因此在他计数器变为0之前不会将它复制到nvm中。通过该预测表机制,可以大大降低预拷贝带来的数据移动开销。
25.上述虽然对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。


技术特征:
1.一种分布式持久性内存文件系统保持数据一致性的方法,其特征是,包括:步骤一,将非易失存储器作为影子内存来储存检查点与数据,系统故障或崩溃后,恢复最近一次的检查点的数据,保证系统的一致性;步骤二,通过基于非易失存储器的直接存储器访问技术,将非易失存储器中的数据预拷贝到远程节点。2.如权利要求1所述一种分布式持久性内存文件系统保持数据一致性的方法,其特征是,所述步骤一中,在本地检查点期间,所有检查点的数据都存放在非易失存储器中。3.如权利要求1所述一种分布式持久性内存文件系统保持数据一致性的方法,其特征是,所述步骤一中,系统故障或崩溃后在读回数据时,直接访问非易失存储器。4.如权利要求1所述一种分布式持久性内存文件系统保持数据一致性的方法,其特征是,所述步骤一中,系统故障或崩溃后在试图修改数据时,将非易失存储器中的数据移回内存来进行写操作。5.如权利要求1所述一种分布式持久性内存文件系统保持数据一致性的方法,其特征是,所述步骤二中,通过维护每个块数据的计数器与状态,来降低开销。6.如权利要求5所述一种分布式持久性内存文件系统保持数据一致性的方法,其特征是,降低开销的具体方法为:当处理器发出块的写入错误时,块对应的故障地址标记为脏,块数据不会拷贝到非易失存储器中,直至修改的计数大于等于预测表中的值。

技术总结
本发明公开了一种分布式持久性内存文件系统保持数据一致性的方法;包括:步骤一,将非易失存储器作为影子内存来储存检查点与数据,系统故障或崩溃后,恢复最近一次的检查点的数据,保证系统的一致性;步骤二,通过基于非易失存储器的直接存储器访问技术,将非易失存储器中的数据预拷贝到远程节点。在系统崩溃后,会通过最近一次的检查点来恢复数据,保障了系统的数据一致性;然后,实现了一种基于远程检查点的预拷贝机制,既能保证服务端数据的一致性,又能减少系统的开销。又能减少系统的开销。


技术研发人员:张瑛卓
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2021.10.29
技术公布日:2022/1/21
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献