持久化内存的数据处理方法、设备、介质和产品与流程
- 国知局
- 2025-01-10 13:15:56
本发明实施例涉及数据处理,尤其涉及一种持久化内存的数据处理方法、设备、介质和产品。
背景技术:
1、随着互联网应用的飞速发展,对于数据存储的需求也在不断增长,高性能、高可靠性的数据存储解决方案成为了众多互联网服务的基础支撑。远程字典服务(remotedictionary server,简称redis)作为一种内存键值数据库,因其出色的读写性能和灵活的数据结构,被广泛应用于缓存、消息队列、实时数据分析等多个领域。然而,由于内存资源的昂贵及其有限的容量,使得redis在某些应用场景下的规模化部署受到了限制。
2、为了解决这个问题,在一种解决方案中,将redis的部分数据存储到持久化内存上,并采用文件系统的快照技术,在对源文件进行打快照操作后,在对源文件中的数据块进行修改时将触发写时复制(copy on write,简称cow)机制,即分配新的数据块并将源数据块中的数据复制到新数据块,然后将新数据块映射到源数据块的相应位置。
3、然而,源文件在经过多次cow之后,源文件中数据块的区段数量会变的不可控,产生严重的碎片化问题。因此,有必要提出一种新的持久化内存的数据处理方法,以解决源文件的碎片化问题。
技术实现思路
1、本发明实施例提供一种持久化内存的数据处理方法、设备、介质和产品,用保证源文件的稳定性和连续性。
2、第一方面,本发明实施例提供一种持久化内存的数据处理方法,应用于应用程序主进程,应用程序的至少部分数据存储在持久化内存中,应用程序通过内核中的文件系统对持久化内存进行直接访问,方法包括:
3、在第一时刻,对文件系统中的第一源文件进行打快照处理,得到第一快照文件,第一源文件中包括多个数据块,且多个数据块在第一快照文件中均处于共享状态;
4、在第二时刻,响应于对第一源文件中第一数据块的修改操作,分配与第一数据块对应的新数据块,将第一数据块中的数据拷贝到新数据块中,新数据块对应于文件系统中不同于多个地址空间的新地址空间,第一数据块是多个数据块中任一个数据块;
5、更新第一快照文件,以确定更新后第一快照文件中包含新数据块以及多个数据块中除第一数据块之外的数据块,并确定新数据块在更新后第一快照文件中处于不共享状态;
6、根据修改操作,修改第一源文件中第一数据块中的数据以得到第二源文件。
7、第二方面,本发明实施例提供一种持久化内存的数据处理装置,装置包括:
8、快照模块,用于在第一时刻,对文件系统中的第一源文件进行打快照处理,得到第一快照文件,第一源文件中包括多个数据块,且多个数据块在第一快照文件中均处于共享状态;
9、分配模块,用于在第二时刻,响应于对第一源文件中第一数据块的修改操作,分配与第一数据块对应的新数据块,将第一数据块中的数据拷贝到新数据块中,新数据块对应于文件系统中不同于多个地址空间的新地址空间,第一数据块是多个数据块中任一个数据块;
10、更新模块,用于更新第一快照文件,以确定更新后第一快照文件中包含新数据块以及多个数据块中除第一数据块之外的数据块,并确定新数据块在更新后第一快照文件中处于不共享状态;
11、修改模块,用于根据修改操作,修改第一源文件中第一数据块中的数据以得到第二源文件。
12、第三方面,本发明实施例提供一种电子设备,包括:存储器、处理器、通信接口;其中,存储器上存储有可执行代码,当可执行代码被处理器执行时,使处理器至少可以实现如上各方面的持久化内存的数据处理方法。
13、第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,非暂时性机器可读存储介质上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器至少可以实现如上各方面的持久化内存的数据处理方法。
14、第五方面,本发明实施例提供了一种计算机程序产品,计算机程序产品中包含计算机程序,当其被电子设备的处理器执行时,使处理器至少可以实现如上各方面的持久化内存的数据处理方法。
15、本发明实施例提供的方案中,通过在第一时刻,对文件系统中包括多个数据块的第一源文件打快照得到同样包括多个数据块的第一快照文件,且第一快照文件中的多个数据块均处于共享状态。在第二时刻,触发对第一源文件中第一数据块的修改操作,则分配与第一数据块对应的新数据块,并将第一数据块中的数据拷贝到新数据块中,然后更新第一快照文件,使新数据块在更新后的第一快照文件中处于不共享状态,从而使得对第一数据块进行修改时不会触发cow机制,之后,再根据修改操作修改第一源文件中第一数据块中的数据得到第二源文件。这样,由于是直接对第一源文件中的第一数据块进行修改,第一源文件仍使用原始的区段,也就是说没有发生区段的增加,因此保证了第一源文件在区段上的连续性和稳定性。
技术特征:1.一种持久化内存的数据处理方法,其特征在于,应用于应用程序主进程,所述应用程序的至少部分数据存储在持久化内存中,所述应用程序通过内核中的文件系统对所述持久化内存进行直接访问,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述修改所述第一源文件中所述第一数据块中的数据,包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述启动脏页回写线程,包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1-5任一项所述的方法,其特征在于,所述更新后第一快照文件的回收过程包括:
7.根据权利要求6所述的方法,其特征在于,所述启动空间回收线程之后,所述方法还包括:
8.一种电子设备,其特征在于,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至7中任一项所述的方法。
9.一种非暂时性机器可读存储介质,其特征在于,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至7中任一项所述的方法。
10.一种计算机程序产品,其特征在于,包括:计算机程序,当所述计算机程序被电子设备的处理器执行时,使所述处理器执行如权利要求1至7中任一项所述的方法。
技术总结本发明实施例提供一种持久化内存的数据处理方法、设备、介质和产品,属于数据处理领域。该方法包括:在第一时刻,对文件系统中包括多个数据块的第一源文件打快照得到包括多个数据块的第一快照文件,且第一快照文件中的多个数据块均处于共享状态。在第二时刻,触发对第一源文件中第一数据块的修改操作,则分配与第一数据块对应的新数据块,并将第一数据块中的数据拷贝到新数据块中,然后更新第一快照文件,使新数据块在更新后的第一快照文件中处于不共享状态,从而使得对第一数据块进行修改时不会触发COW机制,之后,再根据修改操作修改第一源文件中第一数据块中的数据得到第二源文件。从而保证了第一源文件在区块上的连续性。技术研发人员:齐江,高翔,徐宇,王正恒,王悉宇,马涛,杨勇受保护的技术使用者:阿里云计算有限公司技术研发日:技术公布日:2025/1/6本文地址:https://www.jishuxx.com/zhuanli/20250110/352005.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表