IP Library Granted Patent US 9,501,501
Granted Patent B2
US 9,501,501 · App. 14/201,509 · Granted Nov 22, 2016

Log record management

Inventors: Pradeep Jnana Madhavarapu (Mountain View, CA); Neal Fachan (Seattle, WA); Anurag Windlass Gupta (Atherton, CA); Samuel James McKelvie (Seattle, WA)
Assignee: Amazon Technologies, Inc.
G06F17/30283G06F17/30289
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,501,501
App. No.
14/201,509
Granted
Nov 22, 2016
Kind
B2
Abstract

A database system may maintain a plurality of log records at a distributed storage system. Each of the plurality of log records may be associated with a respective change to a data page. The plurality of log records may be transformed (e.g., cropped, prune, reduce, fused, deleted, merged, added, etc.).

Claims (33)

1. A system, comprising:

a plurality of storage nodes, each of which comprises at least one processor and a memory, wherein the plurality of storage nodes is configured to collectively implement a distributed log-structured storage system of a database service configured to:

receive a plurality of log records, from one or more database engine head nodes of the database service, wherein each of the plurality of log records describes a respective change to data stored by the database service as part of a log and is further associated with a respective log sequence identifier;

store the plurality of log records among the plurality of storage nodes; and

perform an operation upon two or more log sections of the log included in the plurality of log records to generate at least one new log section, wherein the two or more log sections describe one or more respective versions of the data maintained by the plurality of log records, wherein the operation transforms the plurality of log records stored among the plurality of storage nodes such that the at least one new log section describes a version of the data maintained as a result of the transformation of the plurality of log records, wherein the two or more log sections are operands for the operation.

2. The system of claim 1 , wherein the distributed log-structured storage system is further configured to:

determine that a difference exists between first log records of the plurality of log records stored at a first storage node of the plurality of storage nodes and second log records of the plurality of log records stored at a second storage node of the plurality of nodes;

wherein the operation is performed as part of reconciling the difference between the first log records and the second log records.

3. The system of claim 1 , wherein said performing the operation includes determining that one or more log records of the plurality of log records are deletable based, at least in part, on determined dependencies among the plurality of log records.

4. A method, comprising:

performing, by one or more computers of a database service:

maintaining a plurality of log records indicative of data stored by the database service, wherein each log record describes a respective change to the data stored by the database service as part of a log and is associated with a respective log sequence identifier; and

performing an operation upon two or more log sections of the log included in the plurality of log records to generate at least one new log section, wherein the two or more log sections describe one or more respective versions of the data maintained by the plurality of log records, wherein the operation transforms the plurality of log records maintained for the database service such that the at least one new log section describes a version of the data maintained as a result of the transformation of the plurality of log records, wherein the two or more log sections are operands for the operation.

5. The method of claim 4 , further comprising:

determining that first log records of the plurality of log records stored at a first storage node of the database service are different, in at least one respect, than second log records of the plurality of log records stored at a second storage node of the database service;

wherein the operation is performed as part of reconciling the first and second log records.

6. The method of claim 4 , wherein the plurality of log records includes at least one baseline log record, wherein the baseline log record includes a page of the data.

7. The method of claim 4 , wherein the plurality of log records include at least one delta log record, wherein the delta log record includes a change to a page of the data.

8. The method of claim 4 , wherein the operation includes converting a delta log record of the plurality of log records into a new baseline log record.

9. The method of claim 4 , wherein the plurality of log records is associated with at least one snapshot that is usable to restore the data to a previous state, wherein the operation includes garbage collecting one or more of the log records based, at least in part, on the at least one snapshot.

10. The method of claim 4 , wherein the operation includes indicating that one or more log records of the plurality of log records are garbage collectable.

11. The method of claim 4 , wherein the operation includes deleting one or more log records of the plurality of log records.

12. The method of claim 4 , wherein the operation is a crop operation, wherein said performing the crop operation includes deleting one or more log records of the plurality of log records having respective identifiers with values less than a value of a target identifier.

13. The method of claim 4 , wherein the operation is a prune operation, wherein said performing the prune operation includes deleting one or more log records of the plurality of log records having respective identifiers with values greater than a value of a target identifier.

14. The method of claim 4 , wherein the operation includes determining that one or more log records of the plurality of log records are deletable based, at least in part, on determined dependencies among the plurality of log records.

15. The method of claim 4 , wherein the operation includes combining the plurality of log records with another plurality of log records.

16. The method of claim 4 , wherein the operation is one of multiple operations performed on the plurality of log records as part of a snapshot operation.

17. A non-transitory computer-readable storage medium storing program instructions, wherein the program instructions are computer-executable to implement a distributed log-structured storage node of a plurality of distributed log-structured storage nodes of a database service, wherein the distributed log-structure storage node is configured to:

store a plurality of log records as part of a log, wherein each of the plurality of log records describes a respective change to data stored by the plurality of a distributed log-structured storage nodes and is further associated with a respective identifier; and

perform an operation upon two or more log sections of the log included in the plurality of log records to generate at least one new log section, wherein the two or more log sections describe one or more respective versions of the data maintained by the plurality of log records, wherein the operation transforms the plurality of log records stored at the distributed log-structured storage node such that the at least one new log section describes a version of the data maintained as a result of the transformation of the plurality of log records, wherein the two or more log sections are operands for the operation.

18. The non-transitory computer-readable storage medium of claim 17 , wherein the operation includes reconciling a difference between first log records stored at the distributed log-structure storage node and second log records stored at another distributed log-structured storage node of the plurality of distributed log-structured storage nodes.

19. The non-transitory computer-readable storage medium of claim 17 , wherein the operation is a crop operation, wherein said performing the crop operation includes deleting one or more log records of the plurality of log records having respective identifiers with values less than a value of a target identifier.

20. The non-transitory computer-readable storage medium of claim 17 , wherein the operation includes deleting one or more log records of the plurality of log records having respective identifiers with values greater than a value of a target identifier.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 21, 2016
From: MADHAVARAPU, PRADEEP JNANA; GUPTA, ANURAG WINDLASS; MCKELVIE, SAMUEL JAMES
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 039820/0658 →
Continuity (2)
Provisional Application 61794612 · Mar 15, 2013
Related Publication 20140279920A1 · Sep 18, 2014