IP Library Granted Patent US 10,929,428
Granted Patent B1
US 10,929,428 · App. 15/918,989 · Granted Feb 23, 2021

Adaptive database replication for database copies

Inventors: Murali Brahmadesam (Woodinville, WA); Seungmin Wei (Bellevue, WA); Sumit Kumar (Bellevue, WA); Raman Mittal (Seattle, WA); Crosbie Matthew Smith (Seattle, WA); Kevin Liu (Seattle, WA); Aadithya Chandramalle Gowda (Seattle, WA); Ramesh Shankar (Redmond, WA)
Assignee: Amazon Technologies, Inc.
G06F16/27G06F16/2358G06F16/2379
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 10,929,428
App. No.
15/918,989
Granted
Feb 23, 2021
Kind
B1
Abstract

Adaptive replication of changes may be performed for copies of a database. Log records may be generated and stored that correspond to changes to a database while a database is being copied. If the changes to be applied to a copy of the database is less than or equal to a threshold number of changes, then the copy of the database may be updated using the stored log records. If the changes to be applied to the copy of the database are greater than the threshold number of changes, then the copy of the database may be updated using data stored in the database.

Claims (74)

1. A system, comprising:

a memory to store program instructions which, if performed by at least one processor, cause the at least one processor to perform a method to at least:

perform, by a primary database engine for a database, one or more changes to a database;

store, by the primary database engine, one or more log records corresponding to the one or more changes while the database is being copied, wherein the copy of the database is available to process access requests received at a secondary database engine that are directed to the copy of the database;

update the copy of the database with the one or more changes using the stored log records if the one or more changes are equal to or less than a threshold number of changes; and

update the copy of the database with the one or more changes using data stored in the database if the one or more changes exceeds the threshold number of changes.

2. The system of claim 1 , wherein the program instructions cause the at least one processor to further perform the method to at least:

before the storing of the one or more log records, send a stream of log records corresponding to other changes performed at the database to the copy of the database to update the copy of the database with the other changes.

3. The system of claim 1 , wherein the program instructions cause the at least one processor to further perform the method to at least:

detect one or more updates, corresponding to one or more other changes to the database, as missing in the copy of the database; and

responsive to the detection, perform the missing one or more updates of the copy of the database with the one or more other changes using the stored log records if the one or more other changes are equal to or less than a threshold number of changes or perform the missing one or more updates of the copy of the database with the one or more other changes using data stored in the database if the one or more other changes exceeds the threshold number of changes.

4. The system of claim 1 ,

wherein the primary database engine is implemented as part of a first database service in a first provider network region, wherein the secondary database engine

is implemented as part of a second database service in a second provider network region, wherein the database is stored in a first storage service in the first provider network region and wherein the copy of the database is stored in a second storage service in the second provider network region;

wherein to update the copy of the database with the one or more changes using the stored log records, the program instructions cause the at least one processor to perform the method to at least send the stored log records to a replication agent hosted as part of the second storage service via a wide area network connection; and

wherein to update the copy of the database with the one or more changes using data stored in the database, the program instructions cause the at least one processor to perform the method to at least send the data to the replication agent hosted as part of the second storage service via the wide area network connection.

5. A method, comprising:

performing, by one or more computers:

storing one or more log records corresponding to one or more changes to a database while the database is being copied;

updating the copy of the database with the one or more changes using the stored log records if the one or more changes are equal to or less than a threshold number of changes;

updating the copy of the database with the one or more changes using data stored in the database if the one or more changes exceeds the threshold number of changes.

6. The method of claim 5 , further comprising:

detecting one or more missing updates to the copy of the database corresponding to one or more other changes to the database; and

responsive to the detecting, performing updating the copy of the database with the one or more other changes using the stored log records if the one or more other changes are equal to or less than a threshold number of changes or performing updating the copy of the database with the one or more other changes using data stored in the database if the one or more other changes exceeds the threshold number of changes.

7. The method of claim 5 , wherein updating the copy of the database with the one or more changes using the data stored in the database comprises:

identifying a read image of the copy of the database;

using the read image of the copy of the database to perform access requests to the copy of the database;

obtaining the data stored in the database;

blocking access to the copy of the database;

updating the read image of the copy of the database with the data; and

allowing access to the updated copy of the database.

8. The method of claim 5 , wherein updating the copy of the database with the one or more changes using the stored log records comprises obtaining the stored log records from a cache of log records at a replication agent or from a separate distributed storage system that stores the database.

9. The method of claim 5 , further comprising:

obtaining an update to system data for a secondary database engine that provides access to the copy of the database;

after performing the update to system data for a primary database engine that provides access to the database:

blocking access to the copy of the database;

updating the system data for the secondary database engine;

restarting the secondary database engine; and

allowing access to the updated copy of the database.

10. The method of claim 5 , further comprising:

before storing the one or more log records, sending a stream of log records corresponding to other updates performed at the database to a replication agent for the copy of the database to update the copy of the database with the other updates.

11. The method of claim 5 , further comprising:

updating a second copy of the database with the one or more changes using the stored log records if the one or more changes are equal to or less than a threshold number of changes;

updating the second copy of the database with the one or more changes using data stored in the database if the one or more changes exceeds the threshold number of changes.

12. The method of claim 5 ,

wherein updating the copy of the database with the one or more changes using the stored log records comprises sending the stored log records to a replication agent via a wide area network connection; and

wherein updating the copy of the database with the one or more changes using data stored in the database comprises sending the data to the replication agent via the wide area network connection.

13. The method of claim 12 ,

wherein sending the stored log records to a replication agent via a wide area network connection comprises applying a security protocol to encrypt the stored log records over the wide area connection; and

wherein sending the data to the replication agent via the wide area network connection comprises applying a security protocol to encrypt the data over the wide area connection.

14. A non-transitory, computer-readable storage medium, storing program instructions that when executed by one or more computing devices cause the one or more computing devices to implement:

storing one or more log records corresponding to one or more changes to a database while the database is being copied, wherein the copy of the database is available to process access requests directed to the copy of the database;

updating the copy of the database with the one or more changes using the stored log records if the one or more changes are equal to or less than a threshold number of changes;

updating the copy of the database with the one or more changes using data stored in the database if the one or more changes exceeds the threshold number of changes.

15. The non-transitory, computer-readable storage medium of claim 14 , wherein the program instructions further cause the one or more computing devices to implement:

detecting one or more missing updates to the copy of the database corresponding to one or more other changes to the database; and

responsive to the detecting, performing updating the copy of the database with the one or more other changes using the stored log records if the one or more other changes are equal to or less than a threshold number of changes or updating the copy of the database with the one or more other changes using data stored in the database if the one or more other changes exceeds the threshold number of changes.

16. The non-transitory, computer-readable storage medium of claim 14 , wherein the program instructions cause the one or more computing devices to implement:

obtaining an update to system data for a secondary database engine that provides access to the copy of the database;

after performing the update to system data for a primary database engine that provides access to the database:

blocking access to the copy of the database;

updating the system data for the secondary database engine;

restarting the secondary database engine; and

allowing access to the updated copy of the database.

17. The non-transitory, computer-readable storage medium of claim 14 , wherein, in updating the copy of the database with the one or more changes using data stored in the database, the program instructions cause the one or more computing devices to implement:

obtaining the data stored in the database;

blocking access to the copy of the database;

updating the copy of the database with the data; and

allowing access to the updated copy of the database.

18. The non-transitory, computer-readable storage medium of claim 14 ,

wherein, in updating the copy of the database with the one or more changes using the stored log records, the program instructions cause the one or more computing devices to implement sending, from a first replication agent implemented as part of a first storage system for the database, the stored log records to a second replication agent implemented as part of a second storage system for the copy of the database; and

wherein, in updating the copy of the database with the one or more changes using data stored in the database, the program instructions cause the one or more computing devices to implement sending, from the first replication agent implemented as part of the first storage system for the database, the data to the second replication agent implemented as part of the second storage system for the copy of the database.

19. The non-transitory, computer-readable storage medium of claim 18 , wherein a primary database engine that provides access to the database is implemented as part of a first database service in a first provider network region, wherein the copy of the database is accessed by a secondary database engine that is implemented as part of a second database service in a second provider network region, wherein the first storage system is a first storage service in the first provider network region and wherein the second storage system is a second storage service in the second provider network region.

20. The non-transitory, computer-readable storage medium of claim 19 , wherein the first replication agent and the second replication agent send other log records or other data for replicating another database hosted in the first provider network region and the second provider network region that is hosted on behalf of a different user account.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2018
From: BRAHMADESAM, MURALI; WEI, SEUNGMIN; KUMAR, SUMIT; MITTAL, RAMAN; SMITH, CROSBIE MATTHEW; LIU, KEVIN; GOWDA, AADITHYA CHANDRAMALLE; SHANKAR, RAMESH
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 045285/0546 →
Continuity (1)
Provisional Application 62590217 · Nov 22, 2017
Cited By (12)
US 12,242,505 US 12,254,024 US 12,277,138 US 12,293,220 US 12,321,243 US 12,373,420 US 12,381,932 US 12,430,360 US 12,511,602 US 12,596,706 US 12,645,692 US 12,711,151