Browse Prior Art Database

Method and System for Zero Downtime Data Migration driven by user activity Disclosure Number: IPCOM000244319D
Publication Date: 2015-Dec-02

Publishing Venue

The Prior Art Database


Online application system migration typically is divided into two parts, application program migration and data migration. The application migration can achieve zero-downtime by keeping the old application program running during migrating / upgrading it to the new version application, and then switch it to the new application system when the migration is done. But for the data migration, online system have to be shut down during data migration in order to keep data consistent and online system will go alive when data migration is done. The overall downtime equals data migration time, which means the greater the amount of data, the longer the time spent. While for most enterprise application system, it is required 7*24 online services, system downtime means the huge revenue lost and loss of customer. This article describes a system and method for migrating data incrementally between source system and target system with zero-downtime base on the analysis of the user activity. Data records will be grouped by users (Take the e-commerce system as an example, the registered shopper will be considered as a user). Data records in the source system will be prioritized based on the analysis of the user activity (lower user activity, higher migration priority), then the data migration will be performed incrementally based on the prioritized data records from source system to target system in manner where the data records remain accessible and available during the migration progress. And to make sure the user will not be impacted and ensure the real Zero-Downtime data migration, the user requests will be redirected to source system or target system adaptively according to the status of related data records.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 27% of the total text.

Page 01 of 16

Method and System for Zero Downtime Data Migration driven by user activity


--Downtime Migration System Downtime Migration System

The system has several components, including: Request routerfor handling the user requests to source system or target system according to the migration status of related data records; Prioritizing schedulerfor prioritizing the user based on the user activity; Migration


schedulerfor migrating data, it includes migration process and rollback listener, the info of the users whose data records are in migrating status and migrated status will be stored in table 1 and table 2 separately; Completion monitorfor checking the progress of


Page 02 of 16

data migration for ending the migration.

Before migration, the target application should be ready, non-user related data should be ready in the target DB, like product, catalog, promotions, etc. The migration system will help on migrating user related data from source DB to target DB with real Zero-Downtime.

Table0 has columns: userID(ID of the user), userActivity(the flag to identify the last interactive time with the system of the user), priority(the result of the analysis of the user activity)

Table1 has column: userID(ID of the user).

Table2 has column: userID(ID of the user).

     Router Router


     is responsible for routing the requests from users to the correct system, it picks up between source system and target system based on the migration status of users.

Besides routing the user requests to correct system by itself, Router needs to communicate with Prioritizing Scheduler to dynamically adjust the migration priorities for some users and notify the Migration Scheduler to stop the on-going migration and rollback the changes for some users.

Router Working modes switch flow:


Router has two working modes, they are Working mode 1 and Working mode 2, Router uses mode 1 at the beginning and will switch to mode 2 once the "Prioritizing Initialization Ready Flag" is set to "true".

Page 03 of 16

The "Prioritizing Initialization Ready Flag" is the flag to identify whether the users migration priorities are initialized completely by Prioritizing Scheduler, its default value is "false".

Flow elaboration:

The Router is started, once the first request from any user is coming, it checks the "Prioritizing Initialization Ready Flag".
If the flag is "false", use working mode 1. For the subsequent request, still need to check the flag. If the flag is "true", use working mode 2 all the time, don't need to check the flag any more.

Router working flow with working mode 1 11::

Router working mode 1 flow:

For every request, the Router will check if the request user is a new user who is created after we started the Prioritizing Scheduler.

If it's a new user, route the user request to the target system.

If it's not a new user, route the user request to the source system.

Router working flow with working mode 2



Page 04 of 16

Router working mode 2 f...