IP Library Granted Patent US 12,561,213
Granted Patent B1
US 12,561,213 · App. 17/865,914 · Granted Feb 24, 2026

Lossless database recovery using logical replay in a multi-volume database environment

Inventors: Punit Rajgaria (Saratoga, CA); Ramesh Chander (Santa Clara, CA); Murali Brahmadesam (Tiruchirappalli, IN); Hemanth Satyanarayana (Santa Clara, CA); Pratik Shinde (Sunnyvale, CA)
Assignee: Amazon Technologies, Inc.
G06F11/1469G06F16/2282G06F16/2358
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,561,213
App. No.
17/865,914
Granted
Feb 24, 2026
Kind
B1
Abstract

Techniques for lossless database recovery using logical replay in a multi-volume database environment are described. 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 transactions occurring at/after that point in time can be identified and replayed via use of a second volume that tracks logical change data for the database.

Claims (49)

1 . A computer-implemented method comprising:

detecting that a page volume for a first instance of a database is not usable, comprising determining that one or more entries of page change data stored in the page volume cannot successfully be applied to one or more corresponding database pages, wherein the page volume is hosted by a first electronic hardware device and stores page change data for database pages utilized by a database engine hosted by a second electronic hardware device;

restoring the page volume for the first instance of the database to a first point in time that is earlier than a second point in time, wherein the restoring of the page volume is performed for the first instance of the database in a first region comprising a first geographical area in which a first data center is clustered, wherein the first instance previously had been a designated writer for the database prior to an unplanned failover where a second instance of the database in a second region comprising a second geographical area in which a second data center is clustered became the designated writer;

obtaining, via a table volume of the database hosted by a third electronic hardware device, logical change data for transactions occurring after the first point in time; and

sending one or more commands to the database engine hosted by the second electronic hardware device, based at least in part on the logical change data, to cause the database engine to replay the transactions to update the page volume to the second point in time, whereby the database is fully restored to the second point in time without any loss of data committed between the first point in time and the second point in time.

2 . The computer-implemented method of claim 1 , wherein the page change data stored by the page volume includes redo log records generated by the database engine, wherein the page volume further stores database pages, and wherein the logical change data stored by the table volume includes changelog records.

3 . The computer-implemented method of claim 1 , further comprising:

after the restoring of the page volume for the first instance of the database, obtaining database coordinate information from the page volume indicative of a current state of the page volume, wherein obtaining the logical change data via the table volume comprises sending a request to the table volume that includes the database coordinate information, and wherein the database coordinate information comprises:

a file identifier and an offset identifier; or

a transaction identifier.

4 . A computer-implemented method comprising:

restoring a page volume for a first instance of a database to a first point in time that is earlier than a second point in time, wherein the page volume is implemented by a first electronic hardware device and stores page change data for database pages utilized by a database engine implemented by a second electronic hardware device, wherein the restoring of the page volume is performed for the first instance of the database in a first region comprising a first geographical area in which a first data center is clustered, wherein the first instance previously had been a designated writer for the database prior to an unplanned failover where a second instance of the database in a second region comprising a second geographical area in which a second data center is clustered became the designated writer;

obtaining, via a table volume of the database implemented by a third electronic hardware device, logical change data for transactions occurring after the first point in time; and

sending one or more commands to the database engine implemented by the second electronic hardware device, based at least in part on the logical change data, to cause the transactions to be replayed to update the page volume to the second point in time.

5 . The computer-implemented method of claim 4 , further comprising, after the restoring of the page volume for the first instance of the database, obtaining database coordinate information from the page volume indicative of a current state of the page volume, wherein obtaining the logical change data via the table volume comprises sending a request to the table volume that includes the database coordinate information.

6 . The computer-implemented method of claim 5 , wherein the database coordinate information comprises:

a file identifier and an offset identifier; or

a transaction identifier.

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

prior to the restoring of the page volume for the first instance of the database, detecting that the page volume is not usable; and

selecting the first point in time.

8 . The computer-implemented method of claim 7 , wherein detecting that the page volume is not usable includes determining that one or more entries of the page change data stored in the page volume cannot successfully be applied to one or more corresponding database pages, wherein an additional one or more entries of logical change data that correspond to the one or more entries of the page change data have been successfully stored in the table volume.

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

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

11 . The computer-implemented method of claim 4 , wherein the database is implemented by a database service in a multi-tenant cloud provider network, and wherein the database engine is part of a head node, implemented by the second electronic hardware device, that itself is one of multiple nodes in a cluster utilizing the page volume and the table volume.

12 . The computer-implemented method of claim 4 , wherein after the sending of the one or more commands to cause the transactions to be replayed to update the page volume to the second point in time, the page volume is completely updated to the second point in time without any loss of committed transaction data.

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

the database engine is part of the first instance;

the table volume is part of the second instance; and

the method further comprises designating the first instance to again become the designated writer for the database.

14 . The computer-implemented method of claim 4 , further comprising:

receiving a user-provided input value identifying a particular transaction or time value; and

selecting the second point in time based on the user-provided input, whereby the database is restored, upon the replay of the transactions to update the page volume to the second point in time, to just prior to the particular transaction, just after the particular transaction, or to the time value.

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

a first one or more electronic hardware devices to implement both a page storage node and a data storage node of a database service in a multi-tenant provider network, the page storage node to implement a page volume to store page change data for database pages of a first instance of a database, the data storage node to implement a table volume to store logical change data;

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

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

restore the page volume for the first instance of the database to a first point in time that is earlier than a second point in time, wherein the restoring of the page volume is performed for the first instance of the database in a first region comprising a first geographical area in which a first data center is clustered, wherein the first instance previously had been a designated writer for the database prior to an unplanned failover where a second instance of the database in a second region comprising a second geographical area in which a second data center is clustered became the designated writer;

obtain, from the table volume, logical change data for transactions occurring after the first point in time; and

send one or more commands to the database engine, generated based at least in part on the logical change data, to cause the database engine to replay the transactions to update the page volume to the second point in time.

16 . The system of claim 15 , wherein the control plane further includes instructions that upon execution cause the control plane to, after the restore of the page volume for the first instance of the database, obtain database coordinate information from the page volume indicative of a current state of the page volume, wherein to obtain the logical change data via the table volume the control plane is at least to send a request to the table volume that includes the database coordinate information.

17 . The system of claim 16 , wherein the database coordinate information comprises:

a file identifier and an offset identifier; or

a transaction identifier.

18 . The system of claim 15 , wherein the control plane further includes instructions that upon execution cause the control plane to:

prior to the restore of the page volume for the first instance of the database, detect that the page volume is not usable; and

select the first point in time.

19 . The system of claim 18 , wherein the detection that the page volume is not usable includes a determination that one or more entries of the page change data stored in the page volume cannot successfully be applied to one or more corresponding database pages, and wherein an additional one or more entries of logical change data that correspond to the one or more entries of the page change data have been successfully stored in the table volume.

20 . The system of claim 15 , wherein the page change data stored by the page volume includes redo log records generated by the database engine, and wherein the logical change data stored by the table volume includes binlog records.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2024
From: RAJGARIA, PUNIT; CHANDER, RAMESH; BRAHMADESAM, MURALI; SATYANARAYANA, HEMANTH; SHINDE, PRATIK
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 066202/0976 →
Continuity (1)
Continuation In Part 16915332 · Jun 29, 2020
References Cited (40)
US 7840595B1 · Blitzer · 2010 [cited by examiner]
US 9804935B1 · Holenstein et al. · 2017 [cited by applicant]
US 11080262B1 · Levandoski · 2021 [cited by examiner]
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 · 2014 [cited by examiner]
US 20140279931A1 · Gupta · 2014 [cited by examiner]
US 20150278270A1 · Zhang · 2015 [cited by applicant]
US 20160070740A1 · Vermeulen et al. · 2016 [cited by applicant]
US 20170308568A1 · Laethem et al. · 2017 [cited by applicant]
US 20170351584A1 · Griffith · 2017 [cited by examiner]
US 20180336229A1 · Muehle et al. · 2018 [cited by applicant]
US 20190065542A1 · Baker et al. · 2019 [cited by applicant]
US 20190179935A1 · Allgeier et al. · 2019 [cited by applicant]
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 examiner]
US 20200344132A1 · Padmanabhan · 2020 [cited by examiner]
US 20210034573A1 · Heng et al. · 2021 [cited by applicant]
US 20210319442A1 · Chapiewski et al. · 2021 [cited by applicant]
US 20210397522A1 · Owen · 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]
Suganuma et al. May 30, 2011, “Distributed and Fault-Tolerant Execution Framework for Transaction Processing”, https://www.systor.org/2011/present/session1_talk2_systor6-suganuma.pdf (Year: 2011). [cited by examiner]
Non-Final Office Action, U.S. Appl. No. 16/915,332, filed Nov. 16, 2021, 15 pages. [cited by applicant]
Notice of Allowance, U.S. Appl. No. 16/915,332, filed 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,931, filed Jul. 26, 2024, 24 pages. [cited by applicant]
Non-Final Office Action, U.S. Appl. No. 17/865,948, filed Aug. 27, 2024, 26 pages. [cited by applicant]
Final Office Action, U.S. Appl. No. 17/865,931, filed Feb. 7, 2025, 30 pages. [cited by applicant]
Notice of Allowance, U.S. Appl. No. 17/865,948, filed 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]
Advisory Action, U.S. Appl. No. 17/865,931, filed Apr. 17, 2025, 2 pages. [cited by applicant]
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.1… [cited by applicant]
Notice of Allowance, U.S. Appl. No. 17/865,931, filed Jun. 9, 2025, 2 pages. [cited by applicant]
Notice of Allowance, U.S. Appl. No. 17/865,931, filed May 28, 2025, 10 pages. [cited by applicant]
Notice of Allowance, U.S. Appl. No. 17/865,948, filed Jun. 10, 2025, 2 pages. [cited by applicant]