IP Library Granted Patent US 11,422,987
Granted Patent B2
US 11,422,987 · App. 16/819,030 · Granted Aug 23, 2022

State record system for data migration

Inventors: John Dennis (Seattle, WA); Evan Richman (Seattle, WA); Todd Schwartz (Seattle, WA); Bradley Younge (Denver, CO); Manoj Ganesh Panse (Seattle, WA)
Assignee: SkyKick, Inc.
G06F16/214G06F16/119G06F16/23
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,422,987
App. No.
16/819,030
Granted
Aug 23, 2022
Kind
B2
Abstract

A system and method for facilitating a migration engine to migrate data items in a data directory from a source system to a destination system over multiple migration passes are disclosed. A state file can be used to track migration states of data items during the life cycle of the migration. The state file can be generated and updated by a plugin to the migration engine. During a migration pass, the state file can be loaded into the memory to influence the migration by the migration engine. Prior to the migration pass, migration profile specifying one or more migration actions can be invoked by a migration routine. The invocation of the migration profile can cause the state file to be modified to perform the migration actions accordingly.

Claims (39)

1. A method for facilitating migration of data items in a data directory from a source system to a destination system over multiple invocations of a migration profile for migrating the data directory, the method being electronically executed by a server computer system and comprising:

generating a state file, the state file comprising state records including a first state record for a first data item, the first state record specifying a next action to be performed for the first data item when migrating the first data item from the source system to the destination system during a next pass of the migration subsequent to a first pass of the migration;

updating the migration profile such that a migration action is to be performed on the first data item when migrating the first data item from the source system to the destination system in the next pass;

invoking the migration profile to update the state file, the updating of the state file comprises updating the next action in the first state record for the first data item in accordance with the migration action; and

in the next pass, executing the next action that was updated in the first state record for the first data item.

2. The method of claim 1 , wherein the updated next action in the first state record for the first data item includes at least one of a migrate instruction, a delete instruction, a replace instruction, and a skip instruction.

3. The method of claim 1 , further comprising:

in the first pass:

identifying, for each of the data items an event reflecting whether the data item succeeds or fails to be migrated to the destination system;

determining, for each of the data items, the next action to be performed for the data item based on the event identified for the data item; and

updating the state records for the data items with the determined next actions for the data items.

4. The method of claim 1 , wherein the first state record includes one or more action records reflecting a migration history of the first data item.

5. The method of claim 4 , wherein each of the action records comprises a composite key that includes an item identifier of the source system and a folder path of the data item in the source system.

6. The method of claim 1 , wherein the data items in the data directory include at least one of a file, an electronic mail message, a calendar item, a task item and a contact item.

7. The method of claim 1 , wherein the state file further comprises a pass record indicating a status of the migration of the data items for the first pass.

8. The method of claim 1 , further comprising flushing the state file periodically to a persistent data storage.

9. The method of claim 1 , further comprising providing a graphical user interface to enable a user to generate instructions for updating the migration profile.

10. A computer server for facilitating migration of data items in a data directory from a source system to a destination system over multiple invocations of a migration profile for migrating the data directory, the computer server comprising one or more hardware processors configured by machine-readable instructions to perform:

generating a state file, the state file comprising state records including a first state record for a first data item, the first state record specifying a next action to be performed for the first data item when migrating the first data item from the source system to the destination system during a next pass of the migration subsequent to a first pass of the migration;

updating the migration profile such that a migration action is to be performed on the first data item when migrating the first data item from the source system to the destination system in the next pass;

invoking the migration profile to update the state file, the updating of the state file comprises updating the next action in the first state record for the first data item in accordance with the migration action; and

in the next pass, executing the next action that was updated in the first state record for the first data item.

11. The computer server of claim 10 , wherein the updated next action in the first state record for the first data item includes at least one of a migrate instruction, a delete instruction, a replace instruction, and a skip instruction.

12. The computer server of claim 10 , wherein the one or more hardware processors configured by machine-readable instructions to further perform:

identifying, for each of the data items, by a migration engine plugin, an event reflecting whether the data item succeeds or fails to be migrated to the destination system;

determining, for each of the data items, by the migration engine plugin, a next action to be performed for the data item based on the event identified for the data item; and

updating, by the migration engine plugin, the state records for the data items with the determined next actions for the data items.

13. The computer server of claim 10 , wherein the first state record includes one or more action records reflecting a migration history of the first data item.

14. The computer server of claim 13 , wherein each of the action records comprises a composite key that includes an item identifier of the source system and a folder path of the item in the source system.

15. The computer server of claim 10 , wherein the data items in the data directory include at least one of a file, an electronic mail message, a calendar item, a task item and a contact item.

16. The computer server of claim 10 , wherein the state file further comprises a pass record indicating a status of the migration of the data items for the first pass.

17. The computer server of claim 10 , wherein the one or more processors are further configured by machine-readable instructions to perform flushing the state file periodically to a persistent data storage.

18. The computer server of claim 10 , wherein the one or more hardware processors are further configured by machine-readable instructions to perform providing a graphical user interface to enable a user to generate instructions for updating the migration profile.

19. A non-transitory computer-readable medium storing computer-executable code for facilitating migration of data items in a data directory from a source system to a destination system over multiple invocations of a migration profile for migrating the data directory, the non-transitory computer-readable medium comprising code for:

generating a state file, the state file comprising state records including a first state record for a first data item, the first state record specifying a next action to be performed for the first data item when migrating the first data item from the source system to the destination system during a next pass of the migration subsequent to a first pass of the migration;

updating the migration profile such that a migration action is to be performed on the first data item when migrating the first data item from the source system to the destination system in the next pass;

invoking the migration profile to update the state file, the updating of the state file comprises updating the next action in the first state record for the first data item in accordance with the migration action; and

in the next pass, executing the next action that was updated in the first state record for the first data item.

20. The non-transitory computer-readable medium of claim 19 , wherein the updated next action in the first state record for the first data item includes at least one of a migrate instruction, a delete instruction, a replace instruction, and a skip instruction.

Assignments (6)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 19, 2025
From: SKYKICK, LLC; EFOLDER, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 070268/0489 →
MERGER Recorded Sep 19, 2024
From: PROJECT JOULE MERGER SUB, INC.
To: SKYKICK GLOBAL HOLDINGS, INC.
Reel/Frame 068636/0471 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2024
From: MS PRIVATE CREDIT ADMINISTRATIVE SERVICES, LLC
To: SKYKICK, LLC
Reel/Frame 068545/0172 →
SECURITY INTEREST Recorded Sep 2, 2021
From: SKYKICK, LLC
To: MS PRIVATE CREDIT ADMINISTRATIVE SERVICES, LLC
Reel/Frame 057372/0544 →
CHANGE OF NAME Recorded Sep 1, 2021
From: SKYKICK, INC.
To: SKYKICK, LLC
Reel/Frame 057395/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2020
From: DENNIS, JOHN; RICHMAN, EVAN; SCHWARTZ, TODD; YOUNGE, BRADLEY; PANSE, MANOJ GANESH
To: SKYKICK, INC.
Reel/Frame 052117/0494 →
Continuity (3)
Continuation 15096187 · Apr 11, 2016
Provisional Application 62146135 · Apr 10, 2015
Related Publication 20200285621A1 · Sep 10, 2020