WO2020087927A1 - 一种内存数据迁移的方法及装置 - Google Patents
一种内存数据迁移的方法及装置 Download PDFInfo
- Publication number
- WO2020087927A1 WO2020087927A1 PCT/CN2019/090364 CN2019090364W WO2020087927A1 WO 2020087927 A1 WO2020087927 A1 WO 2020087927A1 CN 2019090364 W CN2019090364 W CN 2019090364W WO 2020087927 A1 WO2020087927 A1 WO 2020087927A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- migrated
- memory
- migration
- storage device
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种内存数据迁移的方法,装置及系统。通过在内存迁移时,根据数据的冷热程度将数据分为两部分,将热数据直接迁移,将冷数据写入内存共享的共享存储设备中,目的内存在需要使用该冷数据的时候,可以从共享存储设备中读取,减少了需要迁移到目的端内存的数据量,从而加快内存迁移的效率。
Description
本申请涉及一种数据迁移方法,特别涉及一种内存数据迁移的方法及装置。
数据库是按照数据结构来组织、存储和管理数据的仓库,现在很多数据库是内存型数据库,即基于内存计算技术的高性能实时数据库平台。内存型数据库将数据放在内存中直接进行操作,从而使得数据处理速度较快。但也因为内存型数据库的内存使用量大,使用率高,内存在一定程度上更容易发生损坏,且发生损坏造成的影响更大。
为了降低内存损坏所造成的影响,现有的服务器往往具有内存热插拔(英文:Hot-Plugging)功能,允许用户在操作系统持续运行的情况下更换系统内存,期间既不需要关闭系统,也不需要切断电源,从而提高系统在内存故障时即使恢复内存能力,提升系统可靠性,最大限度地降低内存损坏对于当前业务的影响。在进行内存热插拔的过程中,需要将当前系统中被移除内存中的数据进行迁移,例如迁移到其他内存的空闲空间上。
在当前对于内存数据进行迁移的方案中,通常是以内存页为单位,将内存中的数据从一块内存迁移到另一块内存。采用这种做法,需要当一个内存页迁移完成后才能迁移另外的内存页,从而导致内存迁移的效率低。且如果当前待迁移数据所位于的内存页有应用程序占用内存资源时,例如有新数据向该内存页写入,迁移进程就会暂停,等待应用程序所占用的业务进程完成,直至该内存资源被释放。在高业务压力场景下,由于各种应用程序对内存的频繁访问,会导致内存数据迁移的效率进一步降低。
发明内容
本申请提供一种内存数据迁移的方法和装置,通过将待迁移数据进行分类,将一部分数据迁移到另一块内存上,将另一部分数据迁移到共享存储设备上,能够提升内存数据迁移的效率。同时,通过在内存数据迁移时阻塞业务进程,可以在高业务压力场景下确保内存迁移的效率不被降低。
第一方面,本申请提供一种数据迁移的方法,该方法用于计算系统,该计算系统包含第一内存和第二内存,该方法包括:将待迁移数据分成第一待迁移数据和第二待迁移数据,其中,该待迁移数据位于第一内存;将第一待迁移数据迁移到第二内存;将第二待迁移数据写入存储设备,其中,该存储设备为第一内存和第二内存的共享存储设备。
上述方法在内存数据迁移时,将待迁移的数据分成了两部分,一部分数据迁移到另一块内存上,而另一部分内存则写入共享存储设备。通过这种做法,可以增加内存数据迁移的效率,并提升内存数据迁移的速度。
在本申请的第一方面,一种可能的实现方式是,计算系统包含业务进程和迁移进程,迁移进程用于迁移待迁移数据,业务进程为使用待迁移数据的进程,将第一待迁移数据迁移到第二内存之前,该方法还包括:调整迁移进程或者业务进程的优先级,以使得迁移进程的优先级高于业务进程的优先级。通过这种方法,可以使计算系统优先完成内存 数据迁移,而不被业务进程所中断,从而提高了内存数据迁移的速度。
在本申请的第一方面,另一种可能的实现方式是,在将第一待迁移数据迁移到第二内存之后,该方法还包括:恢复迁移进程或者业务进程的优先级。通过这种方法,可以在内存数据迁移完成后执行业务进程的内容,从而增加计算系统的稳定性。
在本申请的第一方面,另一种可能的实现方式是,该方法还包括:计算系统生成新数据,将新数据写入存储设备。通过这种做法,可以当计算系统生成新数据时,直接将该数据写入存储设备,而不影响内存数据迁移的进行,从而提高了内存数据迁移的速度。
在本申请的第一方面,另一种可能的实现方式是,计算系统包括至少两台计算机装置,第一内存位于至少两台计算机装置中的第一计算机装置,第二内存位于至少两台计算机装置中的第二计算机装置,将第一待迁移数据发送到至少两个内存中的第二内存包括:该第一计算机装置中的第一操作系统读取第一待迁移数据;第一操作系统对第一待迁移数据进行封装,得到第一封装数据;第一操作系统将第一封装数据发送至第二计算机装置中的第二操作系统;第二操作系统对第一封装数据进行解封装,得到待迁移数据;第二操作系统将该待迁移数据发送给第二内存。通过这种方法,可以在不同的计算机装置之间实现本申请所提供的内存数据迁移的方法。
在本申请的第一方面,另一种可能的实现方式是,将待迁移数据分成第一待迁移数据和第二待迁移数包括:根据最近最少使用LRU算法将该待迁移数据分成第一待迁移数据和第二待迁移数据。例如,最近一次使用距离当前时刻的时间阈值不大于第一阈值的为第一待迁移数据,大于第一阈值的为第二待迁移数据。通过这种方法,可以将计算机装置经常使用的数据作为第一待迁移数据迁移到第二内存中,将计算机装置不经常使用的数据作为第二待迁移数据迁移到共享存储装置中,从而提高了内存数据迁移的效率。
在本申请的第一方面,另一种可能的实现方式是,将待迁移数据分成第一待迁移数据和第二待迁移数包括:根据最近最不常用页面LFU算法将所述待迁移数据分成第一待迁移数据和第二待迁移数据。例如,在最近预设的时间内使用频次超过第二阈值的为第一待迁移数据,使用频次不超过第二阈值的为第二待迁移数据。通过这种方法,可以提高内存数据迁移的效率。
在本申请的第一方面,另一种可能的实现方式是,该方法还包括:将第三数据从存储设备读入第二内存,其中,第二待迁移数据包含第三数据,即将第二待迁移数据中的部分数据或者全部数据从存储设备中读入第二内存。通过这种方法,可以使第二内存在需要使用第二待迁移数据中的全部或者部分数据时可以从存储设备中读取该部分数据,从而提高了计算系统的稳定性。
第二方面,本申请提供一种数据迁移的装置,该装置用于计机系统,该计算系统包括第一内存和第二内存,该装置包括:分类模块,用于将待迁移数据分成第一待迁移数据和第二待迁移数据,其中,该待迁移数据位于第一内存;迁移模块,用于将第一待迁移数据迁移到第二内存以及将第二待迁移数据写入存储,其中,该存储设备为第一内存和第二内存的共享存储设备。
在本申请的第二方面,一种可能的实现方式是,计算系统包括业务进程和迁移进程,迁移进程用于迁移待迁移数据,业务进程为使用该待迁移数据的进程,该装置还包括:调整模块,用于将第一待迁移数据迁移到第二内存之前,调整迁移进程或者业务进程的 优先级,其中,调整后的迁移进程的优先级高于业务进程的优先级。
在本申请的第二方面,另一种可能的实现方式是,调整模块还用于,在将第一待迁移数据迁移到第二内存之后,恢复迁移进程或者业务进程的优先级。
在本申请的第二方面,另一种可能的实现方式是,迁移模块还用于,当计算系统生成新数据时,将新数据写入存储设备。
在本申请的第二方面,另一种可能的实现方式是,将待迁移数据分成第一待迁移数据和第二待迁移数据包括:根据最近最少使用LRU算法将该待迁移数据分成第一待迁移数据和第二待迁移数据。例如,最近一次使用距离当前时刻的时间阈值不大于第一阈值的为第一待迁移数据,大于第一阈值的为第二待迁移数据。
在本申请的第二方面,另一种可能的实现方式是,将待迁移数据分成第一待迁移数据和第二待迁移数包括:根据最近最不常用页面LFU算法将所述待迁移数据分成第一待迁移数据和第二待迁移数据。例如,在最近预设的时间内使用频次超过第二阈值的为第一待迁移数据,使用频次不超过第二阈值的为第二待迁移数据。
在本申请的第二方面,另一种可能的实现方式是,迁移装置还用于,将第三数据从存储设备读入第二内存,其中,第二待迁移数据包含第三数据,即将第二待迁移数据中的部分数据或者全部数据从存储设备中读入第二内存。
第三方面,本申请提供一种计算系统,该计算系统包括迁移装置、第一内存、第二内存和存储设备,其中,迁移装置用于:将待迁移数据分成第一待迁移数据和第二待迁移数据,其中,该待迁移数据位于第一内存;将第一待迁移数据迁移到第二内存;将第二待迁移数据写入存储设备;存储设备用于,接收第二待迁移数据,其中,该存储设备为第一内存和第二内存的共享存储设备。
在本申请的第三方面,一种可能的实现方式是,计算系统包含业务进程和迁移进程,迁移进程用于迁移待迁移数据,业务进程为使用待迁移数据的进程,迁移装置还用于,在将第一待迁移数据迁移到第二内存之前,调整迁移进程或者业务进程的优先级,以使得迁移进程的优先级高于业务进程的优先级。
在本申请的第三方面,另一种可能的实现方式是,迁移装置还用于,在将第一待迁移数据迁移到第二内存之后,恢复迁移进程或者业务进程的优先级。
在本申请的第三方面,另一种可能的实现方式是,计算系统生成新数据,迁移装置还用于,将新数据写入存储设备,存储设备还用于接收该新数据。
在本申请的第三方面,另一种可能的实现方式是,计算系统包括至少两台计算机装置,第一内存位于至少两台计算机装置中的第一计算机装置,第二内存位于至少两台计算机装置中的第二计算机装置,将第一待迁移数据发送到至少两个内存中的第二内存包括:该第一计算机装置中的第一操作系统读取第一待迁移数据;第一操作系统对第一待迁移数据进行封装,得到第一封装数据;第一操作系统将第一封装数据发送至第二计算机装置中的第二操作系统;第二操作系统对第一封装数据进行解封装,得到待迁移数据;第二操作系统将该待迁移数据发送给第二内存。
在本申请的第三方面,另一种可能的实现方式是,将待迁移数据分成第一待迁移数据和第二待迁移数包括:根据最近最少使用LRU算法将该待迁移数据分成第一待迁移数据和第二待迁移数据。例如,最近一次使用距离当前时刻的时间阈值不大于第一阈值的 为第一待迁移数据,大于第一阈值的为第二待迁移数据。
在本申请的第三方面,另一种可能的实现方式是,将待迁移数据分成第一待迁移数据和第二待迁移数包括:根据最近最不常用页面LFU算法将所述待迁移数据分成第一待迁移数据和第二待迁移数据。例如,在最近预设的时间内使用频次超过第二阈值的为第一待迁移数据,使用频次不超过第二阈值的为第二待迁移数据。
在本申请的第三方面,另一种可能的实现方式是,迁移装置还用于,将第三数据从存储设备读入第二内存,其中,第二待迁移数据包含第三数据,即将第二待迁移数据中的部分数据或者全部数据从存储设备中读入第二内存。
第四方面,本申请提供一种计算机装置,该计算机装置包括存储器和处理器,该存储器存储程序代码,该处理器用于调用处理器中的程序代码用于执行以上第一方面或以上第一方面的任一种可能的实现方式提供的数据迁移的方法。
第五方面,本申请提供一种可读介质,包括执行指令,当计算设备的处理器执行该执行指令时,该计算设备执行以上第一方面或以上第一方面的任一种可能的实现方式中的方法。
图1是本申请的实施例所提供的一种系统架构的示意图。
图2是本申请的实施例所提供的另一种系统架构的示意图。
图3是本申请所提供的一个实施例的流程示意图。
图4是本申请的实施例所提供的多线程进行内存数据迁移的示意图。
图5是本申请所提供的另一个实施例的流程示意图。
图6是本申请所提供的另一个实施例的流程示意图。
图7是本申请所提供的另一个实施例的流程示意图。
图8是本申请的实施例所提供的数据迁移装置的模块示意图。
图9是本申请的实施例所提供的计算机装置的结构示意图。
为了使本申请的上述目的、技术方案和优点更易于理解,下文提供了详细的描述。所述详细的描述通过使用方框图、流程图和/或示例提出了设备和/或过程的各种实施例。由于这些方框图、流程图和/或示例包含一个或多个功能和/或操作,所以本领域内人员将理解可以通过许多硬件、软件、固件或它们的任意组合单独和/或共同实施这些方框图、流程图或示例内的每个功能和/或操作。
在计算机装置中,数据的地址可以分为物理地址和逻辑地址两种。物理地址指的是中央处理器(central processing unit,CPU)外部地址上的寻址物理内存的地址信号,是地址变换的最终结果地址。而逻辑地址是指由程式产生的偏移地址部分,其与物理地址存在着映射关系。当数据在不同的内存间进行迁移时,通常是不更改该数据的逻辑地址,而是将待迁移数据从源端的内存传输到目的端的内存后,将该数据的逻辑地址与新的物理地址之间建立映射关系。
在现有技术中,当进行内存数据迁移时,通常是以内存页为单位,将待迁移数据从 源端的内存迁移至目的端的内存。所谓分页,是将地址空间分成很多的页,对于每页的大小,先由CPU确定几种可能的规格,然后由操作系统决定页的大小。通常来说,每个页的大小为4KB。采用这种方法,需要一个内存页上的数据迁移完成后再迁移下一个内存页上的数据,导致了迁移速度较慢。
CPU执行程序的基本单位是进程(process),即系统进行资源分配和调度的基本单位。当进行内存数据迁移时,则认为CPU的相应的进程用于执行该迁移操作。而在高业务压力场景下,由于业务需要对内存进行频繁访问,使得业务相关的应用程序占用了内存资源,迁移线程需要等待业务进程完成操作,直到该内存资源被释放。这就导致了内存迁移过程中,迁移进程往往需要中断,来等待其他进程,从而导致实际的迁移速度进一步减慢。
为了解决现有技术中存在的内存数据迁移速度慢的问题,在本申请所提供的技术方案中,计算机装置将待迁移的数据进行分类。将那些使用不频繁的冷数据以及数据迁移期间对业务性能影响不是很大的数据写入共享存储设备,将其余的数据迁移到其他内存上,通过这种方式,能够提高内存数据迁移的效率并加快内存数据迁移的速度。同时,在高业务压力场景下,通过将迁移进程的优先级调整为高于当前被迁移的业务进程,或者将新写入内存的数据直接存入共享存储设备中,减少内存数据迁移所受到的业务进程的影响,从而不减慢内存数据迁移的速度。
图1是本申请的实施例所提供的一种计算机集群的结构示意图。如图1所示,该计算系统100包含至少一台计算机装置110。该计算机装置110采用多节点的架构,例如,可以采用非一致性内存访问(Non-Uniform Memory Access,NUMA)架构。在NUMA等多节点的结构中。每个节点可以包括一个或多个CPU,每个CPU可以对应地被分配内存资源。计算机装置中的每个节点的CPU通过快速通道互联(quick path interconnect,QPI)线相连。QPI是一种基于包传输的串行式高速点对点连接协议,采用差分信号与专门的时钟进行传输,可以实现芯片间的直接互联。计算机装置具有一个共享存储设备140,该共享存储设备140可以是高速随机存取存储器(random access memory,RAM)存储器,也可以是非易失性存储器,例如磁盘存储器。该共享存储设备140既可以放置在计算机装置110内部,也可以是外置的存储阵列,图1将该共享存储装置放在计算机装置内部仅为示例,本申请的实施例不对此进行限定。该计算机装置的所有节点的内存均可以读取该共享存储设备。
图2是本申请的实施例所提供的另一种计算系统的结构示意图。如图2所示,该计算系统200包含至少两台计算机装置,即计算机装置210和211。该计算系统200中的计算机装置可以是图1所示的多节点的架构,也可以是单节点的架构,图2以单节点架构为示例进行说明。当计算机装置210和计算机装置211需要进行内存数据迁移时,首先源端内存220将待迁移数据发送给源端内存220所在的计算机装置210的操作系统260。操作系统260接收到待迁移数据后,获取该待迁移数据在内存220中的位置并将该数据通过网络250发送至目的端内存221所在的计算机装置211的操作系统261。操作系统261再将数据写入计算机装置211的目的端内存221中,完成内存数据迁移。计算系统200中还包含共享存储设备240,源端内存220所在的计算机装置210和目的端内存221所在的计算机装置211均与该共享存储设备240相连接,即源端内存220和目的端内存 221均可向该共享存储设备240读取或者写入数据。共享存储设备240与计算机装置之间既可以通过连接线进行相连,也可以采用类似存储区域网络(storage area network,SAN)的架构,通过网状通道(fiber channel,FC)交换机连接共享存储设备和计算机装置,本申请不对此进行限定。当两个计算机装置之间需要迁移内存数据时,也可以将部分待迁移数据从该源端的内存中写入共享存储设备,目的端的计算机装置从该共享存储设备中取出该部分待迁移数据,写入目的端计算机装置的内存中,从而完成内存数据迁移。
图3是本申请的一个实施例的流程示意图。该流程示意图是针对上述图1所示的计算系统中的某一计算机装置的不同节点间进行内存数据迁移的。如图3所示,该流程主要可以分为如下步骤:
S301:触发内存数据迁移进程。
内存数据迁移触发通常由两种情况:一种是由基本输入输出接口(Basic Input Output System,BIOS)向操作系统下发内存迁移信号,操作系统触发内存迁移动作;或者操作系统本身或第三方应用直接下发内存迁移信号,并触发内存数据迁移进程。
S302:对待迁移数据进行分类。
内存守护工具是关于内存迁移的一个监控及决策工具,可以实时监控整个系统内存的状态和使用情况。在本实施例中,当触发内存迁移后,内存守护工具将待迁移数据分成两个部分,第一部分数据将用于从源端内存120写入目的端内存121中,第二部分数据则用于写入共享存储设备140中,当目的端内存121需要这部分数据时,再从共享存储设备140中读取该部分数据。
在本实施例中,可以采用多种规则将待发送数据分成两部分数据。在本申请的一种实现方式中,可以根据最近最少使用算法(least recent used,LRU)或者最不经常使用页置换算法(least frequently used,LFU)判断发送数据中哪部分数据是热数据,哪部分数据是冷数据,并根据待迁移数据是热数据还是冷数据分成第一部分数据和第二部分数据。其中,热数据指的是需要被计算节点频繁访问的在线类数据,冷数据指的是不经常访问的离线类数据,比如企业备份数据、业务与操作日志数据、话单与统计数据等。由于两种数据具有不同的访问频次,因此在数据库中,热数据因为访问频次需求大,效率要求高,所以需要放入内存中进行计算和部署,冷数据因为访问频次低,效率要求慢,可以做集中化部署,因此可以写入共享存储设备中,并可以对该部分数据进行压缩、去重等操作,进一步降低存储成本。本申请的实施例也可以根据业务需求对待迁移数据进行分类,例如,对于在内存迁移期间对业务性能有很大影响的那部分数据,将该部分数据从源端内存120上迁移到目的端内存121中,而对于内存迁移期间对业务性能影响不大或者并不严格要求不能有丝毫损失的数据,则将该部分数据写入共享存储设备140中,当目的端内存121需要该部分数据时,再将该部分数据从共享存储设备140中写入目的端内存121中。
具体来说,LRU算法和LFU算法都是虚拟页式存储管理服务相关的算法。其中,LRU算法指的是首先淘汰或者置换出最长时间未被使用的内存页面,即预设一定的时长,将最近在预设时长内未被使用的数据作为冷数据即第二部分数据进行处理,将其他数据作为热数据即第一部分数据进行处理;LFU算法指的是淘汰或者置换一定时期内被访问次数 最少的内存页面,即预设一定的时长和使用次数,将最近在预设时长内使用次数未超过预设使用次数的数据作为冷数据即第二部分数据进行处理,将其他数据作为热数据即第一部分数据进行处理。
上述给出的对于待迁移数据的分类方法仅为示例,不应理解为对本申请的限定。事实上,可以根据实际业务需要设定分类规则,并根据设定的分类规则将待迁移数据进行分类。
S303:将第一部分数据从源端内存120中迁移至目的端内存121。
对于数据传输,可以根据内存状态,选择每次内存数据迁移的数据量的大小。内存数据迁移通常是通过传输控制协议/因特网互联协议(Transmission Control Protocol/Internet Protocol,TCP/IP)协议进行数据传输,需要在每次进行数据传输时进行握手。如果每次进行数据迁移的数据量过小,则数据传输的效率偏低。而如果每次进行数据迁移的数据量过大,则每次传输耗时较长,且如果传输时发生故障需要进行重传,则被重传数据量较大。因此,需要选择合适的每次进行数据迁移的数据量的大小。
在内存数据迁移时,为了提高效率,可以采用多线程的方式进行内存数据迁移。具体来说,当待迁移数据的大小大于预设值时,或者待迁移数据在源端内存120上不连续时,则可以启动多线程内存数据迁移。
所谓多线程(英文:multithread),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因为有硬件的支持而能够在同时间内执行多个线程,从而提升整体处理性能。如图4所示,当计算系统的处理器具有6个可用的线程时,意味着该处理器可以同时执行6个不同的操作,此时可以将6个可用的线程分成两部分,其中3个线程用于将第一部分数据从源端内存120迁移至目的端内存121中,且可以实现3处位于不同位置的内存数据同时进行传输,从而加快内存数据迁移的速度。另外的3个线程可以用于将第二部分数据进行落盘,即将第二部分数据从源端内存120传输至共享存储设备140中。
不同节点之间数据的传输根据计算机装置的架构采用相应的传输方法。例如,可以基于缓存一致性(英文:cache coherence)协议,通过CPU间的互联链路进行传输。
S304:将第二部分数据从源端内存120迁移至共享存储设备140中。
源端内存120和目的端内存121位于同一个计算机装置,该计算机装置110具有源端内存120和目的端内存121都可以读取的共享存储设备140。由于源端内存120中的数据大多是来源于共享存储设备140,只有少量在业务运行过程中的增量数据需要写回到共享存储设备140中。具体来说,可以以LRU算法或者LFU算法等为基础,将修改过的内存数据写回共享存储设备中,此处修改过的内存数据不仅仅包括对原有的数据进行修改,还包括新增的内存数据。
由于将第二部分数据从源端内存120写入共享存储设备140中只需要少量的增量数据回写,大部分数据都已经保存在共享存储设备140中。因此,采用这种方式进行内存迁移,其数据传输效率远远高于从源端内存120迁移数据到目的端内存121。
可选的,当目的端内存121需要使用第二部分数据时,可以从共享存储设备140中读取该第二部分数据的全部数据或者部分数据。
当待迁移数据全部完成迁移后,内存数据迁移结束。具体来说,当待迁移数据所包 括的第一部分数据全部从源端内存120中写入目的端内存121中,第二部分数据全部从源端内存120写入共享存储设备140中时,内存数据迁移结束。
图5是本申请的另一个实施例的流程示意图。该流程示意图是针对上述图2所示的计算系统中的两个计算机装置间进行内存数据迁移的。如图5所示,主要可以分为如下步骤:
S501:计算机装置210触发内存数据迁移进程。
在图3所示的计算系统中,计算机装置210和计算机装置211之间进行内存数据迁移。其中,计算机装置210作为源端,计算机装置211作为目的端,可以由作为源端的计算机装置210触发内存迁移进程。
可选的,也可以由目的端的计算机装置211或者计算系统200中的其他计算机装置触发内存迁移进程,本申请不对此进行限定。
S502:计算机装置210对待迁移数据进行分类。
与步骤S302相类似,作为源端的计算机装置210中的源端内存220中的内存守护工具将待迁移数据分成两个部分,其中,第一部分数据将用于从源端内存220写入目的端内存221中,第二部分数据则用于写入共享存储设备240中。对于待迁移数据的分类可以参见步骤S302。
S503:计算机装置210将第一部分数据读取到操作系统260中,并封装。
当源端内存220和目的端内存221分别位于计算系统200中的两个不同的计算机装置时,源端内存220无法直接将数据传输到目的端内存221中。计算机装置210的操作系统260从源端内存220中读取第一部分数据,并对第一部分数据进行封装。通常情况下,对第一部分数据进行封装通常根据TCP/IP协议进行,且封装后的第一部分数据会携带目标地址的信息,以便在接下来的操作中将封装后的数据传输到计算机装置211中的目的端内存221中。
S504:计算机装置210将封装后的第一部分数据发送至计算机装置211。
当完成对第一部分数据的封装后,计算机装置210的操作系统260将封装后的第一部分数据发送给计算机装置211。
S505:计算机装置211对接收到的数据进行解封装,并传输至目的端内存221中。
计算机装置211的操作系统261接收计算机装置210所发送的封装后的待迁移数据,将封装后的待迁移数据进行解封装,并将解封装后的待迁移数据根据所携带的目标地址的信息传输到计算机装置211的目的端内存221中。
S506:计算机装置210将第二部分数据迁移至共享存储设备240中。
对于第二部分数据,计算机装置210将该第二部分数据传输至共享存储设备240中,该共享存储设备240中的数据可以被计算机装置211所读取。由于将待迁移数据分成两部分分别传输至目的端内存221和共享存储设备240,因此数据传输的带宽实际上变大了,从而增加了内存数据迁移的效率。
可选的,当目的端内存221需要使用第二部分数据时,可以从共享存储设备240中读取该第二部分数据的全部数据或者部分数据。
在本申请的一种实现方式中,如果计算机装置210中的源端内存220中的数据大多是来源于共享存储设备240,只有少量在业务运行过程中的增量数据需要写回到共享存储 设备240中时,可以以LRU算法或者LFU算法等为基础,将修改过的内存数据写回共享存储设备240中。采用这种方式进行内存数据迁移,只需要进行少量的增量数据的回写,而大部分数据都已经保存在共享存储设备240中,因此数据传输效率可以进一步增加。
当待迁移数据全部完成传输后,内存数据迁移结束。具体来说,当待迁移数据所包括的第一部分数据全部从计算机装置210的源端内存220中写入计算机装置211的目的端内存221中,第二部分数据全部从源端内存220写入共享存储设备240中时,内存数据迁移结束。
图6是本申请的另一个实施例的流程示意图。该流程是对图3所示的流程中的步骤S303以及图5所示的流程中的步骤S503-S505中的进一步细化。图6所示的流程既可以用于图1所示的计算系统中的某一计算机装置的不同节点间进行内存数据迁移,也可以用于图2所示的计算系统中的两个计算机装置间进行内存数据迁移。如图6所示,本实施例包含以下步骤:
S601:源端内存持续收到读写请求。
在内存数据迁移时,计算机装置可能存在着较高的业务压力,计算机装置本身可能也会生成新的数据。例如在高性能数据查询(High-Performance Analytic Appliance,HANA)场景下,会对内存频繁访问,并且业务进程可能会需要读取并使用待迁移数据。而如果当前迁移的内存页被业务进程所占用,内存数据迁移进程就会等待,直到该内存资源被释放。因此,当源端内存持续收到读写请求时,需要进程下列操作。
S602:将相关缓存中的修改(modified)状态和独占(exclusive)状态改为共享(shared)状态。
由于在多节点系统中,每个CPU都有自己独立的缓存,缓存一致性很容易遭到破坏,因此需要缓存一致性协议来确保多个CPU缓存中数据的一致性。缓存一致性协议中的一种是MESI,MESI协议分别用M、E、S和I来表示表示modified、exclusive、shared和无效(invalid)等缓存状态,协议对每一个缓存行中维护一个状态标签(tag),这个标签附着在缓存行的物理地址或者数据后。其中,处于“modified”状态的缓存行是由于相应的CPU最近对该缓存行进行了数据修改,并且同一内存地址的数据确保没有在其他CPU的缓存中出现。exclusive状态表示该缓存行被该CPU独占,即只在该缓存中存在唯一一份,在别的CPU缓存中都不存在或都处于无效状态。处于“shared”状态的缓存行可能被存在于一个或多个CPU缓存中,被一个或多个CPU缓存共享,在没有得到其他CPU的许可时,不能向缓存行存储数据。而处于“invalid”状态的缓存行是无效的,等同于没有任何数据。
由于需要将源端内存中的数据传输到目的端,因此当源端内存接收到其他进程的写请求时,根据缓存一致性协议将该源端内存的状态改成“shared”,意味着该源端内存中数据可能被复制到其他的CPU缓存中,且没有其他CPU的许可时,不能向该源端内存存储数据。
S603:调整内存数据迁移进程或者业务进程的优先级,以使得迁移进程的优先级高于源端内存涉及的业务进程的优先级。
为了保证内存数据迁移的效率不被业务进程所影响,将内存数据迁移进程的优先级调整为高于当前源端内存涉及的业务进程的优先级,或者将源端内存涉及的业务进程的 优先级调整为低于当前内存数据迁移进程的优先级,即优先确保内存数据的迁移,将业务进程暂时阻塞。
S604:当内存数据迁移完成后,将内存数据迁移进程或者业务进程调整回原来的优先级。
图7是本申请的另一个实施例的流程示意图。该流程是对图3所示的流程中的步骤S303以及图5所示的流程中的步骤S503-S505中的进一步细化。图7所述的流程既可以用于图1所示的计算系统中的某一计算机装置的不同节点间进行内存数据迁移,也可以用于图2所示的计算系统中的两个计算机装置间进行内存数据迁移。如图7所示,本实施例包含以下步骤:
S701:源端内存持续收到读写请求。
S702:将相关缓存中的modified状态和exclusive状态改为shared状态。
S703:将待写入源端内存的数据直接写入共享存储设备中。
为了保证内存数据迁移的效率不受影响,当源端内存在数据迁移过程中接收到写请求后,可以指示将待写入源端内存的数据先直接写入共享存储设备中。当源端内存需要使用该部分数据时,则可以从共享存储设备中读取该部分数据。
可选的,如果需要将包括待写入源端内存的数据在内的所有数据都迁移到目的端内存,则可以将待写入源端内存的数据直接写入目的端内存。
图8是本申请所提供的数据迁移装置的模块示意图。如图8所示,数据迁移装置800包括分类模块810和迁移模块820,其中:
分类模块810,用于将待迁移数据分成第一待迁移数据和第二待迁移数据,其中,所述待迁移数据位于所述第一内存;
迁移模块820,用于将第一迁移数据迁移到第二内存,并将第二待迁移数据写入存储设备,其中,该存储设备为第一内存和第二内存的共享存储设备。
数据迁移装置800还可以包括调整模块830,用于将第二待迁移数据迁移到第二内存之前,调整迁移进程的优先级,其中,调整后的迁移进程的优先级高于业务进程的优先级,并在第二待迁移数据迁移到第二内存之后,回复迁移进程的优先级。
上述数据迁移装置800还用于执行如图3、图5、图6和图7所示的内存数据迁移的方法。具体来说,分类模块810可以用于执行S302和S502等步骤,迁移模块820可以用于执行S303-S304、S503-S506和S703等步骤,调整模块830可以用于执行S602-S604、S702等步骤。
图9为依据本申请的实施例的计算系统910的结构示意图。
如图9所示,计算系统910包括计算机装置900,计算机装置900包括处理器901,处理器901与系统内存905连接。处理器901可以为中央处理器(Central Processing Unit,CPU),图像处理器(Graphics Processing Unit,GPU),现场可编程门阵列(Field Programmable Gate Array,FPGA),或数字信号处理器(Digital Signal Processor,DSP)等计算逻辑或以上任意计算逻辑的组合。处理器901可以为单核处理器或多核处理器。
总线909用于在计算机装置900的各部件之间传递信息,总线909可以使用有线的连接方式或采用无线的连接方式,本申请并不对此进行限定。总线909还连接有辅助存 储器(英文:secondary storage)902,输入/输出接口903和通信接口904。
辅助存储器902一般也称为外存,辅助存储器907的存储介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如光盘)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。在一些实施例中,辅助存储器902还可能进一步包括与处理器901分离的远程存储器,例如通过通信接口904和网络911进行访问的网盘(包括网络文件系统(Network File System,NFS)等网络或机群文件系统)。
输入/输出接口903连接有输入/输出设备,用于接收输入的信息,输出操作结果。输入/输出设备可以为鼠标、键盘、显示器、或者光驱等。
通信接口904使用例如但不限于收发器一类的收发装置,来实现与其他设备或网络911之间的通信,通信接口904可以通过有线或者无线的形式与网络911互连。
本申请实施例的一些特征可以由处理器901执行内存905中的软件代码来完成/支持。内存905可以包括一些软件,例如,操作系统908(例如Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS或嵌入式操作系统(例如Vxworks)),应用程序907等。
此外,图9仅仅是一个计算系统910的例子,计算系统910可能包含相比于图9展示的更多或者更少的组件,或者有不同的组件配置方式。例如。如果计算系统900对应的是图1所示的多节点结构时,则计算机装置900包括至少两个处理器和内存,该部分未在图中示出。同时,图9中展示的各种组件可以用硬件、软件或者硬件与软件的结合方式实施。
Claims (24)
- 一种数据迁移的方法,其特征在于,所述方法用于计算系统,所述计算系统包含第一内存和第二内存,所述方法包括:将待迁移数据分成第一待迁移数据和第二待迁移数据,其中,所述待迁移数据位于所述第一内存;将所述第一待迁移数据迁移到所述第二内存;将所述第二待迁移数据写入存储设备,其中,所述存储设备为所述第一内存和第二内存的共享存储设备。
- 根据权利要求1所述的方法,其特征在于,所述计算系统包含业务进程和迁移进程,所述迁移进程用于迁移所述待迁移数据,所述业务进程为使用所述待迁移数据的进程,所述将所述第一待迁移数据迁移到所述第二内存之前,所述方法还包括:调整所述迁移进程或者所述业务进程的优先级,以使得所述迁移进程的优先级高于所述业务进程的优先级。
- 根据权利要求2所述的方法,其特征在于,在将所述第一待迁移数据迁移到所述第二内存之后,所述方法还包括:恢复所述迁移进程或者所述业务进程的优先级。
- 根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:所述计算系统生成新数据;将所述新数据写入所述存储设备。
- 根据权利要求1-4任一项所述的方法,其特征在于,所述计算系统包括至少两台计算机装置,所述第一内存位于所述至少两台计算机装置中的第一计算机装置,所述第二内存位于所述至少两台计算机装置中的第二计算机装置。
- 根据权利要求1-5任一项所述的方法,其特征在于,所述将所述待迁移数据分成第一待迁移数据和第二待迁移数据包括:根据最近最少使用LRU算法将所述待迁移数据分成第一待迁移数据和第二待迁移数据。
- 根据权利要求1-6任一项所述的方法,其特征在于,所述将所述待迁移数据分成第一待迁移数据和第二待迁移数据包括:根据最近最不常用页面LFU算法将所述待迁移数据分成第一待迁移数据和第二待迁移数据。
- 根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:将第三数据从所述存储设备读入所述第二内存,其中,所述第二待迁移数据包含所述第 三数据。
- 一种数据迁移的装置,其特征在于,所述装置位于计算系统,所述计算系统包括第一内存和第二内存,所述装置包括:分类模块,用于将待迁移数据分成第一待迁移数据和第二待迁移数据,其中,所述待迁移数据位于所述第一内存;迁移模块,将所述第一待迁移数据迁移到所述第二内存;将所述第二待迁移数据写入存储设备,其中,所述存储设备为所述第一内存和第二内存的共享存储设备。
- 根据权利要求9所述的装置,其特征在于,所述计算系统包含业务进程和迁移进程,所述迁移进程用于迁移所述待迁移数据,所述业务进程为使用所述待迁移数据的进程,所述装置还包括:调整模块,用于将所述第一待迁移数据迁移到所述第二内存之前,调整所述迁移进程或者所述业务进程的优先级,其中,以使得所述迁移进程的优先级高于所述业务进程的优先级。
- 根据权利要求10所述的装置,其特征在于,所述调整模块还用于,在将所述第一待迁移数据迁移到所述第二内存之后,恢复所述迁移进程或者所述业务进程的优先级。
- 根据权利要求9所述的装置,其特征在于,所述迁移模块还用于,当所述计算系统生成新数据时,将所述新数据写入所述存储设备。
- 根据权利要求9-12任一项所述的装置,其特征在于,所述将所述待迁移数据分成第一待迁移数据和第二待迁移数据包括:根据最近最少使用LRU算法将所述待迁移数据分成第一待迁移数据和第二待迁移数据。
- 根据权利要求9-13任一项所述的装置,其特征在于,所述将所述待迁移数据分成第一待迁移数据和第二待迁移数据包括:根据最近最不常用页面LFU算法将所述待迁移数据分成第一待迁移数据和第二待迁移数据。
- 根据权利要求9-14任一项所述的装置,其特征在于,所述迁移装置还用于,将第三数据从所述存储设备读入所述第二内存,其中,所述第二待迁移数据包含所述第三数据。
- 一种计算系统,其特征在于,包括迁移装置、第一内存、第二内存和存储设备,其 中,所述迁移装置用于:将待迁移数据分成第一待迁移数据和第二待迁移数据,其中,所述待迁移数据位于所述第一内存;将所述第一待迁移数据迁移到所述第二内存;将所述第二待迁移数据写入存储设备;所述存储设备用于,接收所述第二待迁移数据,其中,所述存储设备为所述第二内存和第二内存的共享存储设备。
- 根据权利要求16所述的计算系统,其特征在于,所述计算系统包括业务进程和迁移进程,所述迁移进程用于迁移所述待迁移数据,所述业务进程为使用所述待迁移数据的进程,所述迁移装置还用于,在将所述第一待迁移数据迁移到所述第二内存之前,调整所述迁移进程或所述业务进程的优先级,其中,以使得所述迁移进程的优先级高于所述业务进程的优先级。
- 根据权利要求17所述的计算系统,其特征在于,所述迁移装置还用于,在将所述第一待迁移数据迁移到所述第二内存之后,恢复所述迁移进程或者所述业务进程的优先级。
- 根据权利要求16-18任一项所述的计算系统,其特征在于,所述计算系统生成新数据,所述迁移设备还用于,将所述新数据写入所述存储设备;所述存储设备还用于,接收所述新数据。
- 根据权利要求16-19任一项所述的计算系统,其特征在于,所述计算系统包括至少两台计算机装置,所述第一内存位于所述至少两台计算机装置中的第一计算机装置,所述第二内存位于所述至少两台计算机装置中的第二计算机装置。
- 根据权利要求16-20任一项所述的计算系统,其特征在于,所述将所述待迁移数据分成第一待迁移数据和第二待迁移数据包括:根据最近最少使用LRU算法将所述待迁移数据分成第一待迁移数据和第二待迁移数据。
- 根据权利要求16-21任一项所述的计算系统,其特征在于,所述将所述待迁移数据分成第一待迁移数据和第二待迁移数据包括:根据最近最不常用页面LFU算法将所述待迁移数据分成第一待迁移数据和第二待迁移数据。
- 根据权利要求16-22任一项所述的计算系统,其特征在于,所述迁移装置还用于,将第三数据从所述存储设备读入所述第二内存,其中,所述第二 待迁移数据包含所述第三数据。
- 一种计算机装置,所述计算机装置包括存储器和处理器,所述存储器存储程序代码,所述处理器用于调用所述存储器中的程序代码用于执行如权利要求1-8任一项所述的数据迁移的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19879585.8A EP3835936A4 (en) | 2018-10-31 | 2019-06-06 | METHOD AND DEVICE FOR MEMORY DATA MIGRATION |
US17/213,608 US11435931B2 (en) | 2018-10-31 | 2021-03-26 | Memory data migration method and apparatus where cold data is migrated to shared storage prior to storing in destination storage |
US17/893,499 US11809732B2 (en) | 2018-10-31 | 2022-08-23 | Method and apparatus of data migration based on use algorithm |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811284464.4 | 2018-10-31 | ||
CN201811284464.4A CN109582223B (zh) | 2018-10-31 | 2018-10-31 | 一种内存数据迁移的方法及装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/213,608 Continuation US11435931B2 (en) | 2018-10-31 | 2021-03-26 | Memory data migration method and apparatus where cold data is migrated to shared storage prior to storing in destination storage |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020087927A1 true WO2020087927A1 (zh) | 2020-05-07 |
Family
ID=65921407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2019/090364 WO2020087927A1 (zh) | 2018-10-31 | 2019-06-06 | 一种内存数据迁移的方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11435931B2 (zh) |
EP (1) | EP3835936A4 (zh) |
CN (1) | CN109582223B (zh) |
WO (1) | WO2020087927A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760176A (zh) * | 2020-12-02 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 数据存储方法和装置 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582223B (zh) | 2018-10-31 | 2023-07-18 | 华为技术有限公司 | 一种内存数据迁移的方法及装置 |
CN110427284B (zh) * | 2019-07-31 | 2022-02-18 | 中国工商银行股份有限公司 | 数据处理方法、分布式系统、计算机系统和介质 |
CN110704488B (zh) * | 2019-09-29 | 2022-02-08 | 北京元年科技股份有限公司 | 用于管理数据的方法及相应的系统、计算机设备和介质 |
CN111309732B (zh) * | 2020-02-19 | 2024-03-08 | 杭州网易数之帆科技有限公司 | 数据处理方法、装置、介质和计算设备 |
US11972034B1 (en) | 2020-10-29 | 2024-04-30 | Amazon Technologies, Inc. | Hardware-assisted obscuring of cache access patterns |
US11635919B1 (en) * | 2021-09-30 | 2023-04-25 | Amazon Technologies, Inc. | Safe sharing of hot and cold memory pages |
US11777519B2 (en) * | 2022-02-10 | 2023-10-03 | International Business Machines Corporation | Partitional data compression |
CN116841835B (zh) * | 2023-08-31 | 2023-11-07 | 安擎计算机信息股份有限公司 | 一种运行状态监测方法、装置和服务器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008027335A (ja) * | 2006-07-25 | 2008-02-07 | Nec Corp | ストレージシステム、ストレージシステムのデータ移行方法、データ移行装置 |
CN101901250A (zh) * | 2010-06-08 | 2010-12-01 | 中兴通讯股份有限公司 | 一种内存数据库及其数据处理方法 |
CN103198028A (zh) * | 2013-03-18 | 2013-07-10 | 华为技术有限公司 | 一种内存数据迁移方法、装置及系统 |
CN105677736A (zh) * | 2015-12-29 | 2016-06-15 | 曙光信息产业(北京)有限公司 | 一种增加、删除服务器节点的方法及装置 |
CN109582223A (zh) * | 2018-10-31 | 2019-04-05 | 华为技术有限公司 | 一种内存数据迁移的方法及装置 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3714184B2 (ja) * | 2001-03-29 | 2005-11-09 | 富士通株式会社 | 記憶装置のデータ領域間複写処理方法、及び記憶システム |
CA2474477C (en) * | 2002-01-30 | 2011-04-12 | Real Enterprise Solutions Development B.V. | Method of setting priority levels in a multiprogramming computer system with priority scheduling, multiprogramming computer system and program therefor |
US7103727B2 (en) * | 2002-07-30 | 2006-09-05 | Hitachi, Ltd. | Storage system for multi-site remote copy |
JP5446040B2 (ja) * | 2009-09-28 | 2014-03-19 | 日本電気株式会社 | コンピュータシステム、及び仮想マシンのマイグレーション方法 |
US8510528B2 (en) * | 2010-12-29 | 2013-08-13 | Teradata Us, Inc. | Differential data storage based on predicted access frequency |
US8661214B2 (en) * | 2011-09-21 | 2014-02-25 | Hitachi, Ltd. | Storage system and data migration processing control method |
CN103108029B (zh) | 2012-12-13 | 2016-06-29 | 中国科学院深圳先进技术研究院 | vod系统的数据访问方法 |
CN103902593B (zh) * | 2012-12-27 | 2018-09-07 | 中国移动通信集团河南有限公司 | 一种数据迁移的方法和装置 |
KR102094163B1 (ko) * | 2013-08-28 | 2020-03-27 | 삼성전자 주식회사 | 하이브리드 캐시 기반의 메모리 시스템에서 캐시를 관리하는 장치 및 방법과, 그 메모리 시스템 |
JP6365085B2 (ja) | 2014-08-04 | 2018-08-01 | 富士通株式会社 | データ移行方法及びデータ移行装置 |
US20180024853A1 (en) * | 2015-02-17 | 2018-01-25 | Coho Data, Inc. | Methods, systems, devices and appliances relating to virtualized application-layer space for data processing in data storage systems |
KR20160111583A (ko) * | 2015-03-16 | 2016-09-27 | 삼성전자주식회사 | 호스트 및 복수의 저장 장치를 포함하는 메모리 시스템 및 그것의 데이터 이송 방법 |
CN105653591B (zh) * | 2015-12-22 | 2019-02-05 | 浙江中控研究院有限公司 | 一种工业实时数据分级存储及迁移方法 |
US10083199B1 (en) * | 2016-05-23 | 2018-09-25 | Sprint Communications Company L.P. | Data migration in active data store |
CN106484330A (zh) * | 2016-09-27 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种混合磁盘分层数据优化方法和装置 |
US10437799B2 (en) | 2016-12-02 | 2019-10-08 | International Business Machines Corporation | Data migration using a migration data placement tool between storage systems based on data access |
CN106777225B (zh) | 2016-12-26 | 2021-04-06 | 腾讯科技(深圳)有限公司 | 一种数据的迁移方法和系统 |
CN106934001A (zh) * | 2017-03-03 | 2017-07-07 | 广州天源迪科信息技术有限公司 | 分布式快速清单查询系统及方法 |
-
2018
- 2018-10-31 CN CN201811284464.4A patent/CN109582223B/zh active Active
-
2019
- 2019-06-06 EP EP19879585.8A patent/EP3835936A4/en active Pending
- 2019-06-06 WO PCT/CN2019/090364 patent/WO2020087927A1/zh unknown
-
2021
- 2021-03-26 US US17/213,608 patent/US11435931B2/en active Active
-
2022
- 2022-08-23 US US17/893,499 patent/US11809732B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008027335A (ja) * | 2006-07-25 | 2008-02-07 | Nec Corp | ストレージシステム、ストレージシステムのデータ移行方法、データ移行装置 |
CN101901250A (zh) * | 2010-06-08 | 2010-12-01 | 中兴通讯股份有限公司 | 一种内存数据库及其数据处理方法 |
CN103198028A (zh) * | 2013-03-18 | 2013-07-10 | 华为技术有限公司 | 一种内存数据迁移方法、装置及系统 |
CN105677736A (zh) * | 2015-12-29 | 2016-06-15 | 曙光信息产业(北京)有限公司 | 一种增加、删除服务器节点的方法及装置 |
CN109582223A (zh) * | 2018-10-31 | 2019-04-05 | 华为技术有限公司 | 一种内存数据迁移的方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760176A (zh) * | 2020-12-02 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 数据存储方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3835936A1 (en) | 2021-06-16 |
CN109582223B (zh) | 2023-07-18 |
CN109582223A (zh) | 2019-04-05 |
US11435931B2 (en) | 2022-09-06 |
EP3835936A4 (en) | 2021-10-13 |
US20210216232A1 (en) | 2021-07-15 |
US20230053968A1 (en) | 2023-02-23 |
US11809732B2 (en) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020087927A1 (zh) | 一种内存数据迁移的方法及装置 | |
US9003082B2 (en) | Information processing apparatus, arithmetic device, and information transferring method | |
WO2019161557A1 (zh) | 一种通信的方法及装置 | |
US8370533B2 (en) | Executing flash storage access requests | |
US8495267B2 (en) | Managing shared computer memory using multiple interrupts | |
US7308539B2 (en) | Concurrent read access and exclusive write access to data in shared memory architecture | |
US20110004732A1 (en) | DMA in Distributed Shared Memory System | |
US10346091B2 (en) | Fabric resiliency support for atomic writes of many store operations to remote nodes | |
US10860225B2 (en) | Apparatus and method for routing access based on device load | |
CN110119304B (zh) | 一种中断处理方法、装置及服务器 | |
WO2012134641A2 (en) | Techniques and mechanisms for live migration of pages pinned for dma | |
WO2023093418A1 (zh) | 数据迁移方法、装置及电子设备 | |
WO2023125524A1 (zh) | 数据存储方法、系统、存储访问配置方法及相关设备 | |
CN111124270A (zh) | 缓存管理的方法、设备和计算机程序产品 | |
WO2020087930A1 (zh) | 一种数据保护方法、装置及系统 | |
WO2020087931A1 (zh) | 一种数据备份方法、装置及系统 | |
US9652345B2 (en) | Techniques and systems for local independent failure domains | |
TW202028986A (zh) | 用來在儲存伺服器中進行基於管線的存取管理的方法及設備 | |
US11836083B2 (en) | Memory access tracking using a peripheral device | |
US8732351B1 (en) | System and method for packet splitting | |
US10437471B2 (en) | Method and system for allocating and managing storage in a raid storage system | |
CN116601616A (zh) | 一种数据处理装置、方法及相关设备 | |
WO2024051292A1 (zh) | 数据处理系统、内存镜像方法、装置和计算设备 | |
WO2023231572A1 (zh) | 一种容器的创建方法、装置及存储介质 | |
EP4163780A1 (en) | Systems, methods, and devices for near storage elasticity |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19879585 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2019879585 Country of ref document: EP Effective date: 20210311 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |