CN113515502B - 数据迁移方法、装置、设备以及存储介质 - Google Patents
数据迁移方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN113515502B CN113515502B CN202110795993.6A CN202110795993A CN113515502B CN 113515502 B CN113515502 B CN 113515502B CN 202110795993 A CN202110795993 A CN 202110795993A CN 113515502 B CN113515502 B CN 113515502B
- Authority
- CN
- China
- Prior art keywords
- data
- migrated
- slot
- data slot
- node
- 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
Links
- 238000013508 migration Methods 0.000 title claims abstract description 173
- 230000005012 migration Effects 0.000 title claims abstract description 171
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000012545 processing Methods 0.000 claims abstract description 24
- 238000004458 analytical method Methods 0.000 claims abstract description 16
- 230000006870 function Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 10
- 230000000903 blocking effect Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 239000012634 fragment Substances 0.000 description 7
- 230000008602 contraction Effects 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Abstract
本申请公开了一种数据迁移方法、装置、设备以及存储介质,该方法包括:接收元服务器发送的数据槽迁移命令,数据槽迁移命令携带待迁移数据槽的标识和目标节点的标识,将待迁移节点中的待迁移数据槽的数据和待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至目标节点,以使目标节点解析数据加载命令并将解析得到的待迁移数据槽的数据加载到目标节点的内存中,接收目标节点发送的用于指示数据迁移成功或者失败的指示信息。从而,可缩短被迁移方和待迁移方同时阻塞的时间,缩短了无法处理用户侧的读请求和写请求的时间。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据迁移方法、装置、设备以及存储介质。
背景技术
远程字典服务(Remote Dictionary Server,Redis),是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型的键-值(Key-Value)数据库,是业界当前流行的键-值存储系统。Redis集群(cluster)是指多个分片(sharding)构成的一种架构,整个Redis集群被拆分为多个分片,每个分片存储着一部分数据,所有分片叠加一起存储着该Redis集群的全量数据。一个Redis集群中存在很多的数据槽(Slot),Slot也称数据切片,每个Slot分别位于不同分片上。
Redis集群的扩容和缩容分别是指Redis集群中分片数量的增加和删减,对于Redis集群而言,随着业务量的动态变化,需要在集群容量不够时进行Redis集群的扩容,即增加新的分片到当前的Redis集群中,重新分配各个分片上的Slot,并迁移Slot及Slot上的数据到新增的分片上;在集群容量处于闲置状态时进行Redis集群的缩容,即删减当前的Redis集群中的一个或多个分片,将删减的分片中Slot及Slot上的数据迁移到其它分片。
现有技术中,在实现Redis集群的扩容和缩容时,Slot之间的数据迁移是以键(Key)的粒度进行迁移,即一个Key一个Key地迁移,在Slot迁移期间,会导致被迁移方和待迁移方同时阻塞,无法处理用户侧的读请求和写请求。
发明内容
本申请提供一种数据迁移方法、装置、设备以及存储介质,以解决在Slot迁移期间,被迁移方和待迁移方同时阻塞,无法处理用户侧的读请求和写请求的问题。
第一方面,本申请提供一种数据迁移方法,所述方法应用于待迁移节点,所述方法包括:
接收元服务器发送的数据槽迁移命令,所述数据槽迁移命令携带待迁移数据槽的标识和目标节点的标识;
将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至所述目标节点,以使所述目标节点解析所述数据加载命令并将解析得到的所述待迁移数据槽的数据加载到所述目标节点的内存中;
接收所述目标节点发送的用于指示数据迁移成功或者失败的指示信息。
第二方面,本申请提供一种数据迁移方法,所述方法应用于目标节点,所述方法包括:
接收待迁移节点发送的数据加载命令,所述数据加载命令为所述待迁移节点将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换得到;
解析所述数据加载命令,将解析得到的待迁移数据槽的数据加载到所述目标节点的内存中;
向所述待迁移节点发送用于指示数据迁移成功或者失败的指示信息。
第三方面,本申请提供一种数据迁移装置,包括:
接收模块,用于接收元服务器发送的数据槽迁移命令,所述数据槽迁移命令携带待迁移数据槽的标识和目标节点的标识;
发送模块,用于将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至所述目标节点,以使所述目标节点解析所述数据加载命令并将解析得到的所述待迁移数据槽的数据加载到所述目标节点的内存中;
所述接收模块还用于:接收所述目标节点发送的用于指示数据迁移成功或者失败的指示信息。
第四方面,本申请提供一种数据迁移装置,包括:
接收模块,用于接收待迁移节点发送的数据加载命令,所述数据加载命令为所述待迁移节点将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换得到;
处理模块,用于解析所述数据加载命令,将解析得到的待迁移数据槽的数据加载到所述目标节点的内存中;
发送模块,用于向所述待迁移节点发送用于指示数据迁移成功或者失败的指示信息。
第五方面,本申请实施例提供一种数据迁移设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行第一方面或第一方面各可能的实施方式中和第二方面或第二方面各可能的实施方式中任一所述的数据迁移方法。
第六方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面或第一方面各可能的实施方式中和第二方面或第二方面各可能的实施方式中任一所述的数据迁移方法。
第七方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面或第一方面各可能的实施方式中和第二方面或第二方面各可能的实施方式中任一所述的数据迁移方法。
本申请提供的数据迁移方法、装置、设备以及存储介质,通过待迁移节点在接收到元服务器发送的数据槽迁移命令(携带待迁移数据槽的标识和目标节点的标识)时,将待迁移节点中的待迁移数据槽的数据和待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至目标节点,目标节点解析数据加载命令并将解析得到的待迁移数据槽的数据加载到目标节点的内存中。从而实现一个Slot一次性的整体迁移。由于在进行数据迁移时是将一个Slot一次性整体迁移,相比较一个Key一个Key地迁移,数据迁移所占用时间缩短,因此可缩短被迁移方和待迁移方同时阻塞的时间,缩短了无法处理用户侧的读请求和写请求的时间。
附图说明
图1为本申请实施例提供的数据迁移方法的一种应用场景示意图;
图2为本申请实施例提供的数据迁移方法的另一种应用场景示意图;
图3为本申请实施例提供的一种数据迁移方法的交互流程图;
图4为本申请实施例提供的一种数据迁移方法实施例的交互流程图;
图5为本申请实施例提供的一种数据迁移方法实施例的交互流程图;
图6为本申请实施例提供的一种数据迁移方法实施例的流程图;
图7为本申请实施例提供的一种数据迁移方法实施例中节点A将待迁移数据槽的数据和待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至目标节点B的流程示意图;
图8为本申请实施例提供的一种数据迁移装置的结构示意图;
图9为本申请实施例提供的一种数据迁移装置的结构示意图;
图10为本申请实施例提供的一种数据迁移设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
本申请实施例的说明书、权利要求书及附图中的术语“第一”和“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请实施例的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,下面对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
1、分片(sharding),整个Redis集群被拆分为多个分片,每个分片存储着一部分数据,所有分片叠加一起存储着该Redis集群的全量数据,分片也称为节点,下文中均以节点描述。
2、数据槽(Slot),整个redis集群被拆分为多个节点,所有节点叠加一起存储着该Redis集群的全量数据,并且这些数据对应着16384个slot(即:16384个slot,合计组成了对应redis集群的全量数据),每个Slot分别位于不同节点上。
3、元服务器(Metaserver),存储Redis集群的元数据的独立模块,元服务器可以管理多个各自独立的Redis集群。元数据可以包括Redis集群标识(ID)、该Redis集群内的所有节点的标识、每个节点包括的数据槽的标识(如编号)以及该Redis集群所部署的机房信息。
相关技术中,在实现Redis集群的扩容和缩容时,Slot之间的数据迁移是以键(Key)的粒度进行迁移,即一个Key一个Key地迁移,一个Slot包括多个键-值(Key-Value),在Slot迁移期间,会导致被迁移方和待迁移方同时阻塞,无法处理用户侧的读请求和写请求。为解决这一问题,本申请实施例提供一种数据迁移方法、装置、设备以及存储介质,通过待迁移节点在接收到元服务器发送的数据槽迁移命令(携带待迁移数据槽的标识和目标节点的标识)时,将待迁移节点中的待迁移数据槽的数据和待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至目标节点,目标节点解析数据加载命令并将解析得到的待迁移数据槽的数据加载到目标节点的内存中。从而实现一个Slot一次性的整体迁移。由于在进行数据迁移时是将一个Slot一次性整体迁移,相比较一个Key一个Key地迁移,数据迁移所占用时间缩短,因此可缩短被迁移方和待迁移方同时阻塞的时间,缩短了无法处理用户侧的读请求和写请求的时间。
进一步地,通过在待迁移节点设置主线程和子线程,主线程在接收到元服务器发送的数据槽迁移命令时,通过子线程进行数据迁移,即子线程将待迁移数据槽的数据和待迁移数据槽迁移至目标节点,由于在进行数据迁移时,是由子线程处理数据迁移,待迁移方的主线程还可以继续处理读请求和除待迁移数据槽之外的数据槽的写请求,即读请求和除待迁移数据槽之外的数据槽的写请求可正常访问。
接下来,对本申请实施例涉及的应用场景进行示例说明。
本申请实施例提供的数据迁移方法至少可以应用于下述应用场景中,下面结合附图进行说明。
示例性的,图1为本申请实施例提供的数据迁移方法的一种应用场景示意图,如图1所示,显示的是迁移前的Redis集群和迁移后的Redis集群的节点构成,例如,迁移前的Redis集群被拆分为两个节点,节点1包括3个数据槽(分别是数据槽1、数据槽2和数据槽3),节点2包括3个数据槽(分别是数据槽4、数据槽5和数据槽6),客户端通过代理层(Proxy)访问每个数据槽,代理层转发客户端的访问请求。例如,在Redis集群容量不够时进行当前Redis集群的扩容,需要增加新的节点3到当前的Redis集群中,此时需要进行数据槽的迁移,例如将数据槽4迁移到新增的节点3中,迁移后的Redis集群被拆分为3个节点,节点1包括3个数据槽(分别是数据槽1、数据槽2和数据槽3),节点2包括2个数据槽(分别是数据槽5和数据槽6),节点3包括1个数据槽。在将数据槽4从节点2迁移到节点3时,可以使用本申请提供的数据迁移方法,节点2为待迁移节点(也称为待迁移方),节点3为被迁移节点(也称为被迁移方)。
示例性的,图2为本申请实施例提供的数据迁移方法的另一种应用场景示意图,如图2所示,一个Redis集群被拆分为两个节点(节点1和节点2),该Redis集群的全量数据存储在节点1和节点2,例如,节点1包括奇数编号的数据槽(数据槽1、数据槽3、…和数据槽2N+1),节点2包括偶数编号的数据槽(数据槽0、数据槽2、…和数据槽2N),例如需要将节点1中的数据槽101迁移至节点2,可以使用本申请提供的数据迁移方法,节点1为待迁移节点(也称为待迁移方),节点2为被迁移节点(也称为被迁移方)。
下面以具体的实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图3为本申请实施例提供的一种数据迁移方法的交互流程图,该数据迁移方法可以由数据迁移装置执行,该数据迁移装置可以通过软件和/或硬件的方式实现。如图3所示,本实施例的方法可以包括:
S101、待迁移节点接收元服务器发送的数据槽迁移命令,数据槽迁移命令携带待迁移数据槽的标识和目标节点的标识。
具体来说,待迁移数据槽为待迁移节点中的数据槽,要实现的是将待迁移数据槽的数据以及待迁移数据槽迁移至目标节点。
本申请实施例中,元服务器(Metaserver)为存储Redis集群的元数据的独立模块,元服务器可以管理多个各自独立的Redis集群。具体来说,元服务器用于存储元数据,元数据可以包括Redis集群标识(ID)、该Redis集群内的所有节点的标识、每个节点包括的数据槽的标识(如编号)以及该Redis集群所部署的机房信息。元服务器属于一个多节点部署(如>=3),其内部需要支持类似raft或者paxos协议,应对元数据一致性。元服务器会定期自动扫描对应Redis集群的每个数据槽大小以及均衡分布,如果检测出有容量风险则会自动发起扩容操作,反之,如果检测出集群容量处于闲置状态之时,则由元服务器发起缩容操作。元服务器发起扩容或缩容,都存在数据槽从待迁移节点迁移至目标节点,此时元服务器向待迁移节点发送数据槽迁移命令。
S102、待迁移节点将待迁移节点中的待迁移数据槽的数据和待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至目标节点。
具体地,一个Redis集群中数据槽的总数量是固化不变的,在进行数据迁移时,是将整个待迁移数据槽(包括数据槽的数据和标识)迁移至目标节点,在具体迁移时,待迁移节点将待迁移数据槽的数据和待迁移数据槽的标识按照预设格式转换为数据加载命令,然后将该数据加载命令一次性发送至目标节点。
S103、目标节点解析数据加载命令,将解析得到的待迁移数据槽的数据加载到目标节点的内存中。
具体地,目标节点按照数据加载命令的预设格式对数据加载命令进行解析,将解析得到的待迁移数据槽的数据加载到目标节点的内存中,实现了待迁移数据槽的数据的迁移。
S104、目标节点向待迁移节点发送用于指示数据迁移成功或者失败的指示信息。
具体地,当目标节点解析数据和加载数据成功后,向待迁移节点发送用于指示数据迁移成功的指示信息,例如该指示信息为“+OK”。若目标节点解析数据和加载数据失败,或者目标节点已处于数据槽迁移状态,则向目标节点发送用于指示数据迁移失败的指示信息,该指示信息例如为“-ERR slotmigratefailure”。可选的,数据槽迁移命令还可携带单次迁移所需时间,在宕机或者网络断开时,待迁移节点若在超过单次迁移所需时间还未接收到用于指示数据迁移成功或者失败的指示信息,则待迁移节点触发目标节点迁移超时,便于元服务器获取到此次迁移失败的信息。
可选的,当待迁移节点接收到目标节点发送的用于指示数据迁移成功的指示信息时,向元服务器发送用于指示待迁移数据槽的数据迁移成功的指示信息,元服务器则向待迁移节点发送冲洗命令,该命令携带数据槽的标识,以便待迁移节点将待迁移数据槽的数据清空。
可选的,若待迁移节点接收到目标节点发送的用于指示数据迁移成功的指示信息,向元服务器发送用于指示待迁移数据槽的数据迁移成功的指示信息,此时元服务器将待迁移节点中待迁移数据槽的状态设置为不可用状态,并将目标节点中待迁移数据槽的状态设置为可用状态,从而实现了数据槽的迁移。
本实施例提供的数据迁移方法,通过待迁移节点在接收到元服务器发送的数据槽迁移命令(携带待迁移数据槽的标识和目标节点的标识)时,将待迁移节点中的待迁移数据槽的数据和待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至目标节点,目标节点解析数据加载命令并将解析得到的待迁移数据槽的数据加载到目标节点的内存中。从而实现一个Slot一次性的整体迁移。由于在进行数据迁移时是将一个Slot一次性整体迁移,相比较一个Key一个Key地迁移,数据迁移所占用时间缩短,因此可缩短被迁移方和待迁移方同时阻塞的时间,缩短了无法处理用户侧的读请求和写请求的时间。
图4为本申请实施例提供的一种数据迁移方法实施例的交互流程图,如图4所示,本实施例的方法在图3所示方法的基础上,可选的,上述S102可以通过如下步骤实现:
S102’、待迁移节点通过待迁移节点的子线程,将待迁移节点中的待迁移数据槽的数据和待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至目标节点。
具体地,可以在待迁移节点设置主线程和子线程,主线程在接收到元服务器发送的数据槽迁移命令时,通过子线程进行数据迁移,即子线程将待迁移数据槽的数据和待迁移数据槽迁移至目标节点,由于在进行数据迁移时,是由子线程处理数据迁移,待迁移方的主线程还可以继续处理读请求和除待迁移数据槽之外的数据槽的写请求,即读请求和除待迁移数据槽之外的数据槽的写请求可正常访问。
作为一种可实施的方式,待迁移节点通过待迁移节点的子线程,将待迁移节点中的待迁移数据槽的数据和待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至目标节点,具体可以包括:
S1021’、向子线程发送迁移信号,并设置待迁移数据槽的写请求状态为不可访问状态。
S1022’、通过子线程将待迁移节点中的待迁移数据槽的数据和待迁移数据槽的标识按照预设格式转换为数据加载命令。
可选的,S1022’具体可以为:
S10221’、通过子线程从待迁移节点预分配第一内存,将包括待迁移数据槽的标识的命令前缀写入第一内存。
S10222’、通过子线程调用数据加载函数,遍历待迁移数据槽的内存区域以获取待迁移数据槽的数据。
S10223’、通过子线程将待迁移数据槽的数据和待迁移数据槽的数据的长度写入第一内存,得到包括命令前缀、待迁移数据槽的数据和待迁移数据槽的数据的长度的加载命令。
作为一种可实施的方式,通过子线程将待迁移数据槽的数据和待迁移数据槽的数据的长度写入第一内存,可以为:
通过若确定待迁移数据槽的数据的长度大于预设阈值,则将待迁移数据槽的数据进行压缩,得到压缩后的待迁移数据槽的数据和压缩后的待迁移数据槽的数据的长度。
其中,例如预设阈值为10MB,可以采用压缩算法将待迁移数据槽的数据进行压缩,通过在数据长度较大时进行压缩后写入第一内存传输,可减少数据传输时间。
通过将压缩后的待迁移数据槽的数据和压缩后的待迁移数据槽的数据的长度写入第一内存。
S10224’、通过子线程调用反转函数,对加载命令中的待迁移数据槽的数据和待迁移数据槽的数据的长度的位置进行置换,得到预设格式的数据加载命令,其中,待迁移数据槽的数据以序列化的二进制流的形式存在在数据加载命令中。
S1023’、通过子线程将数据加载命令发送至目标节点。
待迁移节点通过子线程经上述S10221’-S10224’得到数据加载命令,相应地,目标节点在接收到数据加载命令进行解析时,即图3所示实施例中的S103解析数据加载命令,将解析得到的待迁移数据槽的数据加载到目标节点的内存中,具体可以包括:
S1031、目标节点按照数据加载命令的预设格式从数据加载命令中确定待迁移数据槽的数据的位置,待迁移数据槽的数据以序列化的二进制流的形式存在在数据加载命令中。
S1032、目标节点对待迁移数据槽的数据进行反序列化,得到每条二进制流对应的键-值。
可选的,S1032可以包括:
目标节点对待迁移数据槽的数据进行解压,得到解压后的数据,对解压后的数据进行反序列化,得到每条二进制流对应的键-值。
S1033、目标节点将每条二进制流对应的键-值加载到目标节点的内存中。
本实施例提供的数据迁移方法,通过在待迁移节点设置主线程和子线程,主线程在接收到元服务器发送的数据槽迁移命令时,通过子线程进行数据迁移,即子线程将待迁移数据槽的数据和待迁移数据槽迁移至目标节点,由于在进行数据迁移时,是由子线程处理数据迁移,待迁移方的主线程还可以继续处理读请求和除待迁移数据槽之外的数据槽的写请求,即读请求和除待迁移数据槽之外的数据槽的写请求可正常访问。更进一步缩短了无法处理用户侧的读请求和写请求的时间。
下面结合一个具体的实施例,对本申请提供的数据迁移方法的详细过程进行说明,下面实施例中以待迁移节点通过子线程处理数据迁移为例进行说明。
图5为本申请实施例提供的一种数据迁移方法实施例的交互流程图,图6为本申请实施例提供的一种数据迁移方法实施例的流程图,如图5和图6所示所示,本实施例的方法可以包括:
S201、元服务器向节点A发送数据槽迁移命令,数据槽迁移命令携带待迁移数据槽的标识和目标节点B的标识。
具体地,作为一种可实施的方式,本实施例中通过Redis的数据迁移接口采用“slotmigrate remote_ip remote_port slot_id timeout”为数据槽迁移命令,该命令包括的内容的具体含义如下:
Slotmigrate:数据槽迁移命令名称
remote_ip:待迁移节点的服务器IP地址
remote_port:目标节点的标识(或者目标节点监听的端口)
slot_id:待迁移数据槽的标识
timeout:单次迁移所用时间
S202、节点A将待迁移数据槽的数据和待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至目标节点B。
具体地,节点A接收到数据槽迁移命令后,将检测当前节点A是否已经处于正在执行数据槽迁移(slot_migrating)状态,如果已经处于正在执行数据槽迁移的状态,则直接给元服务器返回错误指示(ERR),否则将执行此数据槽迁移命令,若A可以正式执行此数据槽迁移命令,便直接返回OK给元服务器,是否迁移成功,则需要元服务器去主动探测。
S202中,节点A可以通过子线程将待迁移数据槽的数据和待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至目标节点B。可选的,子线程(slotMigrate)可以设置在节点A中,作为一个常驻线程启动。
图7为本申请实施例提供的一种数据迁移方法实施例中节点A将待迁移数据槽的数据和待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至目标节点B的流程示意图,结合图7,S202具体可以包括:
S2021、节点A的主线程向子线程发送迁移信号,并设置待迁移数据槽的写请求状态为不可访问状态。
其中,可选的,迁移信号可以为linnux操作系统用户自定义信号(SIGUSR)。
S2022、子线程从节点A预分配第一内存,将包括待迁移数据槽的标识的命令前缀写入第一内存,子线程调用数据加载函数,遍历待迁移数据槽的内存区域以获取待迁移数据槽的数据,子线程将待迁移数据槽的数据和待迁移数据槽的数据的长度写入第一内存,得到包括命令前缀、待迁移数据槽的数据和待迁移数据槽的数据的长度的加载命令。
具体地,子线程从节点A预分配第一内存,将包括待迁移数据槽的标识的命令前缀(如*2\r\n$8\r\Nslotload\r\n)写入第一内存,其中Nslotload为待迁移数据槽的标识,子线程调用数据加载(slotdump)函数,遍历待迁移数据槽的内存区域以获取待迁移数据槽的数据为SLOTCONTENT,子线程将待迁移数据槽的数据和待迁移数据槽的数据的长度写入第一内存,待迁移数据槽的数据拼接在命令前缀后面,得到格式为*2\r\n$8\r\Nslotload\r\nSLOTCONTENT\r\n,再把待迁移数据槽的数据的长度(SLOTCONNECT_SIZE)拼接到最后,得到加载命令为*2\r\n$8\r\Nslotload\r\nSLOTCONTENT\r\nSLOTCONNECT_SIZE。
S2023、子线程调用反转函数,对加载命令中的待迁移数据槽的数据和待迁移数据槽的数据的长度的位置进行置换,得到预设格式的数据加载命令。
具体地,子线程调用反转函数(如slot_command_rotate函数),通过3次反转(O(N)的时间复杂度),把SLOTCONTENT和SLOTCONTENT_SIZE的内容进行置换,得到预设格式的数据加载命令,数据加载命令为:“*2\r\n$8\r\nSLOTLOAD\r\nSLOTCONNECT_SIZE\r\nSLOTCONNECT”。
S2024、子线程将数据加载命令发送至目标节点B。
具体地,子线程可以阻塞式把数据加载命令发送到B,等待B反馈的指示信息。
本申请实施例中,子线程接收迁移信号,接收到此迁移信号则节点A要开始数据迁移。
S203、目标节点B解析数据加载命令,将解析得到的待迁移数据槽的数据加载到目标节点B的内存中。
具体地,目标节点B按照数据加载命令的预设格式从数据加载命令中确定待迁移数据槽的数据的位置,待迁移数据槽的数据以序列化的二进制流的形式存在在数据加载命令中,接着对待迁移数据槽的数据进行反序列化,得到每条二进制流对应的键-值,将每条二进制流对应的键-值加载到目标节点B的内存中。
当目标节点B解析数据和加载数据成功后,向待迁移节点A发送用于指示数据迁移成功的指示信息,例如该指示信息为“+OK”。
S204、目标节点B向节点A发送用于指示数据迁移成功或者失败的指示信息。
若节点A接收到目标节点B发送的用于指示数据迁移成功的指示信息,向元服务器发送用于指示待迁移数据槽的数据迁移成功的指示信息,此时元服务器将节点A中待迁移数据槽的状态设置为不可用状态,并将目标节点B中待迁移数据槽的状态设置为可用状态,从而实现了数据槽的迁移。
本实施例中,数据槽迁移是非异步方式,数据槽迁移命令若发出,则须等到目标节点加载数据成功后才返回OK,如果因为目标节点加载数据超时、连接超时或数据加载命令发送超时都会导致数据槽迁移命令执行失败,理论上,是存在数据槽迁移命令执行失败,但是迁移两端都存在相同的数据槽数据,这种情况可能会发生在对端已经加载成功数据,但是此时网络断开或者链路阻塞,因此,本实施例中设置如果对端数据槽已经存在数据,则对端数据槽的数据会被覆盖。
本实施例中,如图6中所示,若S201中数据槽迁移命令未发送成功,则流程中止,若S202中数据加载命令未发送成功,则流程中止,若S203中节点B加载数据失败,则流程中止。
以下为本申请装置实施例,可以用于执行本申请上述方法实施例。对于本申请装置实施例中未披露的细节,可参考本申请上述方法实施例。
图8为本申请实施例提供的一种数据迁移装置的结构示意图,如图8所示,本实施例的装置可以包括:接收模块11和发送模块12,其中,
接收模块11用于接收元服务器发送的数据槽迁移命令,所述数据槽迁移命令携带待迁移数据槽的标识和目标节点的标识;
发送模块12用于将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至所述目标节点,以使所述目标节点解析所述数据加载命令并将解析得到的所述待迁移数据槽的数据加载到所述目标节点的内存中;
所述接收模块11还用于:接收所述目标节点发送的用于指示数据迁移成功或者失败的指示信息。
可选的,发送模块12用于通过所述待迁移节点的子线程,将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至所述目标节点。
可选的,发送模块12用于向所述子线程发送迁移信号,并设置所述待迁移数据槽的写请求状态为不可访问状态;
通过所述子线程将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换为数据加载命令;
通过所述子线程将所述数据加载命令发送至所述目标节点。
可选的,发送模块12用于:通过所述子线程从所述待迁移节点预分配第一内存,将包括所述待迁移数据槽的标识的命令前缀写入所述第一内存;
通过所述子线程调用数据加载函数,遍历所述待迁移数据槽的内存区域以获取所述待迁移数据槽的数据;
通过所述子线程将所述待迁移数据槽的数据和所述待迁移数据槽的数据的长度写入所述第一内存,得到包括所述命令前缀、所述待迁移数据槽的数据和所述待迁移数据槽的数据的长度的加载命令;
通过所述子线程调用反转函数,对所述加载命令中的所述待迁移数据槽的数据和所述待迁移数据槽的数据的长度的位置进行置换,得到所述预设格式的所述数据加载命令,其中,所述待迁移数据槽的数据以序列化的二进制流的形式存在在所述数据加载命令中。
可选的,发送模块12具体用于:通过所述子线程若确定所述待迁移数据槽的数据的长度大于预设阈值,则将所述待迁移数据槽的数据进行压缩,得到压缩后的待迁移数据槽的数据和压缩后的待迁移数据槽的数据的长度;
通过所述子线程将所述压缩后的待迁移数据槽的数据和压缩后的待迁移数据槽的数据的长度写入所述第一内存。
可选的,发送模块12还用于在接收模块11接收到所述目标节点发送的用于指示数据迁移成功的指示信息时,向所述元服务器发送用于指示所述待迁移数据槽的数据迁移成功的指示信息,用于所述元服务器将所述待迁移节点中所述待迁移数据槽的状态设置为不可用状态,并将所述目标节点中所述待迁移数据槽的状态设置为可用状态。
本申请实施例提供的装置,可执行上述方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。
图9为本申请实施例提供的一种数据迁移装置的结构示意图,如图9所示,本实施例的装置9可以包括:接收模块21、处理模块22和发送模块23,其中,
接收模块21用于接收待迁移节点发送的数据加载命令,所述数据加载命令为所述待迁移节点将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换得到;
处理模块22用于解析所述数据加载命令,将解析得到的待迁移数据槽的数据加载到所述目标节点的内存中;
发送模块23用于向所述待迁移节点发送用于指示数据迁移成功或者失败的指示信息。
可选的,数据加载命令为所述待迁移节点通过所述待迁移节点的子线程,将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换得到,接收模块21用于接收所述待迁移节点通过所述子线程发送的所述数据加载命令。
可选的,处理模块22用于按照所述数据加载命令的预设格式从所述数据加载命令中确定所述待迁移数据槽的数据的位置,所述待迁移数据槽的数据以序列化的二进制流的形式存在在所述数据加载命令中;
对所述待迁移数据槽的数据进行反序列化,得到每条二进制流对应的键-值;
将所述每条二进制流对应的键-值加载到所述目标节点的内存中。
可选的,处理模块22用于对所述待迁移数据槽的数据进行解压,得到解压后的数据;
对所述解压后的数据进行反序列化,得到每条二进制流对应的键-值。
本申请实施例提供的装置,可执行上述方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,处理模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上处理模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessing unit,CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid state disk(SSD))等。
图10为本申请实施例提供的一种数据迁移设备的结构示意图,如图10所示,本实施例的数据迁移设备可以包括处理器21和存储器22,
其中,存储器22用于存储处理器21的可执行指令。
处理器21配置为经由执行可执行指令来执行上述方法实施例中的数据迁移方法。
可选地,存储器22既可以是独立的,也可以跟处理器21集成在一起。
当存储器22是独立于处理器21之外的器件时,本实施例的数据迁移设备还可以包括:
总线23,用于连接存储器22和处理器21。
可选地,本实施例的数据迁移设备还可以包括:通信接口24,该通信接口24可以通过总线23与处理器21连接。
本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当其在计算机上运行时,使得计算机执行如上述实施例的数据迁移方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上实施例中的数据迁移方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (9)
1.一种数据迁移方法,其特征在于,所述方法应用于待迁移节点,所述待迁移节点设置主线程和子线程,所述子线程作为一个常驻线程启动,所述方法包括:
所述主线程接收元服务器发送的数据槽迁移命令,所述数据槽迁移命令携带待迁移数据槽的标识和目标节点的标识;
将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至所述目标节点,以使所述目标节点解析所述数据加载命令并将解析得到的所述待迁移数据槽的数据加载到所述目标节点的内存中;
接收所述目标节点加载数据成功后发送的用于指示数据迁移成功或者失败的指示信息;
其中,所述将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至所述目标节点,包括:
所述主线程向所述子线程发送迁移信号,并设置所述待迁移数据槽的写请求状态为不可访问状态;
通过所述子线程将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换为数据加载命令;
通过所述子线程将所述数据加载命令发送至所述目标节点;
其中,所述通过所述子线程将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换为数据加载命令,包括:
通过所述子线程从所述待迁移节点预分配第一内存,将包括所述待迁移数据槽的标识的命令前缀写入所述第一内存;
通过所述子线程调用数据加载函数,遍历所述待迁移数据槽的内存区域以获取所述待迁移数据槽的数据;
通过所述子线程将所述待迁移数据槽的数据和所述待迁移数据槽的数据的长度写入所述第一内存,得到包括所述命令前缀、所述待迁移数据槽的数据和所述待迁移数据槽的数据的长度的加载命令;
通过所述子线程调用反转函数,对所述加载命令中的所述待迁移数据槽的数据和所述待迁移数据槽的数据的长度的位置进行置换,得到所述预设格式的所述数据加载命令,其中,所述待迁移数据槽的数据以序列化的二进制流的形式存在在所述数据加载命令中。
2.根据权利要求1所述的方法,其特征在于,通过所述子线程将所述待迁移数据槽的数据和所述待迁移数据槽的数据的长度写入所述第一内存,包括:
通过所述子线程若确定所述待迁移数据槽的数据的长度大于预设阈值,则将所述待迁移数据槽的数据进行压缩,得到压缩后的待迁移数据槽的数据和压缩后的待迁移数据槽的数据的长度;
通过所述子线程将所述压缩后的待迁移数据槽的数据和压缩后的待迁移数据槽的数据的长度写入所述第一内存。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
若接收到所述目标节点发送的用于指示数据迁移成功的指示信息,向所述元服务器发送用于指示所述待迁移数据槽的数据迁移成功的指示信息,用于所述元服务器将所述待迁移节点中所述待迁移数据槽的状态设置为不可用状态,并将所述目标节点中所述待迁移数据槽的状态设置为可用状态。
4.一种数据迁移方法,其特征在于,所述方法应用于目标节点,所述方法包括:
接收待迁移节点通过子线程发送的数据加载命令,所述数据加载命令为所述待迁移节点通过所述待迁移节点的子线程,将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换得到,所述待迁移节点设置主线程和子线程,所述子线程作为一个常驻线程启动;
解析所述数据加载命令,将解析得到的待迁移数据槽的数据加载到所述目标节点的内存中;
加载数据成功后向所述待迁移节点发送用于指示数据迁移成功或者失败的指示信息;
其中,所述解析所述数据加载命令,将解析得到的待迁移数据槽的数据加载到所述目标节点的内存中,包括:
按照所述数据加载命令的预设格式从所述数据加载命令中确定所述待迁移数据槽的数据的位置,所述待迁移数据槽的数据以序列化的二进制流的形式存在在所述数据加载命令中;
对所述待迁移数据槽的数据进行反序列化,得到每条二进制流对应的键-值;
将所述每条二进制流对应的键-值加载到所述目标节点的内存中。
5.根据权利要求4所述的方法,其特征在于,所述对所述待迁移数据槽的数据进行反序列化,得到每条二进制流对应的键-值,包括:
对所述待迁移数据槽的数据进行解压,得到解压后的数据;
对所述解压后的数据进行反序列化,得到每条二进制流对应的键-值。
6.一种数据迁移装置,其特征在于,包括:
接收模块,用于接收元服务器发送的数据槽迁移命令,所述数据槽迁移命令携带待迁移数据槽的标识和目标节点的标识;
发送模块,用于将待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换为数据加载命令并发送至所述目标节点,以使所述目标节点解析所述数据加载命令并将解析得到的所述待迁移数据槽的数据加载到所述目标节点的内存中,所述待迁移节点设置主线程和子线程,所述子线程作为一个常驻线程启动;
所述接收模块还用于:接收所述目标节点发送的用于指示数据迁移成功或者失败的指示信息;
其中,发送模块具体用于:
通过所述主线程向所述子线程发送迁移信号,并设置所述待迁移数据槽的写请求状态为不可访问状态;
通过所述子线程从所述待迁移节点预分配第一内存,将包括所述待迁移数据槽的标识的命令前缀写入所述第一内存;
通过所述子线程调用数据加载函数,遍历所述待迁移数据槽的内存区域以获取所述待迁移数据槽的数据;
通过所述子线程将所述待迁移数据槽的数据和所述待迁移数据槽的数据的长度写入所述第一内存,得到包括所述命令前缀、所述待迁移数据槽的数据和所述待迁移数据槽的数据的长度的加载命令;
通过所述子线程调用反转函数,对所述加载命令中的所述待迁移数据槽的数据和所述待迁移数据槽的数据的长度的位置进行置换,得到所述预设格式的所述数据加载命令,其中,所述待迁移数据槽的数据以序列化的二进制流的形式存在在所述数据加载命令中;
通过所述子线程将所述数据加载命令发送至所述目标节点。
7.一种数据迁移装置,其特征在于,包括:
接收模块,用于接收待迁移节点发送的数据加载命令,所述数据加载命令为所述待迁移节点将所述待迁移节点中的待迁移数据槽的数据和所述待迁移数据槽的标识按照预设格式转换得到;
处理模块,用于解析所述数据加载命令,将解析得到的待迁移数据槽的数据加载到目标节点的内存中;
发送模块,用于向所述待迁移节点发送用于指示数据迁移成功或者失败的指示信息;
其中,所述处理模块具体用于:
按照所述数据加载命令的预设格式从所述数据加载命令中确定所述待迁移数据槽的数据的位置,所述待迁移数据槽的数据以序列化的二进制流的形式存在在所述数据加载命令中;
对所述待迁移数据槽的数据进行反序列化,得到每条二进制流对应的键-值;
将所述每条二进制流对应的键-值加载到所述目标节点的内存中。
8.一种数据迁移设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-3或4-5任一项所述的数据迁移方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-3或4-5任一项所述的数据迁移方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110795993.6A CN113515502B (zh) | 2021-07-14 | 2021-07-14 | 数据迁移方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110795993.6A CN113515502B (zh) | 2021-07-14 | 2021-07-14 | 数据迁移方法、装置、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113515502A CN113515502A (zh) | 2021-10-19 |
CN113515502B true CN113515502B (zh) | 2023-11-21 |
Family
ID=78067231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110795993.6A Active CN113515502B (zh) | 2021-07-14 | 2021-07-14 | 数据迁移方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113515502B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109117416A (zh) * | 2018-09-27 | 2019-01-01 | 贵州华芯通半导体技术有限公司 | 插槽间的数据迁移或交换的方法和装置以及多处理器系统 |
CN109325016A (zh) * | 2018-09-12 | 2019-02-12 | 杭州朗和科技有限公司 | 数据迁移方法、装置、介质及电子设备 |
CN109407964A (zh) * | 2017-08-18 | 2019-03-01 | 阿里巴巴集团控股有限公司 | 一种数据的迁移方法、装置及设备 |
CN109683826A (zh) * | 2018-12-26 | 2019-04-26 | 北京百度网讯科技有限公司 | 用于分布式存储系统的扩容方法和装置 |
CN111324596A (zh) * | 2020-03-06 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 数据库集群的数据迁移方法、装置及电子设备 |
CN111639061A (zh) * | 2020-05-26 | 2020-09-08 | 深圳壹账通智能科技有限公司 | Redis集群中数据管理方法、装置、介质及电子设备 |
CN112052230A (zh) * | 2020-09-02 | 2020-12-08 | 掌阅科技股份有限公司 | 多机房数据同步方法、计算设备及存储介质 |
CN112100273A (zh) * | 2020-08-12 | 2020-12-18 | 福建天泉教育科技有限公司 | 集群数据扩容的方法、存储介质 |
CN112230853A (zh) * | 2020-10-14 | 2021-01-15 | 深圳前海微众银行股份有限公司 | 存储容量调整方法、装置、设备及存储介质 |
CN112328354A (zh) * | 2019-08-05 | 2021-02-05 | 阿里巴巴集团控股有限公司 | 虚拟机热迁移方法、装置、电子设备及计算机存储介质 |
CN112578997A (zh) * | 2019-09-30 | 2021-03-30 | 华为技术有限公司 | 一种数据迁移方法、系统及相关设备 |
CN112597254A (zh) * | 2020-12-07 | 2021-04-02 | 中国科学院计算技术研究所 | 面向混合dram-nvm主存的联机事务型数据库系统 |
CN113051250A (zh) * | 2021-03-24 | 2021-06-29 | 北京金山云网络技术有限公司 | 数据库集群的扩容方法和装置、电子设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7360217B2 (en) * | 2001-09-28 | 2008-04-15 | Consentry Networks, Inc. | Multi-threaded packet processing engine for stateful packet processing |
-
2021
- 2021-07-14 CN CN202110795993.6A patent/CN113515502B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109407964A (zh) * | 2017-08-18 | 2019-03-01 | 阿里巴巴集团控股有限公司 | 一种数据的迁移方法、装置及设备 |
CN109325016A (zh) * | 2018-09-12 | 2019-02-12 | 杭州朗和科技有限公司 | 数据迁移方法、装置、介质及电子设备 |
CN109117416A (zh) * | 2018-09-27 | 2019-01-01 | 贵州华芯通半导体技术有限公司 | 插槽间的数据迁移或交换的方法和装置以及多处理器系统 |
CN109683826A (zh) * | 2018-12-26 | 2019-04-26 | 北京百度网讯科技有限公司 | 用于分布式存储系统的扩容方法和装置 |
CN112328354A (zh) * | 2019-08-05 | 2021-02-05 | 阿里巴巴集团控股有限公司 | 虚拟机热迁移方法、装置、电子设备及计算机存储介质 |
CN112578997A (zh) * | 2019-09-30 | 2021-03-30 | 华为技术有限公司 | 一种数据迁移方法、系统及相关设备 |
CN111324596A (zh) * | 2020-03-06 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 数据库集群的数据迁移方法、装置及电子设备 |
CN111639061A (zh) * | 2020-05-26 | 2020-09-08 | 深圳壹账通智能科技有限公司 | Redis集群中数据管理方法、装置、介质及电子设备 |
CN112100273A (zh) * | 2020-08-12 | 2020-12-18 | 福建天泉教育科技有限公司 | 集群数据扩容的方法、存储介质 |
CN112052230A (zh) * | 2020-09-02 | 2020-12-08 | 掌阅科技股份有限公司 | 多机房数据同步方法、计算设备及存储介质 |
CN112230853A (zh) * | 2020-10-14 | 2021-01-15 | 深圳前海微众银行股份有限公司 | 存储容量调整方法、装置、设备及存储介质 |
CN112597254A (zh) * | 2020-12-07 | 2021-04-02 | 中国科学院计算技术研究所 | 面向混合dram-nvm主存的联机事务型数据库系统 |
CN113051250A (zh) * | 2021-03-24 | 2021-06-29 | 北京金山云网络技术有限公司 | 数据库集群的扩容方法和装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113515502A (zh) | 2021-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111756811B (zh) | 一种分布式系统的主动推送的方法、系统、设备及介质 | |
US10805363B2 (en) | Method, device and system for pushing file | |
CN107391629B (zh) | 集群间数据迁移方法、系统、服务器及计算机存储介质 | |
US9934242B2 (en) | Replication of data between mirrored data sites | |
CN109325016B (zh) | 数据迁移方法、装置、介质及电子设备 | |
CN105260376A (zh) | 用于集群节点缩扩的方法、设备和系统 | |
US11210003B2 (en) | Method, device and computer program product for restoring data based on replacing child node identifiers with parent node identifier | |
CN111049928A (zh) | 数据同步方法、系统、电子设备及计算机可读存储介质 | |
CN115270033A (zh) | 一种数据访问系统、方法、设备以及网卡 | |
CN113411363A (zh) | 一种镜像文件的上传方法、相关设备及计算机存储介质 | |
CN113515502B (zh) | 数据迁移方法、装置、设备以及存储介质 | |
US10083121B2 (en) | Storage system and storage method | |
CN113535068A (zh) | 数据读取方法和系统 | |
US11307912B1 (en) | Forward message compatibility safety in producer-consumer systems | |
CN112131201B (zh) | 一种网络附加存储高可用性的方法、系统、设备及介质 | |
CN113742050B (zh) | 操作数据对象的方法、装置、计算设备和存储介质 | |
WO2024066904A1 (zh) | 一种容器创建方法、系统及节点 | |
CN111797062B (zh) | 数据处理方法、装置和分布式数据库系统 | |
CN113254415B (zh) | 一种分布式文件系统读请求处理方法及装置 | |
CN113641343B (zh) | 基于环境隔离的高并发python算法调用方法及介质 | |
WO2024041140A1 (zh) | 数据处理方法、加速器及计算设备 | |
CN117827772A (zh) | 对象存储文件数据以及元数据的分离存储方法及装置 | |
CN114579154A (zh) | 一种软件加载的方法和装置及设备 | |
CN113407508A (zh) | 一种日志文件压缩的方法、系统、设备及介质 | |
CN116737684A (zh) | 一种hdfs短路写的加速方法 |
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 |