CN115639953A - 数据迁移方法和装置 - Google Patents
数据迁移方法和装置 Download PDFInfo
- Publication number
- CN115639953A CN115639953A CN202210911723.1A CN202210911723A CN115639953A CN 115639953 A CN115639953 A CN 115639953A CN 202210911723 A CN202210911723 A CN 202210911723A CN 115639953 A CN115639953 A CN 115639953A
- Authority
- CN
- China
- Prior art keywords
- data
- lock
- destination
- writing
- write
- 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.)
- Pending
Links
- 238000013508 migration Methods 0.000 title claims abstract description 122
- 230000005012 migration Effects 0.000 title claims abstract description 122
- 238000000034 method Methods 0.000 title claims abstract description 80
- 230000004044 response Effects 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 18
- 230000015654 memory Effects 0.000 claims description 17
- 238000012795 verification Methods 0.000 claims description 8
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 230000009977 dual effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了数据迁移方法和装置,涉及计算机技术领域。该方法包括:将新数据的读写地址从数据源端切换至数据目的端;开启双端读取操作,从数据源端以及数据目的端读取新数据,响应于当前数据迁移状态属于第一状态,将新数据基于串行化写入方式写入数据目的端;在预设时长后关闭串行化写入方式,将新数据写入数据目的端;将数据源端的存量数据迁移至数据目的端,采用该方法可以提高数据迁移的可靠性。
Description
技术领域
本公开涉及计算机技术领域,具体涉及数据迁移方法和装置。
背景技术
云计算是一种计算服务,作为云上存储服务提供方,其存储系统在不断开发升级或者更新换代。在新旧存储系统进行切换时,数据读写服务的可靠性至关重要。现有的在新旧存储系统切换时,数据迁移的方法是将存量数据从旧存储系统迁移到新存储系统,并将对新生成的数据读写操作从新存储系统镜像回源至就存储系统,以实现新旧系统切换过程中的数据读写服务的连续性。
然而,现有的数据迁移方法存在可靠性差的问题。
发明内容
本公开提供了一种数据迁移方法、装置、电子设备以及计算机可读存储介质。
根据本公开的第一方面,提供了一种数据迁移方法,包括:将新数据的读写地址从数据源端切换至数据目的端,其中,新数据是指数据生成端在数据迁移过程中生成的数据;开启双端读取操作,从数据源端以及数据目的端读取新数据;响应于当前数据迁移状态属于第一状态,将新数据基于串行化写入方式写入数据目的端;在预设时长后关闭串行化写入方式,将新数据写入数据目的端;将数据源端的存量数据迁移至数据目的端。
在一些实施例中,从数据源端以及数据目的端读取新数据,包括:优先从数据目的端读取新数据;响应于从数据目的端未读取到新数据,从数据源端读取新数据。
在一些实施例中,响应于当前数据迁移状态属于第一状态,将新数据基于串行化写入方式写入数据目的端,包括:响应于确定存在第一锁,判断第一锁是否有效,其中,第一锁用于锁定数据写入权限;响应于确定第一锁有效,基于第一锁将新数据基于串行化写入方式写入数据目的端。
在一些实施例中,数据迁移方法还包括:响应于当前数据迁移状态属于第二状态,将新数据基于串行化写入方式写入数据源端。
在一些实施例中,响应于当前数据迁移状态属于第二状态,将新数据基于串行化写入方式写入数据源端,包括:响应于确定存在第二锁,判断第二锁是否有效,其中,第二锁用于锁定数据写入权限;响应于确定第二锁有效,基于第一锁将新数据基于串行化写入方式写入数据源端。
在一些实施例中,在开启双端读取操作之前,方法还包括:对将新数据的读写地址从数据源端切换至数据目的端的切换操作进行验证;响应于确定验证通过,为切换操作分配后端存储集群,其中,后端存储集群包括数据源端或者数据目的端。
在一些实施例中,数据迁移方法还包括:关闭双端读取操作,从数据目的端读取新数据。
根据本公开的第二方面,提供了一种数据迁移装置,包括:切换单元,被配置为将新数据的读写地址从数据源端切换至数据目的端,其中,新数据是指数据生成端在数据迁移过程中生成的数据;双端读取单元,被配置为开启双端读取操作,从数据源端以及数据目的端读取新数据;第一写入单元,被配置为响应于当前数据迁移状态属于第一状态,将新数据基于串行化写入方式写入数据目的端;第二写入单元,被配置为在预设时长后关闭串行化写入方式,将新数据写入数据目的端;数据迁移单元,被配置为将数据源端的存量数据迁移至数据目的端。
在一些实施例中,双端读取单元,包括:第一读取模块,被配置为优先从数据目的端读取新数据;第二读取模块,被配置为响应于从数据目的端未读取到新数据,从数据源端读取新数据。
在一些实施例中,第一写入单元,包括:第一判断模块,被配置为响应于确定存在第一锁,判断第一锁是否有效,其中,第一锁用于锁定数据写入权限;第一写入模块,被配置为响应于确定第一锁有效,基于第一锁将新数据基于串行化写入方式写入数据目的端。
在一些实施例中,数据迁移装置还包括:第三写入单元,被配置为响应于当前数据迁移状态属于第二状态,将新数据基于串行化写入方式写入数据源端。
在一些实施例中,第三写入单元,包括:第二判断模块,被配置为响应于确定存在第二锁,判断第二锁是否有效,其中,第二锁用于锁定数据写入权限;第二写入模块,被配置为响应于确定第二锁有效,基于第一锁将新数据基于串行化写入方式写入数据源端。
在一些实施例中,在开启双端读取操作之前,装置还包括:对将新数据的读写地址从数据源端切换至数据目的端的切换操作进行验证;响应于确定验证通过,为切换操作分配后端存储集群,其中,后端存储集群包括数据源端或者数据目的端。
在一些实施例中,数据迁移装置还包括:关闭单元,被配置为关闭双端读取操作,从数据目的端读取新数据。
根据本公开的第三方面,本公开的实施例提供了一种电子设备,包括:一个或多个处理器:存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面提供的数据迁移方法或者实现如第二方面提供的用于预测信息的方法。
根据本公开的第四方面,本公开的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其中,程序被处理器执行时实现如第一方面提供的数据迁移方法或者实现如第二方面提供的用于预测信息的方法。
本公开提供的数据迁移方法、装置,包括:将新数据的读写地址从数据源端切换至数据目的端;开启双端读取操作,从数据源端以及数据目的端读取新数据,响应于当前数据迁移状态属于第一状态,将新数据基于串行化写入方式写入数据目的端;在预设时长后关闭串行化写入方式,将新数据写入数据目的端;将数据源端的存量数据迁移至数据目的端,该方案能够应用于大规模的异构存储系统间的数据热迁移场景,可以避免数据迁移周期长尾问题和数据一致性问题,提高数据迁移服务可用性、性能及数据可靠性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请的实施例可以应用于其中的示例性系统架构图;
图2是根据本申请的数据迁移方法的一个实施例的流程图;
图3是根据本申请的数据迁移方法的另一个实施例的流程图;
图4是根据本申请的数据迁移方法中一个应用场景的流程图;
图5是根据本申请的数据迁移方法中一个应用场景的另一个流程图;
图6是根据本申请的数据迁移方法中一个应用场景中数据写入的流程示意图;
图7是根据本申请的数据迁移装置的一个实施例的结构示意图;
图8是用来实现本申请实施例的数据迁移方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1示出了可以应用本申请的数据迁移方法或数据迁移装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103可以是用户终端设备,其上可以安装有各种客户端应用,例如,数据迁移类软件、数据维护类应用、图像类应用、视频类应用、搜索类应用、金融类应用等。
终端设备101、102、103可以是具有显示屏并且支持接收服务器消息的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、电子播放器、膝上型便携计算机和台式计算机等等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是各种电子设备,当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以将新数据的读写地址从数据源端切换至数据目的端,其中,新数据是指数据生成端在数据迁移过程中生成的数据;开启双端读取操作,从数据源端以及数据目的端读取新数据;响应于当前数据迁移状态属于第一状态,将新数据基于串行化写入方式写入数据目的端;在预设时长后关闭串行化写入方式,将新数据写入数据目的端;将数据源端的存量数据迁移至数据目的端。
需要说明的是,本公开的实施例所提供的数据迁移方法可以由服务器105执行,相应地,数据迁移装置可以设置于服务器105中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本公开的数据迁移方法的一个实施例的流程200,包括以下步骤:
步骤201,将新数据的读写地址从数据源端切换至数据目的端,其中,新数据是指数据生成端在数据迁移过程中生成的数据。
在本实施例中,数据迁移方法的执行主体(例如图1所示的服务器)可以将新数据的读写地址从数据源端切换为数据目的端。其中,新数据是指数据生成端在存储端切换过程/阶段中所新生成的、待写入数据存储端的数据。数据源端是指数据迁移前的数据存储端,数据目的端是指数据待被迁移至的、新的数据存储端。
步骤202,开启双端读取操作,从数据源端以及数据目的端读取新数据。
在本实施例中,可以开启双端读取操作,以在数据热迁移的过程中,可以从数据源端以及数据目的端读取新数据。该步骤并没有改变写数据的流程/操作,只是将读数据的流程更新为双读。
步骤203,响应于当前数据迁移状态属于第一状态,将新数据基于串行化写入方式写入数据目的端。
在本实施例中,若当前数据迁移状态属于存储端切换(即,将新数据的读写地址从数据源端切换至数据目的端的切换)阶段的第一状态阶段,可以将新数据基于串行化写入的方式写入数据目的端,
步骤204,在预设时长后关闭串行化写入方式,将新数据写入数据目的端。
在本实施例中,可以在将数据的写入操作切换至数据目的端的预设时长后,关闭数据目的端的串行化写入方式,将新数据以系统写入数据的默认方式或者常规方式(如,并行写入方式等)写入数据目的端。
步骤205,将数据源端的存量数据迁移至数据目的端。
在本实施例中,在将新数据的读写操作均从数据源端切换至数据目的端之后,可以将数据源端的存量数据迁移至数据目的端,以完成全部数据(存量数据以及新数据/增量数据)的迁移。
本实施例提供的数据迁移的方法,将新数据的读写地址从数据源端切换至数据目的端;开启双端读取操作,从数据源端以及数据目的端读取新数据,响应于当前数据迁移状态属于第一状态,将新数据基于串行化写入方式写入数据目的端;在预设时长后关闭串行化写入方式,将新数据写入数据目的端;将数据源端的存量数据迁移至数据目的端,该方案能够应用于大规模的异构存储系统间的数据热迁移场景,可以避免数据迁移周期长尾问题和数据一致性问题,提高数据迁移服务可用性、性能及数据可靠性。
可选地,从数据源端以及数据目的端读取新数据,包括:优先从数据目的端读取新数据;响应于从数据目的端未读取到新数据,从数据源端读取新数据。
在本实施例中,在进行双端读取操作时,可以优先从数据目的端读取新数据,若从数据目的端未读取到新数据,再从数据源端读取新数据。由于在异构存储系统中,数据的最后修改时间(LastModified)是不可信的,例如,用户覆盖上传了一个数据到目的集群中,但是目的集群的系统时间可能由于某种原因相比于源集群滞后,如果用数据的最后更新时间来确定返回源端或者目的端哪边的数据,那么会出现更新后读不到可靠数据的问题,因此,确定优先从数据目的端读取新数据可以确保数据读取的一致性。
可选地,响应于当前数据迁移状态属于第一状态,将新数据基于串行化写入方式写入数据目的端,包括:响应于确定存在第一锁,判断第一锁是否有效,其中第一锁用于锁定数据写入权限;响应于确定第一锁有效,基于第一锁将新数据基于串行化写入方式写入数据目的端。
在本实施例中,若确定存在第一锁,判断该第一锁是否有效,并在确定第一锁有效(如第一锁租约在有效期内、或者第一锁处于激活状态)的情况下,将新数据基于串行化写入方式写入数据目的端。
本实施例基于状态锁进行数据的写入操作,可以提高系统的安全性以及便于维护系统的操作顺序。
继续参考图3,示出了根据本公开的数据迁移方法的另一个实施例的流程300,包括以下步骤:
步骤301,将新数据的读写地址从数据源端切换至数据目的端。
步骤302,开启双端读取操作,从数据源端以及数据目的端读取新数据,其中,新数据是指数据生成端在数据迁移过程中生成的数据。
步骤303,响应于当前数据迁移状态属于第二状态,将新数据基于串行化写入方式写入数据源端。
在本实施例中,若当前数据迁移状态属于存储端切换(即,将新数据的读写地址从数据源端切换至数据目的端的切换)阶段的第二状态,将新数据基于串行化写入方式写入数据源端。第一状态与第二状态属于不同的数据存储切换状态,切换状态处于第一状态或者第二状态可以基于数据迁移技术人员的指示。
步骤304,响应于当前数据迁移状态属于第一状态,将新数据基于串行化写入方式写入数据目的端。
步骤305,在预设时长后关闭串行化写入方式,将新数据写入数据目的端。
步骤306,将数据源端的存量数据迁移至数据目的端。
本实施例中对步骤301、步骤302、步骤304、步骤305、步骤306的描述与步骤201、步骤202、步骤203、步骤204、步骤205的描述一致,此处不再赘述。
本实施例提供的数据迁移方法,相比于图2描述的实施例,在数据迁移的不同阶段,采用不同的写入端,以分阶段进行数据迁移操作,可以提高数据迁移服务的可靠性。
可选地,响应于当前数据迁移状态属于第二状态,将新数据基于串行化写入方式写入数据源端,包括:响应于确定存在第二锁,判断第二锁是否有效,其中,第二锁用于锁定数据写入权限;响应于确定第二锁有效,基于第一锁将新数据基于串行化写入方式写入数据源端。
在本实施例中,若确定存在第二锁,判断该第二锁是否有效,并在确定第二锁有效(如第二锁租约在有效期内、或者第二锁处于激活状态)的情况下,将新数据基于串行化写入方式写入数据源端。
本实施例基于状态锁进行数据的写入操作,可以提高系统的安全性以及便于维护系统的操作顺序。
在上述结合图2和图3描述的实施例的一些可选的实现方式中,查在开启双端读取操作之前,数据迁移方法还包括:对将新数据的读写地址从数据源端切换至数据目的端的切换操作进行验证;响应于确定验证通过,为切换操作分配后端存储集群,其中,后端存储集群包括数据源端或者数据目的端。
在本实施例中,在开启双端读取操作之前,数据迁移方法还包括对将新数据的读写地址从数据源端切换至数据目的端的切换操作进行验证操作,以验证数据迁移操作/请求是否合法或者是否经过授权。若确定验证通过,则为切换操作分配后端存储集群。
在上述结合图2和图3描述的实施例的一些可选的实现方式中,数据迁移方法还包括:关闭双端读取操作,从数据目的端读取新数据。
在本实施例中,在将新数据的写入操作迁移至数据目的端后,可以关闭双端读取操作,仅从数据目的端读取新的数据。
在一些应用场景中,可以基于代理服务实现数据迁移,代理服务可以位于源端存储集群(数据源端)的网关之下,与源端存储集群、目的端存储集群(数据目的端)处于同一层级。在执行数据迁移时,通过调整网关的转发规则,将用户的流量切入到代理服务,代理服务完成请求预处理后,根据迁移阶段,动态的进行读写流量调度。
如图4所示,迁移代理服务主要由预处理模块、协议适配模块和路由转发模块构成。其中,预处理模块执行请求上下文初始化,对数据迁移请求进行鉴定(认证/授权),以及审计日志输出;协议适配模块用于将请求派发给代理层对应的API(ApplicationProgramming Interface,应用程序编程接口);路由转发模块根据当前阶段所处的迁移进度,动态的将不同的迁移任务路由到相应的后端存储集群(数据源端/数据目的端)。
如图5所示,代理服务实现的数据迁移过程由以下阶段构成,迁移过程中,实施人员根据用户的迁移进度动态调整其在代理服务中的迁移状态,从而进行读写流量的路由,整个迁移过程既保证存储服务的可用性,也保证数据的一致性,并且用户侧对整个迁移过程无感知:
读数据源端以及写数据源端:对用户进行代理接入时需要更改源端集群网关的转发规则,例如,以Nginx(一种高性能的超文本传输协议和反向代理万维网服务器)为例,更改转发规则需要修改Nginx配置文件,调整upstream(后端服务器)属性,并执行Nginx的重新加载指令。由于Nginx可能多实例部署,所以对于用户的流量可能部分流量被调度到代理服务,部分流量仍在源端存储集群,因此被调度到代理服务的流量先设置为读和写均路由到源端存储集群,使代理服务实现一层透明传输,避免数据一致性上的风险。
双端读取数据以及写数据源端:当源端集群网关完成对用户的流量重定向配置后,将该用户的流量状态变更为双端读取数据以及写数据源端,该步骤未改变写数据的目的地,仅将读数据变更为双读,避免出现写后读不到数据的线性一致性问题。在双端读取数据的操作中,优先读取目的集群,如果数据存在,则返回,否则读取源集群并直接返回最终结果(数据存在或数据未找到)。由于在异构存储系统中,数据的最后修改时间(LastModified)是不可信的,例如,用户覆盖上传了一个数据到目的集群中,但是目的集群的系统时间可能由于某种原因相比于源集群落后,如果用数据的最后更新时间来确定返回哪边的数据,则会出现更新后读不到数据的可靠性问题,故优先读目的集群,而并非两端同时读取。
双端读取数据以及基于串行化写入方式写数据源端:开启串行化写入,如图6所示,在写数据之前,先获取资源锁再写入。第一锁是优先级锁,当数据迁移阶段处于“双端读取数据以及基于串行化写入方式写数据源端”阶段时,可称之为左锁(第二锁);当数据迁移阶段处于“双端读取数据以及基于串行化写入方式写数据目的端”阶段时,称之为右锁(第一锁),且左锁优先级小于右锁,具体步骤为:
若当数据迁移阶段处于“双端读取数据以及基于串行化写入方式写数据源端”,则获取要写入资源的左锁,若当前不存在锁,或者存在左锁且租约已过期,则获取左锁并将数据写入源端。若当前左锁租约未过期或者存在右锁,则本次请求失败。
若当数据迁移阶段处于“双端读取数据以及基于串行化写入方式写数据目的端”,则获取要写入资源的右锁,若当前不存在未释放的右锁,则获取锁并将数据写入目的端。
双端读取数据以及写数据目的端:完成写入数据的切换后,在预设时长后,等待所有的代理服务实例就绪(切换过程中有一些进行中的数据请求还未完成),可以将串行化关闭,此时关闭串行化写入是安全的,因为所有节点都是向目的集群写,在单系统内数据的线性一致性可以得到保证。
上步骤完成之后,用户的增量写入(迁移过程中新生成的新数据)已经安全的迁移到了目的集群,此时可以进行存量数据的迁移,由于目的集群的数据能够确定是最新的,所以只需要迁移目的端集群中不存在的数据即可。
在将用户的存量数据和增量写均已切换到目的集群后,此时,可以关闭双读,以将读和写都切换到目的集群,至此整个数据迁移过程完成,代理服务完成任务。
该方法能可以应用于大规模的异构存储系统间的数据热迁移场景,解决迁移周期长尾问题和数据一致性问题,确保服务可用性、性能及数据可靠性。
进一步参考图7,作为对上述各图所示方法的实现,本公开提供了一种数据迁移装置的一个实施例,该装置实施例与图2和图3所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图7所示,本实施例的数据迁移装置,包括:切换单元701、双端读取单元702、第一写入单元703、第二写入单元704、数据迁移单元705。其中,切换单元,被配置为将新数据的读写地址从数据源端切换至数据目的端,其中,新数据是指数据生成端在数据迁移过程中生成的数据;双端读取单元,被配置为开启双端读取操作,从数据源端以及数据目的端读取新数据;第一写入单元,被配置为响应于当前数据迁移状态属于第一状态,将新数据基于串行化写入方式写入数据目的端;第二写入单元,被配置为在预设时长后关闭串行化写入方式,将新数据写入数据目的端;数据迁移单元,被配置为将数据源端的存量数据迁移至数据目的端。
在一些实施例中,双端读取单元,包括:第一读取模块,被配置为优先从数据目的端读取新数据;第二读取模块,被配置为响应于从数据目的端未读取到新数据,从数据源端读取新数据。
在一些实施例中,第一写入单元,包括:第一判断模块,被配置为响应于确定存在第一锁,判断第一锁是否有效,其中,第一锁用于锁定数据写入权限;第一写入模块,被配置为响应于确定第一锁有效,基于第一锁将新数据基于串行化写入方式写入数据目的端。
在一些实施例中,数据迁移装置还包括:第三写入单元,被配置为响应于当前数据迁移状态属于第二状态,将新数据基于串行化写入方式写入数据源端。
在一些实施例中,第三写入单元,包括:第二判断模块,被配置为响应于确定存在第二锁,判断第二锁是否有效,其中,第二锁用于锁定数据写入权限;第二写入模块,被配置为响应于确定第二锁有效,基于第一锁将新数据基于串行化写入方式写入数据源端。
在一些实施例中,在开启双端读取操作之前,装置还包括:对将新数据的读写地址从数据源端切换至数据目的端的切换操作进行验证;响应于确定验证通过,为切换操作分配后端存储集群,其中,后端存储集群包括数据源端或者数据目的端。
在一些实施例中,数据迁移装置还包括:关闭单元,被配置为关闭双端读取操作,从数据目的端读取新数据。
上述装置700中的各单元与参考图2、图3描述的方法中的步骤相对应。由此上文针对数据迁移方法描述的操作、特征及所能达到的技术效果同样适用于装置700及其中包含的单元,在此不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图8所示,是根据本申请实施例的数据迁移方法的电子设备800的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图8所示,该电子设备包括:一个或多个处理器801、存储器802,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图8中以一个处理器801为例。
存储器802即为本申请所提供的非瞬时计算机可读存储介质。其中,该存储器存储有可由至少一个处理器执行的指令,以使该至少一个处理器执行本申请所提供的数据迁移方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的数据迁移方法。
存储器802作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的数据迁移方法对应的程序指令/模块(例如,附图7所示的切换单元701、双端读取单元702、第一写入单元703、第二写入单元704、数据迁移单元705)。处理器801通过运行存储在存储器802中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的数据迁移方法。
存储器802可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用于提取视频片段的电子设备的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器802可选包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至用于提取视频片段的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
数据迁移方法的电子设备还可以包括:输入装置803、输出装置804以及总线805。处理器801、存储器802、输入装置803和输出装置804可以通过总线805或者其他方式连接,图8中以通过总线805连接为例。
输入装置803可接收输入的数字或字符信息,以及产生与用于提取视频片段的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置804可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (16)
1.一种数据迁移方法,包括:
将新数据的读写地址从数据源端切换至数据目的端,其中,所述新数据是指数据生成端在数据迁移过程中生成的数据;
开启双端读取操作,从所述数据源端以及所述数据目的端读取所述新数据;
响应于当前数据迁移状态属于第一状态,将所述新数据基于串行化写入方式写入所述数据目的端;
在预设时长后关闭串行化写入方式,将所述新数据写入所述数据目的端;
将所述数据源端的存量数据迁移至所述数据目的端。
2.根据权利要求1所述的方法,其中,所述从所述数据源端以及所述数据目的端读取所述新数据,包括:
优先从所述数据目的端读取所述新数据;
响应于从所述数据目的端未读取到所述新数据,从所述数据源端读取所述新数据。
3.根据权利要求1所述的方法,其中,所述响应于当前数据迁移状态属于第一状态,将所述新数据基于串行化写入方式写入所述数据目的端,包括:
响应于确定存在第一锁,判断所述第一锁是否有效,其中,所述第一锁用于锁定数据写入权限;
响应于确定所述第一锁有效,基于所述第一锁将所述新数据基于串行化写入方式写入所述数据目的端。
4.根据权利要求1所述的方法,其中,所述方法还包括:
响应于当前数据迁移状态属于第二状态,将所述新数据基于串行化写入方式写入所述数据源端。
5.根据权利要求4所述的方法,其中,所述响应于当前数据迁移状态属于第二状态,将所述新数据基于串行化写入方式写入所述数据源端,包括:
响应于确定存在第二锁,判断所述第二锁是否有效,其中,所述第二锁用于锁定数据写入权限;
响应于确定所述第二锁有效,基于所述第一锁将所述新数据基于串行化写入方式写入所述数据源端。
6.根据权利要求1-5之一所述的方法,其中,在开启双端读取操作之前,所述方法还包括:
对将新数据的读写地址从数据源端切换至数据目的端的切换操作进行验证;
响应于确定验证通过,为所述切换操作分配后端存储集群,其中,所述后端存储集群包括数据源端或者数据目的端。
7.根据权利要求1-5之一所述的方法,其中,在将所述数据源端的存量数据迁移至所述数据目的端之后,所述方法还包括:
关闭双端读取操作,从所述数据目的端读取所述新数据。
8.一种数据迁移装置,包括:
切换单元,被配置为将新数据的读写地址从数据源端切换至数据目的端,其中,所述新数据是指数据生成端在数据迁移过程中生成的数据;
双端读取单元,被配置为开启双端读取操作,从所述数据源端以及所述数据目的端读取所述新数据;
第一写入单元,被配置为响应于当前数据迁移状态属于第一状态,将所述新数据基于串行化写入方式写入所述数据目的端;
第二写入单元,被配置为在预设时长后关闭串行化写入方式,将所述新数据写入所述数据目的端;
数据迁移单元,被配置为将所述数据源端的存量数据迁移至所述数据目的端。
9.根据权利要求8所述的装置,其中,所述双端读取单元,包括:
第一读取模块,被配置为优先从所述数据目的端读取所述新数据;
第二读取模块,被配置为响应于从所述数据目的端未读取到所述新数据,从所述数据源端读取所述新数据。
10.根据权利要求8所述的装置,其中,所述第一写入单元,包括:
第一判断模块,被配置为响应于确定存在第一锁,判断所述第一锁是否有效,其中,所述第一锁用于锁定数据写入权限;
第一写入模块,被配置为响应于确定所述第一锁有效,基于所述第一锁将所述新数据基于串行化写入方式写入所述数据目的端。
11.根据权利要求8所述的装置,其中,所述装置还包括:
第三写入单元,被配置为响应于当前数据迁移状态属于第二状态,将所述新数据基于串行化写入方式写入所述数据源端。
12.根据权利要求11所述的装置,其中,所述第三写入单元,包括:
第二判断模块,被配置为响应于确定存在第二锁,判断所述第二锁是否有效,其中,所述第二锁用于锁定数据写入权限;
第二写入模块,被配置为响应于确定所述第二锁有效,基于所述第一锁将所述新数据基于串行化写入方式写入所述数据源端。
13.根据权利要求8-12之一所述的装置,其中,在开启双端读取操作之前,所述装置还包括:
对将新数据的读写地址从数据源端切换至数据目的端的切换操作进行验证;
响应于确定验证通过,为所述切换操作分配后端存储集群,其中,所述后端存储集群包括数据源端或者数据目的端。
14.根据权利要求8-12之一所述的装置,其中,所述装置还包括:
关闭单元,被配置为关闭双端读取操作,从所述数据目的端读取所述新数据。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210911723.1A CN115639953A (zh) | 2022-07-29 | 2022-07-29 | 数据迁移方法和装置 |
PCT/CN2023/074115 WO2024021554A1 (zh) | 2022-07-29 | 2023-02-01 | 数据迁移方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210911723.1A CN115639953A (zh) | 2022-07-29 | 2022-07-29 | 数据迁移方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115639953A true CN115639953A (zh) | 2023-01-24 |
Family
ID=84940831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210911723.1A Pending CN115639953A (zh) | 2022-07-29 | 2022-07-29 | 数据迁移方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115639953A (zh) |
WO (1) | WO2024021554A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024021554A1 (zh) * | 2022-07-29 | 2024-02-01 | 京东科技信息技术有限公司 | 数据迁移方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006146476A (ja) * | 2004-11-18 | 2006-06-08 | Hitachi Ltd | ストレージシステム及びストレージシステムのデータ移行方法 |
CN105718570B (zh) * | 2016-01-20 | 2019-12-31 | 北京京东尚科信息技术有限公司 | 用于数据库的数据迁移方法和装置 |
US10275177B2 (en) * | 2016-10-31 | 2019-04-30 | Oracle International Corporation | Data layout schemas for seamless data migration |
US11144517B2 (en) * | 2019-06-28 | 2021-10-12 | Paypal, Inc. | Data store transition using a data migration server |
CN114327745B (zh) * | 2021-11-25 | 2022-10-25 | 北京志凌海纳科技有限公司 | 一种跨主机虚拟机存储热迁移的方法及系统 |
CN115639953A (zh) * | 2022-07-29 | 2023-01-24 | 京东科技信息技术有限公司 | 数据迁移方法和装置 |
-
2022
- 2022-07-29 CN CN202210911723.1A patent/CN115639953A/zh active Pending
-
2023
- 2023-02-01 WO PCT/CN2023/074115 patent/WO2024021554A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024021554A1 (zh) * | 2022-07-29 | 2024-02-01 | 京东科技信息技术有限公司 | 数据迁移方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2024021554A1 (zh) | 2024-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10027777B2 (en) | Web page pre-loading optimization | |
US20180095840A1 (en) | Reducing recovery time in disaster recovery/replication setup with multitier backend storage | |
US9930130B2 (en) | Processing hybrid data using a single web client | |
US10983822B2 (en) | Volume management by virtual machine affiliation auto-detection | |
US20180150331A1 (en) | Computing resource estimation in response to restarting a set of logical partitions | |
US9342388B1 (en) | Dynamic queue alias | |
US11212175B2 (en) | Configuration management for cloud storage system and method | |
US11354150B1 (en) | Utilizing maintenance event windows to determine placement of instances | |
US9590873B2 (en) | Composite service pre-provisioning | |
US10855776B2 (en) | Method and device for managing sessions | |
US9614716B2 (en) | Controller maintenance in a network-attached storage system | |
US20190129743A1 (en) | Method and apparatus for managing virtual machine | |
US12079651B2 (en) | Serverless application function execution | |
WO2024021554A1 (zh) | 数据迁移方法和装置 | |
US9930143B2 (en) | Client system communication with a member of a cluster of server systems | |
US20150331705A1 (en) | Allocating hypervisor resources | |
US10133561B1 (en) | Partial redundancy elimination with a fixed number of temporaries | |
CN111835857B (zh) | 用于访问数据的方法和装置 | |
US11526499B2 (en) | Adaptively updating databases of publish and subscribe systems using optimistic updates | |
US20140089482A1 (en) | Device management for determining the affects of management actions | |
US11558448B1 (en) | Sparse information sharing system | |
CN111258954B (zh) | 数据迁移方法、装置、设备及存储介质 | |
US11340825B1 (en) | Method, device, and computer program product for managing storage system | |
US11086549B2 (en) | Just-in-time data migration in a live system | |
US20210286680A1 (en) | Method, electronic device and computer program product for storage management |
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 |