IP Library Granted Patent US 9,805,071
Granted Patent B1
US 9,805,071 · App. 15/474,713 · Granted Oct 31, 2017

System and methods for live data migration

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 9,805,071
App. No.
15/474,713
Granted
Oct 31, 2017
Kind
B1
Abstract

Systems and methods are provided for data migration. The system may comprise one or more processors and a memory storing instructions that, when executed by the one or more processors, cause the system to migrate at least one first table of a first database schema to at least one second table of a second database schema, determine a query for modifying the first table during the migration, modify the second table based at least in part on the query, and update a mutation table to describe the modification, wherein the mutation table at least describes the modification.

Claims (60)

1. A system for live data migration, the system comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the system to perform:

migrating at least one first table of a first database schema to at least one second table of a second database schema, the at least one first table storing live data;

determining a query for modifying the at least one first table during the migration;

modifying the at least one second table based at least in part on the query;

updating a mutation table to describe the modification, wherein the mutation table tracks one or more changes to the at least one first table;

determining at least one field to be migrated from the at least one first table to the at least one second table;

determining that no write operations have been performed to a row corresponding to the at least one field during the migration, the determining based at least in part on the mutation table; and

migrating the at least one field from the at least one first table to the at least one second table, the migrating causing data corresponding to the at least one field from the first table to be populated in one or more fields of the second table based at least in part on a respective schema of the second table.

2. The system of claim 1 , wherein the query modifies the at least one field in the at least one first table, wherein the instructions further cause the system to perform:

determining a second query for accessing the at least one field during the migration;

determining that the at least one field has been modified based at least in part on the mutation table; and

providing data corresponding to the field from the second table in response to the second query.

3. The system of claim 1 , wherein the query modifies the at least one field in the first table, wherein the instructions further cause the system to perform:

determining a second query for accessing the at least one field during the migration;

determining that the at least one field has not been modified based at least in part on the mutation table; and

providing the data corresponding to the field from the first table in response to the second query.

4. The system of claim 1 , wherein the modifying the first table includes at least one of modifying data, inserting data, or deleting data in the first table.

5. The system of claim 1 , wherein the updating the mutation table further comprises:

determining a row in the second table to which the modification was performed; and

updating the mutation table to indicate that the row has been modified.

6. The system of claim 5 , wherein the mutation table is updated to indicate the row was modified by updating a Boolean value that corresponds to the row.

7. The system of claim 1 , wherein the query deletes at least one row in the first table, wherein the instructions further cause the system to perform:

determining a second query for accessing the at least one row during the migration;

determining that the at least one row has been modified based at least in part on the mutation table;

determining that the row has been deleted from the second table; and

providing a null value in response to the second query.

8. A computer-implemented method, the method being implemented by a computing system including one or more processors and storage media storing machine-readable instructions, the method comprising:

migrating at least one first table of a first database schema to at least one second table of a second database schema, the at least one first table storing live data;

determining a query for modifying the at least one first table during the migration;

modifying the at least one second table based at least in part on the query;

updating a mutation table to describe the modification, wherein the mutation table tracks one or more changes to the at least one first table;

determining at least one field to be migrated from the at least one first table to the at least one second table;

determining that no write operations have been performed to a row corresponding to the at least one field during the migration, the determining based at least in part on the mutation table; and

migrating the at least one field from the at least one first table to the at least one second table, the migrating causing data corresponding to the at least one field from the first table to be populated in one or more fields of the second table based at least in part on a respective schema of the second table.

9. The computer-implemented method of claim 8 , wherein the query modifies the at least one field in the at least one first table, the method further comprising:

determining a second query for accessing the at least one field during the migration;

determining that the at least one field has been modified based at least in part on the mutation table; and

providing data corresponding to the field from the second table in response to the second query.

10. The computer-implemented method of claim 8 , wherein the query modifies the at least one field in the first table, the method further comprising:

determining a second query for accessing the at least one field during the migration;

determining that the at least one field has not been modified based at least in part on the mutation table; and

providing the data corresponding to the field from the first table in response to the second query.

11. A non-transitory computer readable medium comprising instructions that, when executed, cause one or more processors to perform:

migrating at least one first table of a first database schema to at least one second table of a second database schema, the at least one first table storing live data;

determining a query for modifying the at least one first table during the migration;

modifying the at least one second table based at least in part on the query;

updating a mutation table to describe the modification, wherein the mutation table tracks one or more changes to the at least one first table;

determining at least one field to be migrated from the at least one first table to the at least one second table;

determining that no write operations have been performed to a row corresponding to the at least one field during the migration, the determining based at least in part on the mutation table; and

migrating the at least one field from the at least one first table to the at least one second table, the migrating causing data corresponding to the at least one field from the first table to be populated in one or more fields of the second table based at least in part on a respective schema of the second table.

12. The non-transitory computer readable medium of claim 11 , wherein the query modifies the at least one field in the at least one first table, wherein the instructions further cause the processors to perform:

determining a second query for accessing the at least one field during the migration;

determining that the at least one field has been modified based at least in part on the mutation table; and

providing data corresponding to the field from the second table in response to the second query.

13. The non-transitory computer readable medium of claim 11 , wherein the query modifies the at least one field in the at least one first table, wherein the instructions further cause the processors to perform:

determining a second query for accessing the at least one field during the migration;

determining that the at least one field has not been modified based at least in part on the mutation table; and

providing the data corresponding to the field from the first table in response to the second query.

Assignments (8)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENTS Recorded Jul 3, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0640 →
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY LISTED PATENT BY REMOVING APPLICATION NO. 16/832267 FROM THE RELEASE OF SECURITY INTEREST PREVIOUSLY RECORDED ON REEL 052856 FRAME 0382. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 26, 2021
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 057335/0753 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2017
From: ELLIS, JOSEPH; ELLIOT, MARK; FINK, ROBERT; WASSENHOVE, SANDER VAN
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 042483/0456 →