CN115826885B - 一种数据迁移方法、装置及电子设备和存储介质 - Google Patents

一种数据迁移方法、装置及电子设备和存储介质 Download PDF

Info

Publication number
CN115826885B
CN115826885B CN202310140582.2A CN202310140582A CN115826885B CN 115826885 B CN115826885 B CN 115826885B CN 202310140582 A CN202310140582 A CN 202310140582A CN 115826885 B CN115826885 B CN 115826885B
Authority
CN
China
Prior art keywords
data
data migration
threads
migration
subsections
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310140582.2A
Other languages
English (en)
Other versions
CN115826885A (zh
Inventor
李雪生
张凯
孙斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN202310140582.2A priority Critical patent/CN115826885B/zh
Publication of CN115826885A publication Critical patent/CN115826885A/zh
Application granted granted Critical
Publication of CN115826885B publication Critical patent/CN115826885B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请公开了一种数据迁移方法、装置及电子设备和存储介质,涉及存储技术领域,该方法包括:接收用户态的应用程序发送的数据传输请求;将所述数据传输请求对应的读写数据划分为多个数据子段;利用多个数据迁移线程并行对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移;其中,所述数据迁移线程与所述数据子段一一对应。本申请提高了用户态和内核态之间的数据迁移效率。

Description

一种数据迁移方法、装置及电子设备和存储介质
技术领域
本申请涉及存储技术领域,更具体地说,涉及一种数据迁移方法、装置及电子设备和存储介质。
背景技术
单流在存储领域是要求比较高的应用场景,主要适用于高性能计算应用,尤其是卫星、天眼、冷冻电镜等数据写入应用。随着卫星、天文望远镜等数据量的递增,要求分布式存储客户端能够提供更高的接收性能,也就是单流性能。
通常所说的,分布式存储的是由多个存储节点,通过网络互联,组成一个存储***,实现统一的命名空间,能够通过客户端并行访问该***。分布式存储单线程性能,主要通过将文件条带化,并发发送到多个节点,并行处理。
如图1所示,图1为现有技术中的一种数据迁移***的结构图。在现有技术中,应用进程里的单线程访问存储,首先通过标准文件库API(应用程序接口,ApplicationProgramming Interface),调用到内核的VFS(virtual file system,拟文件***接口)然后调用进入分布式存储的内核态客户端,然后再实现数据拷贝实现用户态和内核态的数据搬迁,这样内核态客户端才能访问应用的数据。用户态和内核态的数据迁移拷贝,应用程序发起***调用,进入VFS文件***的API接口,将用户态进程的数据地址,传递到内核态的分布式存储客户端,然后通过用户态和内核态的拷贝函数完成数据迁移,实现将存储的数据从用户进程传递到内核缓存。用户进程将数据缓存传递到内核以后,进行纠删条带计算,对数据缓存进行条带化处理,然后分发到后端存储***。
也即,在现有技术中在***调用里完成用户态到内核态数据的迁移,只能单线程完成,不能发挥内存的全部带宽,只能发挥单核的拷贝性能,单线程IO(输入/输出,Input/Output)理依赖用户进程发起的***调用,是用户的线程相关,造成迁移数据只能串行执行,数据迁移效率较低。
因此,如何提高用户态和内核态之间的数据迁移效率是本领域技术人员需要解决的技术问题。
发明内容
本申请的目的在于提供一种数据迁移方法、装置及一种电子设备和一种计算机可读存储介质,提高了用户态和内核态之间的数据迁移效率。
为实现上述目的,本申请提供了一种数据迁移方法,包括:
接收用户态的应用程序发送的数据传输请求;
将所述数据传输请求对应的读写数据划分为多个数据子段;
利用多个数据迁移线程并行对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移;其中,所述数据迁移线程与所述数据子段一一对应。
其中,所述接收用户态的应用程序发送的数据传输请求,包括:
通过虚拟文件***接口接收用户态的应用程序发送的数据传输请求。
其中,所述利用多个数据迁移线程并行对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移之前,还包括:
创建数据迁移线程池;其中,所述数据迁移线程池包括多个所述数据迁移线程。
其中,将所述数据传输请求对应的读写数据划分为多个数据子段,包括:
基于预设长度将所述数据传输请求对应的读写数据按照顺序划分为多个数据子段。
其中,所述利用多个数据迁移线程并行对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移,包括:
基于多个所述数据子段的地址信息创建对应的多个数据迁移任务;
利用多个数据迁移线程并行执行多个所述数据迁移任务,以实现多个所述数据子段在所述用户态的应用程序和内核态的缓存之间的数据迁移。
其中,所述数据子段的地址信息包括所述应用程序对应的内存管理单元、所述数据子段的长度、源地址和目的地址。
其中,所述利用多个数据迁移线程并行执行多个所述数据迁移任务,以实现多个所述数据子段在所述用户态的应用程序和内核态的缓存之间的数据迁移,包括:
基于所述应用程序对应的内存管理单元将多个数据迁移线程切换至用户态的地址空间;
利用多个数据迁移线程基于对应的多个所述数据子段的源地址和目的地址对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移。
其中,所述基于多个所述数据子段的地址信息创建对应的多个数据迁移任务之前,还包括:
基于预设长度将所述应用程序的缓存划分为多个第一分段,并基于多个所述第一分段的起始地址确定对应的多个所述数据子段的源地址;
基于所述预设长度将所述内核态的缓存划分为多个第二分段,并基于多个所述第二分段的起始地址确定对应的多个所述数据子段的目的地址。
其中,所述利用多个数据迁移线程并行执行多个所述数据迁移任务,以实现多个所述数据子段在所述用户态的应用程序和内核态的缓存之间的数据迁移,包括:
利用多个数据迁移线程并行执行多个所述数据迁移任务,以将多个所述数据子段从所述用户态的应用程序迁移至所述内核态的缓存。
其中,所述基于多个所述数据子段的地址信息创建对应的多个数据迁移任务之前,还包括:
基于预设长度将所述内核态的缓存划分为多个第二分段,并基于多个所述第二分段的起始地址确定对应的多个所述数据子段的源地址;
基于所述预设长度将所述应用程序的缓存划分为多个第一分段,并基于多个所述第一分段的起始地址确定对应的多个所述数据子段的目的地址。
其中,所述利用多个数据迁移线程并行执行多个所述数据迁移任务,以实现多个所述数据子段在所述用户态的应用程序和内核态的缓存之间的数据迁移,包括:
利用多个数据迁移线程并行执行多个所述数据迁移任务,以将多个所述数据子段从所述内核态的缓存迁移至所述用户态的应用程序。
其中,所述利用多个数据迁移线程并行对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移之后,还包括:
将迁移后的数据划分为多个数据条带;
利用多个纠删冗余计算线程并行对多个所述数据条带进行纠删冗余计算;其中,所述纠删冗余计算线程与所述数据条带一一对应。
其中,所述利用多个纠删冗余计算线程并行对多个所述数据条带进行纠删冗余计算之前,还包括:
创建纠删冗余计算线程池;其中,所述纠删冗余计算线程池包括多个所述纠删冗余计算线程。
其中,所述将迁移后的数据划分为多个数据条带,包括:
基于预设长度将迁移后的数据按照顺序划分为多个数据条带。
其中,所述利用多个纠删冗余计算线程并行对多个所述数据条带进行纠删冗余计算,包括:
基于多个所述数据条带的输入缓存地址和输出缓存地址创建对应的多个纠删冗余计算任务;
利用多个纠删冗余计算线程并行对多个所述数据条带进行纠删冗余计算。
其中,所述将迁移后的数据划分为多个数据条带之前,还包括:
判断所有所述数据迁移线程是否全部执行完成;
若是,则执行所述将迁移后的数据划分为多个数据条带的步骤。
其中,所述利用多个纠删冗余计算线程并行对多个所述数据条带进行纠删冗余计算之后,还包括:
判断所有所述纠删冗余计算线程是否全部执行完成;
若是,则将纠删冗余计算后的数据发送至存储***。
为实现上述目的,本申请提供了一种数据迁移装置,包括:
接收模块,用于接收用户态的应用程序发送的数据传输请求;
第一划分模块,用于将所述数据传输请求对应的读写数据划分为多个数据子段;
迁移模块,用于利用多个数据迁移线程并行对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移;其中,所述数据迁移线程与所述数据子段一一对应。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述数据迁移方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述数据迁移方法的步骤。
通过以上方案可知,本申请提供的一种数据迁移方法,包括:接收用户态的应用程序发送的数据传输请求;将所述数据传输请求对应的读写数据划分为多个数据子段;利用多个数据迁移线程并行对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移;其中,所述数据迁移线程与所述数据子段一一对应。
本申请提供的数据迁移方法,将需要在用户态和内核态之间迁移的读写数据划分为多个数据子段,分发至多个数据迁移线程,利用多个数据迁移线程并行执行多个数据子段的数据迁移,提高了用户态和内核态之间的数据迁移效率。本申请还公开了一种数据迁移装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1为现有技术中的一种数据迁移***的结构图;
图2为根据一示例性实施例示出的一种数据迁移方法的流程图;
图3为根据一示例性实施例示出的另一种数据迁移方法的流程图;
图4为根据一示例性实施例示出的一种数据迁移***的结构图;
图5为根据一示例性实施例示出的另一种数据迁移***的结构图;
图6为根据一示例性实施例示出的一种数据迁移装置的结构图;
图7为根据一示例性实施例示出的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。另外,在本申请实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例公开了一种数据迁移方法,提高了用户态和内核态之间的数据迁移效率。
参见图2,根据一示例性实施例示出的一种数据迁移方法的流程图,如图2所示,包括:
S101:接收用户态的应用程序发送的数据传输请求;
本实施例在的执行主体为内核态客户端,内核客户端指分布式存储的客户端,部署在客户主机OS(Operating System,操作***)的用户态,实现客户主机到分布式存储***互联访问。在具体实施中,用户态的应用程序发起对存储***的数据传输请求,被内核态客户端接收。内核态是指在计算处理器的内核运行状态,在现代的Linux、window等操作***都存在内核态,用于运行操作***的管理进程、资源调度、内存管理等进程。用户态是指在计算处理器的用户运行状态,在现代的Linux、window等操作***都存在用户态,用于运行用户进程。
作为一种可行的实施方式,所述接收用户态的应用程序发送的数据传输请求,包括:通过虚拟文件***接口接收用户态的应用程序发送的数据传输请求。在具体实施中,数据传输请求通过标准软件库,操作******调用,进入VFS***接口。VFS实现了操作***的文件接口,各种文件***实现了统计的接口对接。VFS***接口调用分布式文件***的处理函数,进一步的,完成一般的文件处理,可以包括元数据、锁等文件处理操作。
S102:将所述数据传输请求对应的读写数据划分为多个数据子段;
在本步骤中,将数据传输请求对应的读写数据划分为多个数据子段。作为一种可行的实施方式,将所述数据传输请求对应的读写数据划分为多个数据子段,包括:基于预设长度将所述数据传输请求对应的读写数据按照顺序划分为多个数据子段。在具体实施中,将读写数据按照顺序划分为多个预设长度的数据子段。
S103:利用多个数据迁移线程并行对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移;其中,所述数据迁移线程与所述数据子段一一对应。
在本步骤中,将多个数据子段分发至多个数据迁移线程,利用多个数据迁移线程并行执行多个数据子段的数据迁移,数据迁移线程的数量与数据子段的数量相同,数据迁移线程与数据子段一一对应。
作为一种可行的实施方式,所述利用多个数据迁移线程并行对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移之前,还包括:创建数据迁移线程池;其中,所述数据迁移线程池包括多个所述数据迁移线程。在具体实施中,创建包含多个数据迁移线程的数据迁移线程池,每个数据迁移线程用于实现对应的数据子段的数据迁移。
作为一种可行的实施方式,所述利用多个数据迁移线程并行对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移,包括:基于多个所述数据子段的地址信息创建对应的多个数据迁移任务;利用多个数据迁移线程并行执行多个所述数据迁移任务,以实现多个所述数据子段在所述用户态的应用程序和内核态的缓存之间的数据迁移。
可以理解的是,在现有技术中,执行的线程还是用户态的进程,只是CPU(中央处理器,central processing unit)执行的状态进行了切换,能够使用数据迁移指令,实现用户态和内核态的数据互迁移指令。为了解决内核态线程不能任意访问用户态地址空间的问题,本实施例在***调用时将数据子段的地址信息封装成数据迁移任务,数据子段的地址信息可以包括应用程序对应的内存管理单元(MMU,Memory Management Unit)、数据子段的长度、源地址和目的地址。MMU负责用户态进程的地址空间和物理内存的映射和管理。
作为一种可行的实施方式,所述利用多个数据迁移线程并行执行多个所述数据迁移任务,以实现多个所述数据子段在所述用户态的应用程序和内核态的缓存之间的数据迁移,包括:基于所述应用程序对应的内存管理单元将多个数据迁移线程切换至用户态的地址空间;利用多个数据迁移线程基于对应的多个所述数据子段的源地址和目的地址对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移。
需要说明的是,由于用户态的应用程序中单线程里的内存数据,不能够被内核态的客户端进行多线程的访问,也即单线程的数据默认情况下无法被多线程访问,因此,在本实施例中,让内核态的客户端中的多线程能够同时访问应用程序中的空间,也即MMU(内存管理单元),使得内核态的客户端可以访问用户态的应用程序中的数据。
在具体实施中,数据迁移任务被下发到内核态多线程池的不同的工作线程。每个工作线程根据数据迁移任务,切换到指定的用户态进程的MMU,再按照分段源地址、目的地址执行数据迁移指令,执行完毕后返回,继续执行下一个迁移任务。当一个缓存的所有分段数据迁移任务都执行完成,则通知***调用完成数据迁移,返回用户态进程。
将内核态和用户态数据拷贝迁移任务分发到迁移工作线程,内核态的工作线程切换根据数据拷贝任务动态的切换到用户态进程的MMU,实现数据拷贝迁移,解决内核态进程不能访问指定用户态进程地址空间的问题。
从用户态拷贝数据到内核态的时候,也即本实施例的数据传输请求为写请求,所述基于多个所述数据子段的地址信息创建对应的多个数据迁移任务之前,还包括:基于预设长度将所述应用程序的缓存划分为多个第一分段,并基于多个所述第一分段的起始地址确定对应的多个所述数据子段的源地址;基于所述预设长度将所述内核态的缓存划分为多个第二分段,并基于多个所述第二分段的起始地址确定对应的多个所述数据子段的目的地址。相应的,所述利用多个数据迁移线程并行执行多个所述数据迁移任务,以实现多个所述数据子段在所述用户态的应用程序和内核态的缓存之间的数据迁移,包括:利用多个数据迁移线程并行执行多个所述数据迁移任务,以将多个所述数据子段从所述用户态的应用程序迁移至所述内核态的缓存。
在具体实施中,从用户态拷贝数据到内核态的时候,将用户进程的缓存,按照固定大小(也即预设长度)分割为多个分段,获得源起始地址的分段地址n个的源地址列表,将内核态缓存同样的预设长度分割为多个分段,获得目标起始的分段地址n个的目的地址列表;将用户进程MMU、用户态分段源起始地址、分段缓存长度、内核态分段目标地址,组成n个数据拷贝任务,分发到数据迁移工作线程。
从内核态拷贝数据到用户态的时候,也即本实施例的数据传输请求为读请求,所述基于多个所述数据子段的地址信息创建对应的多个数据迁移任务之前,还包括:基于预设长度将所述内核态的缓存划分为多个第二分段,并基于多个所述第二分段的起始地址确定对应的多个所述数据子段的源地址;基于所述预设长度将所述应用程序的缓存划分为多个第一分段,并基于多个所述第一分段的起始地址确定对应的多个所述数据子段的目的地址。相应的,所述利用多个数据迁移线程并行执行多个所述数据迁移任务,以实现多个所述数据子段在所述用户态的应用程序和内核态的缓存之间的数据迁移,包括:利用多个数据迁移线程并行执行多个所述数据迁移任务,以将多个所述数据子段从所述内核态的缓存迁移至所述用户态的应用程序。
在具体实施中,从内核态拷贝数据到用户态的时候,将用户进程的缓存,按照固定大小(也即预设长度)分割为多个分段,获得目的起始地址的分段地址n个的源地址列表;将内核态缓存同样的缓存长度分割为多个分段,获得源起始的分段地址n个的目的地址列表;将用户进程MMU、用户态分段目的起始地址、分段缓存长度、内核态分段源地址,组成n个数据拷贝任务,分发到数据迁移工作线程。
本申请实施例提供的数据迁移方法,将需要在用户态和内核态之间迁移的读写数据划分为多个数据子段,分发至多个数据迁移线程,利用多个数据迁移线程并行执行多个数据子段的数据迁移,提高了用户态和内核态之间的数据迁移效率。
本申请实施例公开了一种数据迁移方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
参见图3,根据一示例性实施例示出的另一种数据迁移方法的流程图,如图3所示,包括:
S201:接收用户态的应用程序发送的数据传输请求;
S202:将所述数据传输请求对应的读写数据划分为多个数据子段;
S203:利用多个数据迁移线程并行对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移;其中,所述数据迁移线程与所述数据子段一一对应;
在具体实施中,判断所有所述数据迁移线程是否全部执行完成;若是,则进入S204。
S204:将迁移后的数据划分为多个数据条带;
在本步骤中,将迁移到内核态的数据缓存细分为多个数据条带。作为一种可行的实施方式,所述将迁移后的数据划分为多个数据条带,包括:基于预设长度将迁移后的数据按照顺序划分为多个数据条带。在具体实施中,将迁移后的数据按照顺序划分为多个预设长度的数据条带。数据条带化是指把一个文件分割成很多小数据块,即数据分条,然后把数据分条分发到分布式存储的各个存储节点。
S205:利用多个纠删冗余计算线程并行对多个所述数据条带进行纠删冗余计算;其中,所述纠删冗余计算线程与所述数据条带一一对应。
在本步骤中,将多个数据条带分发到不同的纠删冗余计算线程进行并行的纠删冗余计算,纠删冗余计算线程的数量与数据条带的数量相同,纠删冗余计算线程与数据条带一一对应。此处可以采用EC(纠删码,erasure coding)的计算方法,EC是一种数据保护方法,它将数据分割成片段,把冗余数据块扩展、编码,并将其存储在不同的位置,比如磁盘、存储节点或者其它地理位置。
作为一种可行的实施方式,所述利用多个纠删冗余计算线程并行对多个所述数据条带进行纠删冗余计算之前,还包括:创建纠删冗余计算线程池;其中,所述纠删冗余计算线程池包括多个所述纠删冗余计算线程。在具体实施中,创建包含多个纠删冗余计算线程的纠删冗余计算线程池,每个纠删冗余计算线程用于实现对应的数据条带的纠删冗余计算。
作为一种可行的实施方式,所述利用多个纠删冗余计算线程并行对多个所述数据条带进行纠删冗余计算,包括:基于多个所述数据条带的输入缓存地址和输出缓存地址创建对应的多个纠删冗余计算任务;利用多个纠删冗余计算线程并行对多个所述数据条带进行纠删冗余计算。
在具体实施中,将待计算的数据缓存,按照纠删计算的最小块大小分割为m个分段,得到m个数据分段,得到m个输入缓存地址;将纠删计算缓存的数据块、冗余块,按照m个分段进行划分,得到m组输出缓存地址;按照顺序将m个输入缓存地址、m组输出缓存地址,依次组成计算任务,分发到不同的纠删冗余计算线程进行计算。
将每个纠删冗余计算任务分发到纠删冗余计算线程池的一个工作线程,纠删冗余计算线程池内的纠删冗余计算线程单独执行一个数据条带的纠删冗余计算,读取输入地址的数据,进行纠删计算,得到数据块和冗余块,将数据块和冗余块输出到计算任务指定输出结果,完成一次纠删冗余计算任务。一块数据缓存相关的多个纠删任务线程,并行执行,当相关所有的纠删冗余计算任务都完成以后,完成了整个数据缓存的纠删计算。
进一步的,所述利用多个纠删冗余计算线程并行对多个所述数据条带进行纠删冗余计算之后,还包括:判断所有所述纠删冗余计算线程是否全部执行完成;若是,则将纠删冗余计算后的数据发送至存储***。
由此可见,本实施例实现了用户态和内核态之间的并行数据拷贝迁移,解决了内核态线程能够对用户态应用进程的地址空间不能访问问题,将缓存数据分段分发到多个内核线程,实现了并发执行数据迁移指令。本实施例实现了数据缓存进行并行纠删计算,解决了应用单线程***调用里计算串行问题,将缓存数据分段分发到多个内核线程,实现了并发执行纠删计算指令。
下面介绍本申请提供的一种应用实施例,参见图4,图4为根据一示例性实施例示出的一种数据迁移***的结构图,如图4所示,该数据迁移***包括用户态和内核态,用户态包括应用进程,内核态包括VFS接口和内核客户端。数据迁移方法具体包括以下步骤:
步骤1:用户态的应用进程,发起对存储***的数据传输请求;
步骤2:数据传输请求通过标准软件库,操作******调用,进入VFS***接口;
步骤3:VFS***接口,调用分布式文件***的处理函数;
步骤4:完成一般的文件处理,元数据、锁等;
步骤5:数据拷贝迁移从串行改为并行,在现有技术中,用户态应用进程的单线程通过***调用到分布式存储的客户端,而***默认的数据拷贝迁移必须在用户态进程的地址空间,也就是调用者的线程或者进程,才能执行地址转换和拷贝。
参见图5,图5为根据一示例性实施例示出的另一种数据迁移***的结构图,本实施例提供的步骤5具体包括以下步骤:
5.1:首先要初始化多个内核线程池, 组成拷贝迁移线程池;
5.2:将用户态的数据缓存,按照顺序切分,分割成多个数据子段,每个子数据段,每个子数据段作为一个拷贝迁移任务;
5.3:将拷贝迁移任务,分发到线程池;
5.4:内核线程池的每个工作线程,切换到用户态的地址空间;
内核工作线程会切换到来自不同的调用者进程的地址空间的迁移任务;
5.5:各个内核工作线程,独立完成数据拷贝迁移;
5.6:所有缓存块完成数据拷贝,拷贝结束;
步骤6:纠删计算采用并行的计算,在现有技术中,用户应用调用是单线程调用,本实施例将迁移到内核态的数据缓存细分为多个数据条带,每个数据条带作为一个计算任务,分发到计算线程池;线程池内的工作线程单独执行一个数据条带的计算;具体包括以下步骤:
6.1:首先要初始化多个内核线程池, 组成纠删计算线程池。
6.2:将缓存的数据,按照纠删条带大小,切分成小的数据块,组成计算任务;一个数据块由一组计算任务负责进行纠删计算。
6.3:将计算任务分发到纠删计算线程池的不同工作线程;
6.4:当一个数据块的一组计算任务都完成,整个数据块完成纠删计算。
本实施例将数据拷贝迁移从串行改为并行,解决了内核态和用户态数据迁移不能并行执行的问题,通过内核客户端MMU的动态切换,解决了内核态线程池无法迁移用户态进程数据的问题,通过缓存区分段并发执行,解决了单线程纠删计算慢的问题,实现应用在使用存储客户端情况下单线程性能提升。
下面对本申请实施例提供的一种数据迁移装置进行介绍,下文描述的一种数据迁移装置与上文描述的一种数据迁移方法可以相互参照。
参见图6,根据一示例性实施例示出的一种数据迁移装置的结构图,如图6所示,包括:
接收模块601,用于接收用户态的应用程序发送的数据传输请求;
第一划分模块602,用于将所述数据传输请求对应的读写数据划分为多个数据子段;
迁移模块603,用于利用多个数据迁移线程并行对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移;其中,所述数据迁移线程与所述数据子段一一对应。
本申请实施例提供的数据迁移装置,将需要在用户态和内核态之间迁移的读写数据划分为多个数据子段,分发至多个数据迁移线程,利用多个数据迁移线程并行执行多个数据子段的数据迁移,提高了用户态和内核态之间的数据迁移效率。
在上述实施例的基础上,作为一种优选实施方式,所述接收模块601具体用于:通过虚拟文件***接口接收用户态的应用程序发送的数据传输请求。
在上述实施例的基础上,作为一种优选实施方式,还包括:
第一创建模块,用于创建数据迁移线程池;其中,所述数据迁移线程池包括多个所述数据迁移线程。
在上述实施例的基础上,作为一种优选实施方式,所述第一划分模块602具体用于:基于预设长度将所述数据传输请求对应的读写数据按照顺序划分为多个数据子段。
在上述实施例的基础上,作为一种优选实施方式,所述迁移模块603包括:
第一创建单元,用于基于多个所述数据子段的地址信息创建对应的多个数据迁移任务;
第一执行单元,用于利用多个数据迁移线程并行执行多个所述数据迁移任务,以实现多个所述数据子段在所述用户态的应用程序和内核态的缓存之间的数据迁移。
在上述实施例的基础上,作为一种优选实施方式,所述数据子段的地址信息包括所述应用程序对应的内存管理单元、所述数据子段的长度、源地址和目的地址。
在上述实施例的基础上,作为一种优选实施方式,所述第一执行单元具体用于:基于所述应用程序对应的内存管理单元将多个数据迁移线程切换至用户态的地址空间;利用多个数据迁移线程基于对应的多个所述数据子段的源地址和目的地址对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移。
在上述实施例的基础上,作为一种优选实施方式,所述迁移模块603还包括:
第一划分单元,用于基于预设长度将所述应用程序的缓存划分为多个第一分段,并基于多个所述第一分段的起始地址确定对应的多个所述数据子段的源地址;基于所述预设长度将所述内核态的缓存划分为多个第二分段,并基于多个所述第二分段的起始地址确定对应的多个所述数据子段的目的地址。
在上述实施例的基础上,作为一种优选实施方式,所述第一执行单元具体用于:利用多个数据迁移线程并行执行多个所述数据迁移任务,以将多个所述数据子段从所述用户态的应用程序迁移至所述内核态的缓存。
在上述实施例的基础上,作为一种优选实施方式,所述迁移模块603还包括:
第二划分单元,用于基于预设长度将所述内核态的缓存划分为多个第二分段,并基于多个所述第二分段的起始地址确定对应的多个所述数据子段的源地址;基于所述预设长度将所述应用程序的缓存划分为多个第一分段,并基于多个所述第一分段的起始地址确定对应的多个所述数据子段的目的地址。
在上述实施例的基础上,作为一种优选实施方式,所述第一执行单元具体用于:利用多个数据迁移线程并行执行多个所述数据迁移任务,以将多个所述数据子段从所述内核态的缓存迁移至所述用户态的应用程序。
在上述实施例的基础上,作为一种优选实施方式,还包括:
第二划分模块,用于将迁移后的数据划分为多个数据条带;
计算模块,用于利用多个纠删冗余计算线程并行对多个所述数据条带进行纠删冗余计算;其中,所述纠删冗余计算线程与所述数据条带一一对应。
在上述实施例的基础上,作为一种优选实施方式,还包括:
第二创建模块,用于创建纠删冗余计算线程池;其中,所述纠删冗余计算线程池包括多个所述纠删冗余计算线程。
在上述实施例的基础上,作为一种优选实施方式,所述第二划分模块具体用于:基于预设长度将迁移后的数据按照顺序划分为多个数据条带。
在上述实施例的基础上,作为一种优选实施方式,所述计算模块具体用于:基于多个所述数据条带的输入缓存地址和输出缓存地址创建对应的多个纠删冗余计算任务;利用多个纠删冗余计算线程并行对多个所述数据条带进行纠删冗余计算。
在上述实施例的基础上,作为一种优选实施方式,还包括:
第一判断模块,用于判断所有所述数据迁移线程是否全部执行完成;若是,则启动所述第二划分模块的工作流程。
在上述实施例的基础上,作为一种优选实施方式,还包括:
第二判断模块,用于判断所有所述纠删冗余计算线程是否全部执行完成;若是,则启动发送模块的工作流程;
发送模块,用于将纠删冗余计算后的数据发送至存储***。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于上述程序模块的硬件实现,且为了实现本申请实施例的方法,本申请实施例还提供了一种电子设备,图7为根据一示例性实施例示出的一种电子设备的结构图,如图7所示,电子设备包括:
通信接口1,能够与其它设备比如网络设备等进行信息交互;
处理器2,与通信接口1连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的数据迁移方法。而所述计算机程序存储在存储器3上。
当然,实际应用时,电子设备中的各个组件通过总线***4耦合在一起。可理解,总线***4用于实现这些组件之间的连接通信。总线***4除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线***4。
本申请实施例中的存储器3用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。
可以理解,存储器3可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器3旨在包括但不限于这些和任意其它适合类型的存储器。
上述本申请实施例揭示的方法可以应用于处理器2中,或者由处理器2实现。处理器2可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器2可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器3,处理器2读取存储器3中的程序,结合其硬件完成前述方法的步骤。
处理器2执行所述程序时实现本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器3,上述计算机程序可由处理器2执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、CD-ROM等存储器。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (18)

1.一种数据迁移方法,其特征在于,包括:
接收用户态的应用程序发送的数据传输请求;
将所述数据传输请求对应的读写数据划分为多个数据子段;
利用多个数据迁移线程并行对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移;其中,所述数据迁移线程与所述数据子段一一对应;
其中,所述利用多个数据迁移线程并行对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移,包括:
基于多个所述数据子段的地址信息创建对应的多个数据迁移任务;其中,所述数据子段的地址信息包括所述应用程序对应的内存管理单元、所述数据子段的长度、源地址和目的地址;
利用多个数据迁移线程并行执行多个所述数据迁移任务,以实现多个所述数据子段在所述用户态的应用程序和内核态的缓存之间的数据迁移。
2.根据权利要求1所述数据迁移方法,其特征在于,所述接收用户态的应用程序发送的数据传输请求,包括:
通过虚拟文件***接口接收用户态的应用程序发送的数据传输请求。
3.根据权利要求1所述数据迁移方法,其特征在于,所述利用多个数据迁移线程并行对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移之前,还包括:
创建数据迁移线程池;其中,所述数据迁移线程池包括多个所述数据迁移线程。
4.根据权利要求1所述数据迁移方法,其特征在于,将所述数据传输请求对应的读写数据划分为多个数据子段,包括:
基于预设长度将所述数据传输请求对应的读写数据按照顺序划分为多个数据子段。
5.根据权利要求1所述数据迁移方法,其特征在于,所述利用多个数据迁移线程并行执行多个所述数据迁移任务,以实现多个所述数据子段在所述用户态的应用程序和内核态的缓存之间的数据迁移,包括:
基于所述应用程序对应的内存管理单元将多个数据迁移线程切换至用户态的地址空间;
利用多个数据迁移线程基于对应的多个所述数据子段的源地址和目的地址对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移。
6.根据权利要求1所述数据迁移方法,其特征在于,所述基于多个所述数据子段的地址信息创建对应的多个数据迁移任务之前,还包括:
基于预设长度将所述应用程序的缓存划分为多个第一分段,并基于多个所述第一分段的起始地址确定对应的多个所述数据子段的源地址;
基于所述预设长度将所述内核态的缓存划分为多个第二分段,并基于多个所述第二分段的起始地址确定对应的多个所述数据子段的目的地址。
7.根据权利要求6所述数据迁移方法,其特征在于,所述利用多个数据迁移线程并行执行多个所述数据迁移任务,以实现多个所述数据子段在所述用户态的应用程序和内核态的缓存之间的数据迁移,包括:
利用多个数据迁移线程并行执行多个所述数据迁移任务,以将多个所述数据子段从所述用户态的应用程序迁移至所述内核态的缓存。
8.根据权利要求1所述数据迁移方法,其特征在于,所述基于多个所述数据子段的地址信息创建对应的多个数据迁移任务之前,还包括:
基于预设长度将所述内核态的缓存划分为多个第二分段,并基于多个所述第二分段的起始地址确定对应的多个所述数据子段的源地址;
基于所述预设长度将所述应用程序的缓存划分为多个第一分段,并基于多个所述第一分段的起始地址确定对应的多个所述数据子段的目的地址。
9.根据权利要求8所述数据迁移方法,其特征在于,所述利用多个数据迁移线程并行执行多个所述数据迁移任务,以实现多个所述数据子段在所述用户态的应用程序和内核态的缓存之间的数据迁移,包括:
利用多个数据迁移线程并行执行多个所述数据迁移任务,以将多个所述数据子段从所述内核态的缓存迁移至所述用户态的应用程序。
10.根据权利要求1所述数据迁移方法,其特征在于,所述利用多个数据迁移线程并行对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移之后,还包括:
将迁移后的数据划分为多个数据条带;
利用多个纠删冗余计算线程并行对多个所述数据条带进行纠删冗余计算;其中,所述纠删冗余计算线程与所述数据条带一一对应。
11.根据权利要求10所述数据迁移方法,其特征在于,所述利用多个纠删冗余计算线程并行对多个所述数据条带进行纠删冗余计算之前,还包括:
创建纠删冗余计算线程池;其中,所述纠删冗余计算线程池包括多个所述纠删冗余计算线程。
12.根据权利要求10所述数据迁移方法,其特征在于,所述将迁移后的数据划分为多个数据条带,包括:
基于预设长度将迁移后的数据按照顺序划分为多个数据条带。
13.根据权利要求10所述数据迁移方法,其特征在于,所述利用多个纠删冗余计算线程并行对多个所述数据条带进行纠删冗余计算,包括:
基于多个所述数据条带的输入缓存地址和输出缓存地址创建对应的多个纠删冗余计算任务;
利用多个纠删冗余计算线程并行对多个所述数据条带进行纠删冗余计算。
14.根据权利要求10所述数据迁移方法,其特征在于,所述将迁移后的数据划分为多个数据条带之前,还包括:
判断所有所述数据迁移线程是否全部执行完成;
若是,则执行所述将迁移后的数据划分为多个数据条带的步骤。
15.根据权利要求10所述数据迁移方法,其特征在于,所述利用多个纠删冗余计算线程并行对多个所述数据条带进行纠删冗余计算之后,还包括:
判断所有所述纠删冗余计算线程是否全部执行完成;
若是,则将纠删冗余计算后的数据发送至存储***。
16.一种数据迁移装置,其特征在于,包括:
接收模块,用于接收用户态的应用程序发送的数据传输请求;
第一划分模块,用于将所述数据传输请求对应的读写数据划分为多个数据子段;
迁移模块,用于利用多个数据迁移线程并行对多个所述数据子段在所述用户态的应用程序和内核态的缓存之间进行数据迁移;其中,所述数据迁移线程与所述数据子段一一对应;
其中,所述迁移模块包括:
第一创建单元,用于基于多个所述数据子段的地址信息创建对应的多个数据迁移任务;其中,所述数据子段的地址信息包括所述应用程序对应的内存管理单元、所述数据子段的长度、源地址和目的地址;
第一执行单元,用于利用多个数据迁移线程并行执行多个所述数据迁移任务,以实现多个所述数据子段在所述用户态的应用程序和内核态的缓存之间的数据迁移。
17.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至15任一项所述数据迁移方法的步骤。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至15任一项所述数据迁移方法的步骤。
CN202310140582.2A 2023-02-21 2023-02-21 一种数据迁移方法、装置及电子设备和存储介质 Active CN115826885B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310140582.2A CN115826885B (zh) 2023-02-21 2023-02-21 一种数据迁移方法、装置及电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310140582.2A CN115826885B (zh) 2023-02-21 2023-02-21 一种数据迁移方法、装置及电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN115826885A CN115826885A (zh) 2023-03-21
CN115826885B true CN115826885B (zh) 2023-05-09

Family

ID=85521993

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310140582.2A Active CN115826885B (zh) 2023-02-21 2023-02-21 一种数据迁移方法、装置及电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN115826885B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078628A (zh) * 2018-10-18 2020-04-28 深信服科技股份有限公司 一种多盘并发数据迁移方法、***、装置及可读存储介质
WO2022267427A1 (zh) * 2021-06-25 2022-12-29 航天云网科技发展有限责任公司 虚拟机迁移方法、***及电子设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5623187B2 (ja) * 2010-08-27 2014-11-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation マルチノードにわたるデータの送受信をバリア同期無しで行う並列計算処理
JP6613742B2 (ja) * 2015-09-11 2019-12-04 国立研究開発法人情報通信研究機構 負荷変動およびパケット伝送損失があるlfn伝送路で高信頼通信を行うためのデータ通信制御方法
CN110445580B (zh) * 2019-08-09 2022-04-19 浙江大华技术股份有限公司 数据发送方法及装置、存储介质、电子装置
CN111240853B (zh) * 2019-12-26 2023-10-10 天津中科曙光存储科技有限公司 一种节点内大块数据双向传输方法及***
CN112416863A (zh) * 2020-10-19 2021-02-26 网宿科技股份有限公司 数据存储方法及缓存服务器
CN113849238B (zh) * 2021-09-29 2024-02-09 浪潮电子信息产业股份有限公司 数据通信方法、装置、电子设备及可读存储介质
CN114237519A (zh) * 2022-02-23 2022-03-25 苏州浪潮智能科技有限公司 一种对象存储数据迁移的方法、装置、设备及介质
CN115482876A (zh) * 2022-09-30 2022-12-16 苏州浪潮智能科技有限公司 一种存储设备测试方法、装置及电子设备和存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078628A (zh) * 2018-10-18 2020-04-28 深信服科技股份有限公司 一种多盘并发数据迁移方法、***、装置及可读存储介质
WO2022267427A1 (zh) * 2021-06-25 2022-12-29 航天云网科技发展有限责任公司 虚拟机迁移方法、***及电子设备

Also Published As

Publication number Publication date
CN115826885A (zh) 2023-03-21

Similar Documents

Publication Publication Date Title
CN110663019B (zh) 用于叠瓦式磁记录(smr)的文件***
US8756379B2 (en) Managing concurrent accesses to a cache
CN111679795B (zh) 无锁并发io处理方法及其装置
US9886398B2 (en) Implicit sharing in storage management
EP2437462B1 (en) Data access processing method and device
KR101650424B1 (ko) 기점 가상 머신으로부터 목적지 가상 머신으로의 동작 전송
CN110908609B (zh) 一种磁盘处理的方法、***、设备及可读存储介质
US8914571B2 (en) Scheduler for memory
EP3989052B1 (en) Method of operating storage device and method of operating storage system using the same
CN111984204A (zh) 一种数据读写方法、装置及电子设备和存储介质
CN107451070B (zh) 一种数据的处理方法和服务器
CN113315800A (zh) 镜像存储、下载方法、设备以及***
US10534664B2 (en) In-memory data storage with adaptive memory fault tolerance
CN115826885B (zh) 一种数据迁移方法、装置及电子设备和存储介质
US11221770B2 (en) Providing a dynamic random-access memory cache as second type memory
US7472235B2 (en) Multi-interfaced memory
US20170160981A1 (en) Management of paging in compressed storage
US20220318015A1 (en) Enforcing data placement requirements via address bit swapping
US11900102B2 (en) Data storage device firmware updates in composable infrastructure
US20180095690A1 (en) Creating virtual storage volumes in storage systems
KR101041710B1 (ko) 비휘발성 메모리의 섹터 관리 방법
US9305036B2 (en) Data set management using transient data structures
US20170249173A1 (en) Guest protection from application code execution in kernel mode
US20200167280A1 (en) Dynamic write-back to non-volatile memory
US20200159535A1 (en) Register deallocation in a processing system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant