CN108268501A - 一种在线数据迁移过程中的业务处理方法及装置 - Google Patents

一种在线数据迁移过程中的业务处理方法及装置 Download PDF

Info

Publication number
CN108268501A
CN108268501A CN201611261904.5A CN201611261904A CN108268501A CN 108268501 A CN108268501 A CN 108268501A CN 201611261904 A CN201611261904 A CN 201611261904A CN 108268501 A CN108268501 A CN 108268501A
Authority
CN
China
Prior art keywords
data
business datum
request
state
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.)
Granted
Application number
CN201611261904.5A
Other languages
English (en)
Other versions
CN108268501B (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.)
China Mobile Communications Group Co Ltd
China Mobile Group Beijing Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Group Beijing 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 China Mobile Communications Group Co Ltd, China Mobile Group Beijing Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201611261904.5A priority Critical patent/CN108268501B/zh
Publication of CN108268501A publication Critical patent/CN108268501A/zh
Application granted granted Critical
Publication of CN108268501B publication Critical patent/CN108268501B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及互联网技术领域,尤其涉及一种在线数据迁移过程中的业务处理方法及装置,用以解决现有技术中在进行数据迁移时存在着业务发生中断的问题;本申请实施例提供的业务处理方法包括:针对用户发起的业务流程,生成读请求或写请求;确定业务流程对应的业务数据状态;若业务数据状态为迁移状态,数据处理请求为读请求,则从存储有进行业务数据迁移前的数据的第一业务数据表中读取该读请求对应的数据;若业务数据状态为迁移状态,数据处理请求为写请求,则将该写请求对应的数据写入数据缓存装置中,以便在将第一业务数据表中的数据全部写入第二业务数据表之后,将数据缓存装置中的数据写入第一业务数据表和第二业务数据表中。

Description

一种在线数据迁移过程中的业务处理方法及装置
技术领域
本申请涉及互联网技术领域,尤其涉及一种在线数据迁移过程中的业务处理方法及装置。
背景技术
随着互联网技术的快速发展,出现了各种各样的业务系统,为了满足不断变化的用户需求,业务系统大多需要不断升级,而在升级过程中通常需要进行数据迁移。
现有技术中,在进行数据迁移时,需要暂停业务服务,在数据迁移完成后再重新开放业务服务,虽然在迁移过程中可以采用一些手段来缩短业务的暂停时间,但不能从根本上避免业务发生中断的情况。
可见,现有技术中在进行数据迁移时存在着业务发生中断的问题。
发明内容
本申请实施例提供一种在线数据迁移过程中的业务处理方法及装置,用以解决现有技术中在进行数据迁移时存在着业务发生中断的问题。
本申请实施例提供的一种在线数据迁移过程中的业务处理方法,包括:
针对用户发起的业务流程,生成数据处理请求;其中,该数据处理请求为读请求或写请求;
确定业务流程对应的业务数据状态;
若业务数据状态为迁移状态,数据处理请求为读请求,则从第一业务数据表中读取该读请求对应的数据;其中,第一业务数据表中存储有进行业务数据迁移前的数据;
若业务数据状态为迁移状态,数据处理请求为写请求,则将该写请求对应的数据写入数据缓存装置中,以便在将第一业务数据表中的数据全部写入第二业务数据表之后,将数据缓存装置中的数据写入第一业务数据表和第二业务数据表中。
可选地,所述方法还包括:
若业务数据迁移状态为追写状态,数据处理请求为读请求,追写状态是指处于将数据缓存装置中的数据写入目标业务数据表中的状态,该目标业务数据表包含第一业务数据表和第二业务数据表;则
判断正在向目标业务数据表中写入的数据是否为与该读请求存在冲突的数据,若是,则在将数据缓存装置中与读请求存在冲突的数据全部写入目标业务数据表以后,从目标业务数据表中读取与该读请求对应的数据;
若业务数据迁移状态为追写状态,数据处理请求为写请求,则判断正在向目标业务数据表中写入的数据是否为与该写请求存在冲突的数据,若是,则在将数据缓存装置中与写请求存在冲突的数据全部写入目标业务数据表以后,向目标业务数据表中写入与该写请求对应的数据。
可选地,所述方法还包括:
在业务数据状态进入迁移状态,且用户发起业务流程之后,将第一业务数据表设置为不可更新状态,以防止向第一业务数据表中写入数据;
当业务数据迁移状态由迁移状态进入追写状态后,将第一业务数据表由不可更新状态变更为可更新状态,以便将数据缓存装置中的数据写入第一业务数据表中。
可选地,数据处理请求为读请求,所述方法还包括:
从数据缓存装置中读取读请求对应的数据,将从数据缓存装置中读取的数据与从第一业务数据表中读取的数据进行合并;
将合并后的数据作为读取的完整数据返回,以便根据该合并后的数据执行后续数据写入流程。
可选地,所述方法还包括:
若业务数据状态为非迁移状态,数据处理请求为读请求,则从第一业务数据表中读取与该读请求对应的数据;
若业务数据状态为非迁移状态,数据处理请求为写请求,则将该写请求对应的数据写入第一业务数据表中。
本申请实施例提供的一种在线数据迁移过程中的业务处理装置,包括:
生成模块,用于针对用户发起的业务流程,生成数据处理请求;数据处理请求为读请求或写请求;
确定模块,用于确定业务流程对应的业务数据状态;
读请求处理模块,用于在确定模块确定业务数据状态为迁移状态后,若数据处理请求为读请求,则从第一业务数据表中读取该读请求对应的数据;其中,第一业务数据表中存储有进行业务数据迁移前的数据;
写请求处理模块,用于在确定模块确定业务数据状态为迁移状态后,若数据处理请求为写请求,则将该写请求对应的数据写入数据缓存装置中,以便在将第一业务数据表中的数据全部写入第二业务数据表之后,将数据缓存装置中的数据写入第一业务数据表和第二业务数据表中。
可选地,读请求处理模块还用于:
在确定模块确定业务数据迁移状态为追写状态后,若数据处理请求为读请求,则判断数据缓存装置正在向目标业务数据表中写入的数据是否为与该读请求存在冲突的数据,若是,则在将数据缓存装置中与读请求存在冲突的数据全部写入目标业务数据表以后,从目标业务数据表中读取与该读请求对应的数据;追写状态是指处于将数据缓存装置中的数据写入目标业务数据表中的状态,该目标业务数据表包含第一业务数据表和第二业务数据表;
写请求处理模块还用于:
在确定模块确定业务数据迁移状态为追写状态后,若数据处理请求为写请求,则判断数据缓存装置正在向目标业务数据表中写入的数据是否为与该写请求存在冲突的数据,若是,则在将数据缓存装置中与写请求存在冲突的数据全部写入目标业务数据表以后,向目标业务数据表中写入与该写请求对应的数据。
可选地,确定模块还用于:
在业务数据状态进入迁移状态,且用户发起业务流程之后,将第一业务数据表设置为不可更新状态,以防止向第一业务数据表中写入数据;当业务数据迁移状态由迁移状态进入追写状态后,将第一业务数据表由不可更新状态变更为可更新状态,以便将数据缓存装置中的数据写入第一业务数据表中。
可选地,读请求处理模块还用于:
从数据缓存装置中读取读请求对应的数据,将从数据缓存装置中读取的数据与从第一业务数据表中读取的数据进行合并;将合并后的数据作为读取的完整数据返回,以便根据该合并后的数据执行后续数据写入流程。
可选地,读请求处理模块还用于:
在确定模块确定业务数据状态为非迁移状态后,若数据处理请求为读请求,则从第一业务数据表中读取与该读请求对应的数据;
写请求处理模块还用于:
在确定模块确定业务数据状态为非迁移状态,若数据处理请求为写请求,则将该写请求对应的数据写入第一业务数据表中。
本申请实施例中,针对用户发起的业务流程,生成读请求或写请求,然后,确定业务流程对应的业务数据状态;当业务数据状态为迁移状态时,对于读请求,从第一业务数据表中读取该读请求对应的数据,该第一业务数据表中存储有进行业务数据迁移前的数据;对于写请求,将该写请求对应的数据写入数据缓存装置中。这样,在业务数据进行迁移的过程中,可以正常处理业务流程过程中生成的读请求和写请求,保证业务流程正常进行、不发生中断,并且,在将第一业务数据表中的数据全部写入第二业务数据表之后,还可将数据缓存装置中的数据写入第一业务数据表和第二业务数据表中,从而保证数据迁移的完整性。
附图说明
图1为本申请实施例提供的业务数据处于迁移状态时的业务处理方法流程图;
图2为本申请实施例提供的业务数据处于追写状态时的业务处理方法流程图;
图3为本申请实施例提供的业务数据处于非迁移状态时的业务处理方法流程图;
图4为本申请实施例提供的在线数据迁移装置示意图;
图5为本申请实施例提供的业务数据处于迁移状态时的业务处理流程图;
图6为本申请实施例提供的业务数据处于追写状态时的业务处理流程图;
图7为本申请实施例提供的业务数据处于非迁移状态时的业务处理流程图;
图8为本申请实施例提供的在线数据迁移过程中的业务处理装置结构图。
具体实施方式
本申请实施例中,针对用户发起的业务流程,生成读请求或写请求,然后,确定业务流程对应的业务数据状态;当业务数据状态为迁移状态时,对于读请求,从第一业务数据表中读取该读请求对应的数据,该第一业务数据表中存储有进行业务数据迁移前的数据;对于写请求,将该写请求对应的数据写入数据缓存装置中。这样,在业务数据进行迁移的过程中,可以正常处理业务流程过程中生成的读请求和写请求,保证业务流程正常进行、不发生中断,并且,在将第一业务数据表中的数据全部写入第二业务数据表之后,还可将数据缓存装置中的数据写入第一业务数据表和第二业务数据表中,从而保证数据迁移的完整性。
实施例一
本申请实施例的一个应用场景为在对业务进行升级时,对业务数据进行迁移,其中,数据迁移可以为同构数据迁移,也可以为异构数据迁移;同构数据是指存放在同一数据管理系统,且数据结构相同的数据;异构数据是指存放在不同数据库管理系统中的数据,或存放在同一数据库管理系统中但数据结构不同的数据。在对业务数据进行迁移之前,可以将新、旧业务逻辑开发并上线,同时在业务逻辑中预埋开关,实现在新业务逻辑、旧业务逻辑和新旧业务逻辑之间自由切换。
在具体实施过程中,执行业务流程的过程中会生成读请求或写请求,对该请求或写请求可以确定业务流程对应的业务数据状态,其中,业务数据状态包括迁移状态、追写状态和非迁移状态,对每一种业务数据状态,对读请求和写请求相关的业务处理方法会有所不同,下面结合说明书附图对本申请实施例作进一步详细描述。
如图1所示,为本申请实施例提供的业务数据处于迁移状态时的业务处理方法流程图,包括以下步骤:
S101:针对用户发起的业务流程,生成数据处理请求;该数据处理请求为读请求或写请求。
这里,接收到用户办理业务的请求以后,即可以发起相应的业务流程。在执行业务流程的过程中生成读请求或写请求。
S102:确定业务流程对应的业务数据状态。
可选地,一个业务流程可以对应一个状态位,该状态位用于标识该业务的业务数据状态。比如,状态位为0时,表示业务数据状态为迁移状态,识位为1时,表示业务数据状态为追写状态,状态位为2时,表示业务数据状态为非迁移状态。
在具体实施过程中,业务数据进入迁移状态后,状态位为0;在业务数据处于迁移状态的过程中,若用户发起业务流程,则业务数据的迁移状态结束后进入追写状态,此时,状态位为1;在业务数据处于迁移状态的过程中,若用户未发起业务流程,则业务数据的迁移状态结束后进入非迁移状态,此时,状态位为2。
S103:若业务数据状态为迁移状态,数据处理请求为读请求,则从第一业务数据表中读取与该读请求对应的数据;其中,第一业务数据表中存储有进行业务数据迁移前的数据。
可选地,当确定业务数据状态进入迁移状态,并且用户发起业务流程之后,可以将第一业务数据表设置为不可更新状态,以防止向第一业务数据表中写入数据。
在具体实施过程中,对于一些读请求,从数据缓存装置中读取与读请求对应的数据后,还可以将从数据缓存装置中读取的数据与从第一业务数据表中读取的数据进行合并,进而将合并后的数据作为读取的完整数据返回,以便后续根据合并后的数据执行后续数据写入流程。
比如,某业务场景中对同一个用户可以参加活动的次数有限制,假设为2次。在对业务数据进行迁移之前的业务数据表中已经有一条关于用户A参加了1次活动的记录,在对该业务数据进行迁移的过程中,假设用户A再次发起参加活动的业务流程,则该业务流程会生成数据读请求,从迁移前的业务数据表中读取关于用户A参加活动的次数1,在确定该用户仍然可以参加活动以后,生成写请求,将与用户A参加一次活动的记录相关的数据写入数据缓存装置中。那么,当用户A后续再发起参加活动的业务流程时,除了从迁移前的业务数据表中读取关于用户A参加活动的次数1,还可以从数据缓存装置中读取另一条关于用户A参加活动的次数1,这样,可以保证用户A参加活动的次数满足业务需求,从而避免业务出错。
S104:若业务数据状态为迁移状态,数据处理请求为写请求,则将该写请求对应的数据写入数据缓存装置中,以便在将第一业务数据表中的数据全部写入第二业务数据表之后,将数据缓存装置中的数据写入第一业务数据表和第二业务数据表中。
可选地,数据缓存装置可以为本申请实施例执行主体(如提供业务服务的设备)中的一个数据缓存装置,也可以为独立于执行主体之外独立的数据缓存装置,在此不做限定。
在具体实施过程中,可以预置用来对不同业务数据表变更情况进行记录的数据表,该数据表中可以包括业务数据表的表名/业务数据的文件名,对表或文件的操作方法,如增、删、改、查,字段:值,时间戳等信息。当有写请求时,将与写请求对应的数据按照这些信息对应存储,以便后续进行追写。
如图2所示,为本申请实施例提供的业务数据处于追写状态时的业务处理方法流程图,包括以下步骤:
S201:针对用户发起的业务流程,生成数据处理请求;该数据处理请求为读请求或写请求。
S202:确定业务流程对应的业务数据状态。
S203:若业务数据迁移状态为追写状态,数据处理请求为读请求,则判断数据缓存装置正在向目标业务数据表中写入的数据是否为与该读请求存在冲突的数据,若是,则在将数据缓存装置中与读请求存在冲突的数据全部写入目标业务数据表以后,从目标业务数据表中读取与该读请求对应的数据。
在具体实施过程中,为了使新、旧业务逻辑可以并行,可以将数据缓存装置中的数据写入第一业务数据表和第二业务数据表中,追写状态就是指处于将数据缓存装置中的数据写入第一业务数据表和第二业务数据中的状态,为便于描述,可以将第一业务数据表和第二业务数据表合称为目标业务数据表。
S204:若业务数据迁移状态为追写状态,数据处理请求为写请求,则判断数据缓存装置正在向目标业务数据表中写入的数据是否为与该写请求存在冲突的数据,若是,则在将数据缓存装置中与写请求存在冲突的数据全部写入目标业务数据表以后,向目标业务数据表中写入与该写请求对应的数据。
这里,当确定业务数据迁移状态由迁移状态进入追写状态以后,可以将第一业务数据表由不可更新状态变更为可更新状态,以便将数据缓存装置中的数据写入第一业务数据表中。
如图3所示,为本申请实施例提供的业务数据处于非迁移状态时的业务处理方法流程图,包括以下步骤:
S301:针对用户发起的业务流程,生成数据处理请求;该数据处理请求为读请求或写请求。
S302:确定业务流程对应的业务数据状态。
S303:若业务数据状态为非迁移状态,数据处理请求为读请求,则从第一业务数据表中读取与该读请求对应的数据。
S304:若业务数据状态为非迁移状态,数据处理请求为写请求,则将该写请求对应的数据写入第一业务数据表中。
在具体实施过程中,如果用户在业务数据处于迁移状态时发起业务请求,可以按旧逻辑进行处理;如果用户在业务数据处于追写状态时发起业务请求,可以按旧逻辑进行处理;如果用户在业务数据刚进入非迁移状态时发起业务请求,可以按新、旧逻辑同时进行处理,这样,在用户发起业务流程至流程结束之前,无论业务数据状态是由非迁移状态进入迁移状态,还是由迁移状态进入追写状态,用户当前的业务请求都不会中断,从而达到在业务数据进行迁移的过程中,用户使用业务不中断、用户对业务切换无感知的目的。
本申请实施例中,针对用户发起的业务流程,生成读请求或写请求,然后,确定业务流程对应的业务数据状态;当业务数据状态为迁移状态时,对于读请求,从第一业务数据表中读取该读请求对应的数据,该第一业务数据表中存储有进行业务数据迁移前的数据;对于写请求,将该写请求对应的数据写入数据缓存装置中。这样,在业务数据进行迁移的过程中,可以正常处理业务流程过程中生成的读请求和写请求,保证业务流程正常进行、不发生中断,并且,在将第一业务数据表中的数据全部写入第二业务数据表之后,还可将数据缓存装置中的数据写入第一业务数据表和第二业务数据表中,从而保证数据迁移的完整性。
实施例二
下面结合具体的业务场景对本发明实施例进行详细的说明。
假设某通信运营商举行赠送流量活动,若用户提交的问题答案正确,则可获赠1G流量,并且一个用户可以参加1次活动。其中,业务数据的表结构设计如表A所示。
表A:
手机号码 活动名称 问题答案(文本型)
139XXXX1111 送1G流量 A
139XXXX2222 送1G流量 B
当活动进行了一段时间后,需要将回答问题的方式修改为用户使用推荐码参加活动,则根据业务需求将业务数据的表结构更为如下表A`所示。
表A`:
手机号码 活动名称 推荐码(数字型)
这里,由于业务升级,需要将表A中的问题答案变更为推荐码,字段的含义和数据类型均发生了变化,属于异构数据迁移。下面以此场景为例说明业务数据迁移过程中对业务流程的处理方法。
首先将包含新、旧业务逻辑的进程部署在业务系统上,假设此时业务版本状态标识为V0。并且,在数据缓读写装置中预置用来对不同业务数据表变更情况进行记录的数据表,其数据结构可以如下表C所示。
表C:
操作表名/文件名 操作方法 字段:值 时间戳
其中,操作表名/文件名为读请求或写请求对应的业务数据表名/业务数据文件名;操作方法包括插入、删除、更新;字段:值,为业务数据表中的字段名称+字段值集合;时间戳为执行此次操作的时间。
在具体实施过程中,在业务数据处于迁移状态的过程中,假设用户139XXXX3333发起参加活动的业务流程,生成读请求查询表A,确定该手机号参加活动的次数为0,同时读请求查询表C,确定该手机号参加活动的次数为0,将查询的两个次数相加后的结果0反馈给业务逻辑,在确定该用户可以参加活动后,生成写请求,将写请求对应的数据写入表C,则表C的内容如下:
表C
此外,当业务数据进入迁移状态后,将表A中的数据迁移复制至表A`,则表A`数据内容如下:
表A`:
手机号码 活动名称 推荐码(数字型)
139XXXX1111 送1G流量 NULL
139XXXX2222 送1G流量 NULL
可选地,当业务数据进入迁移状态后,可以在第一次接收到业务流程发起的读请求或者写请求后,将表A设置为不可更新状态,以防止向表A中写入数据。
当表A中的数据全部复制至表A`后,业务数据状态由迁移状态进入追写状态,将表C中缓存的数据分别追加到表A和表A`中,则表A和表A`中的数据分别如下:
表A:
手机号码 活动名称 问题答案(文本型)
139XXXX1111 送1G流量 A
139XXXX2222 送1G流量 B
139XXXX3333 送1G流量 A
表A`:
手机号码 活动名称 推荐码(数字型)
139XXXX1111 送1G流量 NULL
139XXXX2222 送1G流量 NULL
139XXXX3333 送1G流量 NULL
当将表C中的数据追写完以后,业务数据由追写状态进入非迁移状态,此时业务版本状态标识为V1,代表新版业务逻辑。假设此时用户139XXXX4444发起参加活动的业务流程,可以将该用户的业务数据可以写入表A`,则表A`的内容如下:
表A`:
手机号码 活动名称 推荐码(数字型)
139XXXX1111 送1G流量 NULL
139XXXX2222 送1G流量 NULL
139XXXX3333 送1G流量 NULL
139XXXX4444 送1G流量 123456
至此在数据进行迁移的过程中,不用中断业务就可以完成新旧业务逻辑的切换。
本申请实施例中,针对用户发起的业务流程,生成读请求或写请求,然后,确定业务流程对应的业务数据状态;当业务数据状态为迁移状态时,对于读请求,从第一业务数据表中读取该读请求对应的数据,该第一业务数据表中存储有进行业务数据迁移前的数据;对于写请求,将该写请求对应的数据写入数据缓存装置中。这样,在业务数据进行迁移的过程中,可以正常处理业务流程过程中生成的读请求和写请求,保证业务流程正常进行、不发生中断,并且,在将第一业务数据表中的数据全部写入第二业务数据表之后,还可将数据缓存装置中的数据写入第一业务数据表和第二业务数据表中,从而保证数据迁移的完整性。
实施例三
如图4所示,为本申请实施例的在线数据迁移装置40示意图,其中,包括多个业务逻辑控制装置,1个迁移状态控制装置、1个缓存装置,以及多个读装置和写装置。其中,读装置和写装置相互分离。
在具体实施过程中,不同的业务数据状态对应不同的业务处理流程,下面结合图4所示的装置对方法部分的三个业务流程简要进行介绍。
如图5所示,为本申请实施例提供的业务数据处于迁移状态时的业务处理流程图。
5.1:开始对业务数据进行迁移后,迁移状态控制装置将状态位置为迁移。
5.2:迁移状态控制装置通知读装置对相关业务数据进行复制。
5.3:在对业务数据进行复制的过程中,用户通过业务逻辑控制装置发起业务流程。
5.4:业务逻辑控制装置向迁移状态控制装置发送判断当前业务数据状态的请求。
5.5:迁移状态控制装置向业务逻辑控制装置返回迁移状态判断结果。
5.6:业务逻辑控制装置将执行业务流程中生成的读请求发送给缓存装置。
5.7:缓存装置从读装置的第一业务数据表中读取与读请求对应的数据。
这里,第一业务数据表中存储有进行业务数据迁移前的数据。
5.8:读装置向缓存装置返回与读请求对应的数据。
5.9:缓存装置将读装置返回的数据和自身缓存的数据进行合并。
可选地,本步骤并不是对每一次读请求都需要执行。
5.10:缓存装置向业务逻辑控制装置返回合并后的完整数据。
5.11:业务逻辑控制装置将执行业务流程中生成的写请求发送给缓存装置。
5.12:缓存装置将与写请求对应的数据进行缓存。
5.13:读装置将业务数据复制完成以后,通知迁移状态控制装置。
需要说明的是,在上述过程中,步骤5.6~5.10和步骤5.11~5.12之间并没有先后顺序关系。
可选地,迁移状态控制装置在确定业务数据复制无误后,将状态位置为追写状态。
如图6所示,为本申请实施例提供的业务数据处于追写状态时的业务处理流程图。
6.1:迁移状态控制装置将状态位置为追写。
6.2:在将状态位置为追写后,迁移状态控制装置向缓存装置发送数据写入指示。
这里,为了保证新旧业务逻辑可以并行,写入指示可以指示缓存装置将缓存的数据同时写入第一数据表和第二数据表中,该第二数据表为第一数据表数据迁移后的数据表。
6.3:缓存装置将缓存的数据写入写装置。
6.4:写装置与读装置同步缓存数据,读装置将缓存数据同时写入第一数据表和第二数据表中。
6.5:在业务数据进行追写的过程中,用户通过业务逻辑控制装置发起业务流程。
6.6:业务逻辑控制装置向迁移状态控制装置发送判断当前业务数据状态的请求。
6.7:迁移状态控制装置向业务逻辑控制装置返回追写状态判断结果。
6.8:业务逻辑控制装置将执行业务流程中生成的写请求发送给缓存装置。
6.9:缓存装置判断正在写入的数据与写请求对应的数据是否存在冲突。
这里,若正在写入的数据与写请求对应的数据存在冲突,可以等待缓存装置将存在冲突的数据全部写入以后,再写入请求对应的数据。
6.10:缓存装置在确定正在写入的数据与写请求对应的数据不冲突后,将数据写入写装置。
6.11:写装置与读装置同步写入的数据。
6.12:业务逻辑控制装置将执行业务流程中生成的读请求发送给缓存装置。
6.13:缓存装置判断正在写入的数据与读请求对应的数据是否存在冲突。
这里,若正在写入的数据与读请求对应的数据存在冲突,可以等待缓存装置将存在冲突的数据全部写入以后,再读取与读请求对应的数据。
6.14:缓存装置在确定正在写入的数据与读请求对应的数据不冲突后,从读装置中读取数据。
6.15:缓存装置将从读装置中读取的数据返回给业务逻辑控制装置。
6.17:追写完成以后,缓存装置通知迁移状态控制装置。
需要说明的是,在上述过程中,步骤6.8~6.11和步骤6.12~6.16之间并没有先后顺序关系。
可选地,迁移状态控制装置在确定追写完成后,将状态位置为非迁移状态。
如图7所示,为本申请实施例提供的业务数据处于非迁移状态时的业务处理流程图。
7.1:迁移状态控制装置将状态位置为非迁移。
7.2:在业务数据没有进行迁移时,用户通过业务逻辑控制装置发起业务流程。
7.3:业务逻辑控制装置向迁移状态控制装置发送判断当前业务数据状态的请求。
7.4:迁移状态控制装置向业务逻辑控制装置返回非迁移状态判断结果。
7.5:业务逻辑控制装置将执行业务流程中生成的写请求发送给写装置。
7.6:写装置将写请求对应的数据同步给读装置。
7.7:业务逻辑控制装置将执行业务流程中生成的读请求发送给写装置。
7.8:写装置将数据返回给业务逻辑控制装置。
本申请实施例中,针对用户发起的业务流程,生成读请求或写请求,然后,确定业务流程对应的业务数据状态;当业务数据状态为迁移状态时,对于读请求,从第一业务数据表中读取该读请求对应的数据,该第一业务数据表中存储有进行业务数据迁移前的数据;对于写请求,将该写请求对应的数据写入数据缓存装置中。这样,在业务数据进行迁移的过程中,可以正常处理业务流程过程中生成的读请求和写请求,保证业务流程正常进行、不发生中断,并且,在将第一业务数据表中的数据全部写入第二业务数据表之后,还可将数据缓存装置中的数据写入第一业务数据表和第二业务数据表中,从而保证数据迁移的完整性。
基于同一发明构思,本申请实施例中还提供了一种与在线数据迁移过程中的业务处理方法对应的在线数据迁移过程中的业务处理装置,由于该装置解决问题的原理与本申请实施例在线数据迁移过程中的业务处理方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
如图8所示,为本申请实施例提供的在线数据迁移过程中的业务处理装置80结构图,包括:
生成模块81,用于针对用户发起的业务流程,生成数据处理请求;数据处理请求为读请求或写请求;
确定模块82,用于确定业务流程对应的业务数据状态;
读请求处理模块83,用于在确定模块确定业务数据状态为迁移状态后,若数据处理请求为读请求,则从第一业务数据表中读取该读请求对应的数据;其中,第一业务数据表中存储有进行业务数据迁移前的数据;
写请求处理模块84,用于在确定模块确定业务数据状态为迁移状态后,若数据处理请求为写请求,则将该写请求对应的数据写入数据缓存装置中,以便在将第一业务数据表中的数据全部写入第二业务数据表之后,将数据缓存装置中的数据写入第一业务数据表和第二业务数据表中。
可选地,读请求处理模块83还用于:
在确定模块确定业务数据迁移状态为追写状态后,若数据处理请求为读请求,则判断数据缓存装置正在向目标业务数据表中写入的数据是否为与该读请求存在冲突的数据,若是,则在将数据缓存装置中与读请求存在冲突的数据全部写入目标业务数据表以后,从目标业务数据表中读取与该读请求对应的数据;追写状态是指处于将数据缓存装置中的数据写入目标业务数据表中的状态,该目标业务数据表包含第一业务数据表和第二业务数据表;
写请求处理模块84还用于:
在确定模块确定业务数据迁移状态为追写状态后,若数据处理请求为写请求,则判断数据缓存装置正在向目标业务数据表中写入的数据是否为与该写请求存在冲突的数据,若是,则在将数据缓存装置中与写请求存在冲突的数据全部写入目标业务数据表以后,向目标业务数据表中写入与该写请求对应的数据。
可选地,确定模块82还用于:
在业务数据状态进入迁移状态,且用户发起业务流程之后,将第一业务数据表设置为不可更新状态,以防止向第一业务数据表中写入数据;当业务数据迁移状态由迁移状态进入追写状态后,将第一业务数据表由不可更新状态变更为可更新状态,以便将数据缓存装置中的数据写入第一业务数据表中。
可选地,读请求处理模块83还用于:
从数据缓存装置中读取读请求对应的数据,将从数据缓存装置中读取的数据与从第一业务数据表中读取的数据进行合并;将合并后的数据作为读取的完整数据返回,以便根据该合并后的数据执行后续数据写入流程。
可选地,读请求处理模块83还用于:
在确定模块确定业务数据状态为非迁移状态后,若数据处理请求为读请求,则从第一业务数据表中读取与该读请求对应的数据;
写请求处理模块82还用于:
在确定模块确定业务数据状态为非迁移状态,若数据处理请求为写请求,则将该写请求对应的数据写入第一业务数据表中。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种在线数据迁移过程中的业务处理方法,其特征在于,包括:
针对用户发起的业务流程,生成数据处理请求;所述数据处理请求为读请求或写请求;
确定所述业务流程对应的业务数据状态;
若所述业务数据状态为迁移状态,所述数据处理请求为读请求,则从第一业务数据表中读取该读请求对应的数据;其中,所述第一业务数据表中存储有进行业务数据迁移前的数据;
若所述业务数据状态为迁移状态,所述数据处理请求为写请求,则将该写请求对应的数据写入数据缓存装置中,以便在将所述第一业务数据表中的数据全部写入第二业务数据表之后,将所述数据缓存装置中的数据写入所述第一业务数据表和第二业务数据表中。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
若所述业务数据迁移状态为追写状态,所述数据处理请求为读请求,所述追写状态是指处于将所述数据缓存装置中的数据写入目标业务数据表中的状态,该目标业务数据表包含所述第一业务数据表和所述第二业务数据表;则
判断正在向所述目标业务数据表中写入的数据是否为与该读请求存在冲突的数据,若是,则在将所述数据缓存装置中与所述读请求存在冲突的数据全部写入所述目标业务数据表以后,从所述目标业务数据表中读取与该读请求对应的数据;
若所述业务数据迁移状态为追写状态,所述数据处理请求为写请求,则判断正在向所述目标业务数据表中写入的数据是否为与该写请求存在冲突的数据,若是,则在将所述数据缓存装置中与所述写请求存在冲突的数据全部写入所述目标业务数据表以后,向所述目标业务数据表中写入与该写请求对应的数据。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
在所述业务数据状态进入迁移状态,且用户发起所述业务流程之后,将所述第一业务数据表设置为不可更新状态,以防止向所述第一业务数据表中写入数据;
当所述业务数据迁移状态由迁移状态进入追写状态后,将所述第一业务数据表由不可更新状态变更为可更新状态,以便将所述数据缓存装置中的数据写入所述第一业务数据表中。
4.如权利要求1所述的方法,其特征在于,所述数据处理请求为读请求,则所述方法还包括:
从所述数据缓存装置中读取所述读请求对应的数据,将从所述数据缓存装置中读取的数据与从所述第一业务数据表中读取的数据进行合并;
将合并后的数据作为读取的完整数据返回,以便根据该合并后的数据执行后续数据写入流程。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
若所述业务数据状态为非迁移状态,所述数据处理请求为读请求,则从所述第一业务数据表中读取与该读请求对应的数据;
若所述业务数据状态为非迁移状态,所述数据处理请求为写请求,则将该写请求对应的数据写入所述第一业务数据表中。
6.一种在线数据迁移过程中的业务处理装置,其特征在于,包括:
生成模块,用于针对用户发起的业务流程,生成数据处理请求;所述数据处理请求为读请求或写请求;
确定模块,用于确定所述业务流程对应的业务数据状态;
读请求处理模块,用于在所述确定模块确定所述业务数据状态为迁移状态后,若所述数据处理请求为读请求,则从第一业务数据表中读取该读请求对应的数据;其中,所述第一业务数据表中存储有进行业务数据迁移前的数据;
写请求处理模块,用于在所述确定模块确定所述业务数据状态为迁移状态后,若所述数据处理请求为写请求,则将该写请求对应的数据写入数据缓存装置中,以便在将所述第一业务数据表中的数据全部写入第二业务数据表之后,将所述数据缓存装置中的数据写入所述第一业务数据表和第二业务数据表中。
7.如权利要求6所述的装置,其特征在于,所述读请求处理模块还用于:
在所述确定模块确定所述业务数据迁移状态为追写状态后,若所述数据处理请求为读请求,则判断所述数据缓存装置正在向目标业务数据表中写入的数据是否为与该读请求存在冲突的数据,若是,则在将所述数据缓存装置中与所述读请求存在冲突的数据全部写入所述目标业务数据表以后,从所述目标业务数据表中读取与该读请求对应的数据;所述追写状态是指处于将所述数据缓存装置中的数据写入所述目标业务数据表中的状态,该目标业务数据表包含所述第一业务数据表和所述第二业务数据表;
所述写请求处理模块还用于:
在所述确定模块确定所述业务数据迁移状态为追写状态后,若所述数据处理请求为写请求,则判断所述数据缓存装置正在向所述目标业务数据表中写入的数据是否为与该写请求存在冲突的数据,若是,则在将所述数据缓存装置中与所述写请求存在冲突的数据全部写入所述目标业务数据表以后,向所述目标业务数据表中写入与该写请求对应的数据。
8.如权利要求7所述的装置,其特征在于,所述确定模块还用于:
在所述业务数据状态进入迁移状态,且用户发起所述业务流程之后,将所述第一业务数据表设置为不可更新状态,以防止向所述第一业务数据表中写入数据;当所述业务数据迁移状态由迁移状态进入追写状态后,将所述第一业务数据表由不可更新状态变更为可更新状态,以便将所述数据缓存装置中的数据写入所述第一业务数据表中。
9.如权利要求6所述的装置,其特征在于,所述读请求处理模块还用于:
从所述数据缓存装置中读取所述读请求对应的数据,将从所述数据缓存装置中读取的数据与从所述第一业务数据表中读取的数据进行合并;将合并后的数据作为读取的完整数据返回,以便根据该合并后的数据执行后续数据写入流程。
10.如权利要求6所述的装置,其特征在于,所述读请求处理模块还用于:
在所述确定模块确定所述业务数据状态为非迁移状态后,若所述数据处理请求为读请求,则从所述第一业务数据表中读取与该读请求对应的数据;
所述写请求处理模块还用于:
在所述确定模块确定所述业务数据状态为非迁移状态,若所述数据处理请求为写请求,则将该写请求对应的数据写入所述第一业务数据表中。
CN201611261904.5A 2016-12-30 2016-12-30 一种在线数据迁移过程中的业务处理方法及装置 Active CN108268501B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611261904.5A CN108268501B (zh) 2016-12-30 2016-12-30 一种在线数据迁移过程中的业务处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611261904.5A CN108268501B (zh) 2016-12-30 2016-12-30 一种在线数据迁移过程中的业务处理方法及装置

Publications (2)

Publication Number Publication Date
CN108268501A true CN108268501A (zh) 2018-07-10
CN108268501B CN108268501B (zh) 2020-09-18

Family

ID=62753821

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611261904.5A Active CN108268501B (zh) 2016-12-30 2016-12-30 一种在线数据迁移过程中的业务处理方法及装置

Country Status (1)

Country Link
CN (1) CN108268501B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109062602A (zh) * 2018-07-20 2018-12-21 乐蜜有限公司 一种针对应用程序的数据处理方法、装置及电子设备
CN109086005A (zh) * 2018-07-19 2018-12-25 郑州云海信息技术有限公司 一种数据处理的方法及装置
CN109388347A (zh) * 2018-10-15 2019-02-26 郑州云海信息技术有限公司 一种数据迁移方法及装置
CN109614386A (zh) * 2018-09-28 2019-04-12 阿里巴巴集团控股有限公司 数据处理方法、装置、服务器及计算机可读存储介质
CN110245125A (zh) * 2019-05-20 2019-09-17 中国平安人寿保险股份有限公司 数据迁移方法、装置、计算机设备和存储介质
CN110321339A (zh) * 2019-07-04 2019-10-11 深圳乐信软件技术有限公司 一种数据迁移方法、装置、设备和存储介质
CN110399356A (zh) * 2019-06-14 2019-11-01 阿里巴巴集团控股有限公司 一种在线数据迁移方法、装置、计算设备及存储介质
CN111241068A (zh) * 2020-01-14 2020-06-05 阿里巴巴集团控股有限公司 信息处理方法、装置及设备、计算机可读存储介质
CN111338806A (zh) * 2020-05-20 2020-06-26 腾讯科技(深圳)有限公司 一种业务控制方法及装置
CN111400273A (zh) * 2019-11-19 2020-07-10 杭州海康威视系统技术有限公司 数据库扩容方法、装置、电子设备及机器可读存储介质
CN112230859A (zh) * 2020-10-23 2021-01-15 苏州浪潮智能科技有限公司 一种不中断业务的读写迁移方法及装置
CN113485981A (zh) * 2021-08-12 2021-10-08 北京青云科技股份有限公司 数据迁移方法、装置、计算机设备和存储介质
CN113535087A (zh) * 2021-07-13 2021-10-22 咪咕互动娱乐有限公司 数据迁移过程中的数据处理方法、服务器及存储系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0789877A1 (en) * 1995-09-01 1997-08-20 Emc Corporation System and method for on-line, real-time, data migration
CN104899218A (zh) * 2014-03-06 2015-09-09 腾讯科技(深圳)有限公司 数据读写方法及数据读写装置
CN105868343A (zh) * 2016-03-28 2016-08-17 上海携程商务有限公司 数据库迁移方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0789877A1 (en) * 1995-09-01 1997-08-20 Emc Corporation System and method for on-line, real-time, data migration
CN104899218A (zh) * 2014-03-06 2015-09-09 腾讯科技(深圳)有限公司 数据读写方法及数据读写装置
CN105868343A (zh) * 2016-03-28 2016-08-17 上海携程商务有限公司 数据库迁移方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
任晓君等: "云中SaaS应用的多租户数据动态迁移策略", 《计算机工程与科学》 *
王海霞等: "业务系统割接的流程及方法", 《移动通信》 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109086005A (zh) * 2018-07-19 2018-12-25 郑州云海信息技术有限公司 一种数据处理的方法及装置
CN109062602A (zh) * 2018-07-20 2018-12-21 乐蜜有限公司 一种针对应用程序的数据处理方法、装置及电子设备
CN109062602B (zh) * 2018-07-20 2022-03-18 卓米私人有限公司 一种针对应用程序的数据处理方法、装置及电子设备
CN109614386A (zh) * 2018-09-28 2019-04-12 阿里巴巴集团控股有限公司 数据处理方法、装置、服务器及计算机可读存储介质
CN109614386B (zh) * 2018-09-28 2023-09-22 创新先进技术有限公司 数据处理方法、装置、服务器及计算机可读存储介质
CN109388347A (zh) * 2018-10-15 2019-02-26 郑州云海信息技术有限公司 一种数据迁移方法及装置
CN110245125A (zh) * 2019-05-20 2019-09-17 中国平安人寿保险股份有限公司 数据迁移方法、装置、计算机设备和存储介质
CN110399356A (zh) * 2019-06-14 2019-11-01 阿里巴巴集团控股有限公司 一种在线数据迁移方法、装置、计算设备及存储介质
CN110321339A (zh) * 2019-07-04 2019-10-11 深圳乐信软件技术有限公司 一种数据迁移方法、装置、设备和存储介质
CN111400273A (zh) * 2019-11-19 2020-07-10 杭州海康威视系统技术有限公司 数据库扩容方法、装置、电子设备及机器可读存储介质
CN111400273B (zh) * 2019-11-19 2024-02-02 杭州海康威视系统技术有限公司 数据库扩容方法、装置、电子设备及机器可读存储介质
CN111241068A (zh) * 2020-01-14 2020-06-05 阿里巴巴集团控股有限公司 信息处理方法、装置及设备、计算机可读存储介质
CN111241068B (zh) * 2020-01-14 2023-04-07 阿里巴巴集团控股有限公司 信息处理方法、装置及设备、计算机可读存储介质
CN111338806A (zh) * 2020-05-20 2020-06-26 腾讯科技(深圳)有限公司 一种业务控制方法及装置
CN112230859B (zh) * 2020-10-23 2022-11-25 苏州浪潮智能科技有限公司 一种不中断业务的读写迁移方法及装置
CN112230859A (zh) * 2020-10-23 2021-01-15 苏州浪潮智能科技有限公司 一种不中断业务的读写迁移方法及装置
CN113535087A (zh) * 2021-07-13 2021-10-22 咪咕互动娱乐有限公司 数据迁移过程中的数据处理方法、服务器及存储系统
CN113535087B (zh) * 2021-07-13 2023-10-17 咪咕互动娱乐有限公司 数据迁移过程中的数据处理方法、服务器及存储系统
CN113485981A (zh) * 2021-08-12 2021-10-08 北京青云科技股份有限公司 数据迁移方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN108268501B (zh) 2020-09-18

Similar Documents

Publication Publication Date Title
CN108268501A (zh) 一种在线数据迁移过程中的业务处理方法及装置
CN110135985B (zh) 一种区块链上交易的并行执行方法及系统
US7958088B2 (en) Dynamic data reorganization to accommodate growth across replicated databases
CN108235751A (zh) 识别对象存储设备亚健康的方法、装置和数据存储系统
CN102770854B (zh) 自动同步冲突解决
CN101097556B (zh) 用于更新逻辑卷中元数据的方法和系统
CN104899218B (zh) 数据读写方法及数据读写装置
CN102662775B (zh) 一种进程通信方法和装置
CN105574217B (zh) 分布式关系型数据库的数据同步方法和装置
CN106815218A (zh) 数据库访问方法、装置和数据库系统
CN105554044B (zh) 在本地对象存储节点中同步对象的方法及装置
CN105516230B (zh) 一种数据处理方法及装置
CN102929748A (zh) 数据备份方法及装置
CN103544057B (zh) 数据业务系统的切换方法和切换系统
CN105989059A (zh) 数据记录核对方法及装置
CN103617508A (zh) 可配置的业务规则插件扩展装置和业务规则插件扩展方法
CN104346373A (zh) 分区日志队列同步管理方法及设备
CN108848034A (zh) 一种网络设备及表项学习方法
CN105550306A (zh) 多副本数据的读写方法及系统
CN103914474A (zh) 一种数据迁移方法及系统
CN110413413A (zh) 一种数据写入方法、装置、设备及存储介质
CN104598293B (zh) 一种在线快照的方法和设备
CN103036947A (zh) 基于kvm的虚拟机迁移方法及系统
CN111274117B (zh) 推荐服务的实验及其管理方法、装置和系统
CN105589660A (zh) 一种数据分布方法及装置

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