IP Library Granted Patent US 12,423,196
Granted Patent B1
US 12,423,196 · App. 17/865,931 · Granted Sep 23, 2025

Fast database recovery in a multi-volume database environment via transactional awareness

Inventors: Punit Rajgaria (Saratoga, CA); Ramesh Chander (Santa Clara, CA); Murali Brahmadesam (Tiruchirappalli, IN); Hemanth Satyanarayana (Santa Clara, CA); Aakash Ashwin Shah (Mississauga, CA); Omar Farhat (Toronto, CA); Michael Higgins Dowling (Aurora, CA)
Assignee: Amazon Technologies, Inc.
G06F11/1471G06F11/1458G06F11/2053G06F2201/80
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 12,423,196
App. No.
17/865,931
Granted
Sep 23, 2025
Kind
B1
Abstract

Techniques for fast database recovery in a multi-volume database environment via transactional awareness are described. In the event of a failure associated with a first volume storing database page data, the first volume can be restored to a point in time and transactional metadata from a second volume storing logical change data can be obtained for a limited number of transactions occurring at/after that point in time, as opposed to analyzing extremely large change log files. These transactions can be checked to ensure that they have all been persisted, and if not, change data for those transactions can be obtained from the second volume and used to replay these transactions on the restored first volume.

Claims (46)

1. A computer-implemented method comprising:

detecting a failure associated with a database implemented by a database service in a multi-tenant cloud provider network, the database service including a first electronic device implementing a table volume that stores and/or indexes logical change data of the database, the logical change data pertaining to committed updates that occurred between a time of the failure and a restored time, and a second electronic device implementing a page volume that stores page change data for database pages of the database used by a database engine implemented by a third electronic device of the database service;

determining to recover the database;

obtaining, by a control plane of the database service via use of a first data structure in the table volume of the first electronic device, transactional metadata for one or more transactions that were committed into a last file of multiple files storing the logical change data of the database in a second data structure of the table volume of the first electronic device;

verifying whether data for the one or more transactions was durably written to the page volume implemented by the second electronic device;

obtaining the logical change data, from the second data structure of the table volume of the first electronic device, for one of the one or more transactions determined to not have been durably written to the page volume of the second electronic device; and

sending one or more commands to the database engine, based at least in part on the logical change data, to cause the database engine to replay at least the one transaction to update the page volume.

2. The computer-implemented method of claim 1 , wherein the logical change data stored in the second data structure comprises changelog records, and wherein the page change data stored by the page volume includes redo log records.

3. The computer-implemented method of claim 1 , wherein the obtaining of the transactional metadata includes collecting transactional metadata for only those transactions, of the transactions committed into the last file, that are not marked as being durably committed within the first data structure of the table volume, and wherein the first data structure comprises a transaction table.

4. A computer-implemented method performed by a database service including a first electronic device implementing a table volume that stores and/or indexes logical change data of a database, and a second electronic device implementing a page volume that stores page change data for database pages of the database used by a database engine implemented by a third electronic device of the database service, the method comprising:

detecting a failure associated with the database;

obtaining, via the table volume of the database implemented by the first electronic device, transactional metadata for one or more transactions that were committed into a last file of multiple files storing the logical change data of the database, the logical change data pertaining to committed updates that occurred between a time of the failure and a restored time;

verifying whether data for the one or more transactions was durably written to the page volume implemented by the second electronic device;

obtaining the logical change data, from the table volume of the first electronic device, for one of the one or more transactions determined to not have been durably written to the page volume of the second electronic device; and

sending one or more commands, based at least in part on the logical change data, to cause at least the one transaction to be replayed to update the page volume of the second electronic device.

5. The computer-implemented method of claim 4 , wherein the obtaining of the transactional metadata includes collecting transactional metadata for all transactions that were committed into the last file.

6. The computer-implemented method of claim 4 , wherein the obtaining of the transactional metadata includes collecting transactional metadata for only those transactions, of the transactions committed into the last file, that are not marked as being durably committed within a transaction table of the table volume.

7. The computer-implemented method of claim 4 , wherein:

the obtained transactional metadata does not include actual logical change data associated with the one or more transactions;

the obtained transactional metadata is stored in a first data structure of the table volume; and

the actual logical change data associated with the one or more transactions is stored in a second data structure of the table volume.

8. The computer-implemented method of claim 4 , wherein the obtaining of the transactional metadata, the verifying, the obtaining of the logical change data, and the replay of at least the one transaction to update the page volume occurs in an amount of time, the amount of time being less than ten seconds.

9. The computer-implemented method of claim 8 , wherein the amount of time is less than one second.

10. The computer-implemented method of claim 4 , wherein the database is implemented by the database service in a multi-tenant cloud provider network, and wherein the database service is communicatively coupled to the table volume and the database page volume via one or more network connections.

11. The computer-implemented method of claim 4 , wherein the page change data stored by the page volume includes redo log records, and wherein the page volume further stores database pages.

12. The computer-implemented method of claim 11 , wherein the logical change data stored by the table volume includes changelog records.

13. The computer-implemented method of claim 4 , wherein a size of the obtained transactional metadata is less than ten percent of a size of a corresponding one of the multiple files, and wherein the multiple files storing the logical change data of the database are binlog files.

14. The computer-implemented method of claim 4 , wherein the transactional metadata, for at least one transaction of the one or more transactions, includes a commit time of the at least one transaction, a transaction identifier of the at least one transaction, or a log sequence number (LSN) associated with the table volume.

15. A system implemented as code executing on one or more processors, the system comprising:

a first one or more electronic devices to implement a table volume that stores and/or indexes logical change data of a database of a database service, the logical change data pertaining to committed updates that occurred between a time of the failure and a restored time;

a second one or more electronic devices to implement a page volume that stores page change data for database pages of the database;

a third one or more electronic devices to implement a database engine of the database service, the database engine to utilize at least the page volume and the table volume; and

a fourth one or more electronic devices to implement a control plane of the database service, the control plane including instructions that upon execution cause the control plane to:

detect a failure associated with the database;

obtain, via the table volume of the database implemented by the first electronic device, transactional metadata for one or more transactions that were committed into a last file of multiple files storing the logical change data of the database, the logical change data pertaining to committed updates that occurred between a time of the failure and a restored time;

verify whether data for the one or more transactions was durably written to the page volume implemented by the second electronic device;

obtain the logical change data, from the table volume of the first electronic device, for one of the one or more transactions determined to not have been durably written to the page volume of the second electronic device; and

send one or more commands, based at least in part on the logical change data, to cause at least the one transaction to be replayed to update the page volume of the second electronic device.

16. The system of claim 15 , wherein the obtaining of the transactional metadata includes collecting transactional metadata for all transactions that were committed into the last file.

17. The system of claim 15 , wherein the obtaining of the transactional metadata includes collecting transactional metadata for only transactions, of the transactions committed into the last file, that are not marked as being durably committed within a transaction table of the table volume.

18. The system of claim 15 , wherein:

the obtained transactional metadata does not include actual logical change data associated with the one or more transactions;

the obtained transactional metadata is stored in a first data structure of the table volume; and

the actual logical change data associated with the one or more transactions is stored in a second data structure of the table volume.

19. The system of claim 15 , wherein the obtaining of the transactional metadata, the verification, the obtaining the logical change data, and the replay, all occur in an amount of time, the amount of time being less than ten seconds.

20. The system of claim 15 , wherein the page change data stored by the page volume includes redo log records, wherein the page volume further stores database pages, and wherein the logical change data stored by the table volume includes changelog records.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2024
From: RAJGARIA, PUNIT; CHANDER, RAMESH; BRAHMADESAM, MURALI; SATYANARAYANA, HEMANTH; SHAH, AAKASH ASHWIN; FARHAT, OMAR; DOWLING, MICHAEL HIGGINS
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 066203/0086 →
Continuity (1)
Continuation In Part 16915332 · Jun 29, 2020
References Cited (36)
US 7840595B1 · Blitzer et al. · 2010 [cited by applicant]
US 9804935B1 · Holenstein · 2017 [cited by examiner]
US 11080262B1 · Levandoski et al. · 2021 [cited by applicant]
US 20020007363A1 · Vaitzblit · 2002 [cited by examiner]
US 20020073276A1 · Howard et al. · 2002 [cited by applicant]
US 20080162590A1 · Kundu · 2008 [cited by examiner]
US 20130042156A1 · Srinivasan et al. · 2013 [cited by applicant]
US 20140258241A1 · Chen et al. · 2014 [cited by applicant]
US 20140279931A1 · Gupta et al. · 2014 [cited by applicant]
US 20150278270A1 · Zhang · 2015 [cited by applicant]
US 20160070740A1 · Vermeulen · 2016 [cited by examiner]
US 20170308568A1 · Laethem et al. · 2017 [cited by applicant]
US 20170351584A1 · Griffith · 2017 [cited by examiner]
US 20180336229A1 · Muehle · 2018 [cited by examiner]
US 20190065542A1 · Baker et al. · 2019 [cited by applicant]
US 20190179935A1 · Allgeier · 2019 [cited by examiner]
US 20190332582A1 · Kumar · 2019 [cited by examiner]
US 20190373521A1 · Crawford · 2019 [cited by applicant]
US 20200034459A1 · Rabe et al. · 2020 [cited by applicant]
US 20200186355A1 · Davies · 2020 [cited by applicant]
US 20200344132A1 · Padmanabhan · 2020 [cited by examiner]
US 20210034573A1 · Heng et al. · 2021 [cited by applicant]
US 20210319442A1 · Chapiewski · 2021 [cited by examiner]
US 20220078006A1 · Krishnamurthy et al. · 2022 [cited by applicant]
Zamanian et al. “Rethinking Database High Availability with RDMA Networks”, 2019, https://dspace.mit.edu/bitstream/handle/1721.1/132283/3342263.3342639.pdf?sequence=2&isAllowed=y (Year: 2019). [cited by examiner]
Lars et al. 2014. Managing consistency anomalies in distributed integrated databases with relaxed ACID properties. ICUIMC '14. Association for Computing Machinery, New York, NY, USA, Article 30, 1-7. https://doi.org/10.… [cited by examiner]
Non-Final Office Action, U.S. Appl. No. 16/915,332, Nov. 16, 2021, 15 pages. [cited by applicant]
Notice of Allowance, U.S. Appl. No. 16/915,332, May 13, 2022, 9 pages. [cited by applicant]
Unpublished U.S. Patent Application for Online Restore for Database Engines, U.S. Appl. No. 15/616,888, filed Jun. 7, 2017. [cited by applicant]
Non-Final Office Action, U.S. Appl. No. 17/865,914, Aug. 14, 2024, 26 pages. [cited by applicant]
Non-Final Office Action, U.S. Appl. No. 17/865,948, Aug. 27, 2024, 26 pages. [cited by applicant]
Advisory Action, U.S. Appl. No. 17/865,914, Mar. 21, 2025, 2 pages. [cited by applicant]
Final Office Action, U.S. Appl. No. 17/865,914, Jan. 10, 2025, 28 pages. [cited by applicant]
Notice of Allowance, U.S. Appl. No. 17/865,948, Feb. 21, 2025, 12 pages. [cited by applicant]
Pham et al. 2006, “Complex Fault-tolerant System Reliability Modeling”, https://link.springer.com/content/pdf/10.1007/1-84628-295-0_11.pdf (Year: 2006). [cited by applicant]
Non-Final Office Action, U.S. Appl. No. 17/865,914, Apr. 24, 2025, 27 pages. [cited by applicant]
Cited By (1)
US 12,730,798