IP Library Granted Patent US 10,977,143
Granted Patent B2
US 10,977,143 · App. 15/844,412 · Granted Apr 13, 2021

Mirrored write ahead logs for data storage system

Inventors: Abhishek Gupta (Sunnyvale, CA); Richard P. Spillane (Mountain View, CA); Kapil Chowksey (Cupertino, CA); Rob Johnson (Palo Alto, CA); Wenguang Wang (Santa Clara, CA)
Assignee: VMware, Inc.
G06F11/2056G06F3/0653G06F11/3034G06F11/3476
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,977,143
App. No.
15/844,412
Granted
Apr 13, 2021
Kind
B2
Abstract

Data storage system and method for managing transaction requests to the data storage system utilizes an active write ahead log and a standby write ahead log to apply the transaction requests to a storage data structure stored in a storage system of the data storage system.

Claims (38)

1. A method for managing transaction requests to a data storage system, the method comprising:

receiving transaction requests at the data storage system;

writing the transaction requests in an active write ahead log of the data storage system;

writing the transaction requests in a standby write ahead log of the data storage system;

applying the transaction requests in the active write ahead log to a storage data structure stored in a storage system of the data storage system, wherein writing the transaction requests in the active and standby write ahead logs are performed in parallel using a two-phase commit protocol; and

when one of the active or standby write ahead logs has failed:

creating a new standby write ahead log to replace the one of the active or standby write ahead logs that has failed; and

populating the new standby write ahead log with existing log entries in one of the active or standby write ahead logs that has not failed by copying the existing log entries from the one of the active or standby write ahead logs that has not failed to the new standby write ahead log based on when the existing log entries were stored in the one of the active or standby write ahead logs that has not failed,

wherein populating the new standby write ahead log includes copying the existing log entries in the one of the active or standby write ahead logs that has not failed to the new standby write ahead log in a plurality of groups of existing log entries in order from a latest group of existing log entries to an earliest group of existing log entries, wherein at least one of the groups of the plurality of groups comprises at least two log entries, and wherein existing log entries in each group are copied in order from an earliest existing log entry in that group to a latest existing log entry in that group.

2. The method of claim 1 , further comprising sending acknowledgement messages back to sources of the transaction requests only after the transaction requests have been written to both the active and standby write ahead logs.

3. The method of claim 2 , wherein the active write ahead log is stored in a first storage device of the storage system and the standby write ahead log is stored in a second storage device of the storage system.

4. The method of claim 1 , further comprising switching the standby write ahead log to function as a new active write ahead log when the active write ahead log has failed.

5. A non-transitory computer-readable storage medium containing program instructions for managing transaction requests to a data storage system, wherein execution of the program instructions by one or more processors of a computer system causes the one or more processors to perform steps comprising:

receiving transaction requests at the data storage system;

writing the transaction requests in an active write ahead log of the data storage system;

writing the transaction requests in a standby write ahead log of the data storage system;

applying the transaction requests in the active write ahead log to a storage data structure stored in a storage system of the data storage system, wherein writing the transaction requests in the active and standby write ahead logs are performed in parallel using a two-phase commit protocol; and

when one of the active or standby write ahead logs has faded:

creating a new standby write ahead log to replace the one of the active or standby write ahead logs that has faded; and

populating the new standby write ahead log with existing log entries in one of the active or standby write ahead logs that has not failed by copying the existing log entries from the one of the active or standby write ahead logs that has not faded to the new standby write ahead log based on when the existing log entries were stored in the one of the active or standby write ahead logs that has not failed,

wherein populating the new standby write ahead log includes copying the existing log entries in the one of the active or standby write ahead logs that has not faded to the new standby write ahead log in a plurality of groups of existing log entries in order from a latest group of existing log entries to an earnest group of existing log entries, wherein at least one of the groups of the plurality of groups comprises at least two log entries, and wherein existing log entries in each group are copied in order from an earliest existing log entry in that group to a latest existing log entry in that group.

6. The computer-readable storage medium of claim 5 , wherein the steps further comprise sending acknowledgement messages back to sources of the transaction requests only after the transaction requests have been written to both the active and standby write ahead logs.

7. The computer-readable storage medium of claim 6 , wherein the active write ahead log is stored in a first storage device of the storage system and the standby write ahead log is stored in a second storage device of the storage system.

8. The computer-readable storage medium of claim 5 , wherein the steps further comprise switching the standby write ahead log to function as a new active write ahead log when the active write ahead log has failed.

9. A data storage system comprising:

memory; and

a processor configured to:

receive transaction requests at the data storage system;

write the transaction requests in an active write ahead log of the data storage system;

write the transaction requests in a standby write ahead log of the data storage system;

apply the transaction requests in the active write ahead log to a storage data structure stored in a storage system of the data storage system, wherein the transaction requests are written in the active and standby write ahead logs in parallel by the processor using a two-phase commit protocol; and

when one of the active or standby write ahead logs has failed:

create a new standby write ahead log to replace the one of the active or standby write ahead logs that has failed; and

populate the new standby write ahead log with existing log entries in one of the active or standby write ahead logs that has not failed by copying the existing log entries from the one of the active or standby write ahead logs that has not failed to the new standby write ahead log based on when the existing log entries were stored in the one of the active or standby write ahead logs that has not failed,

wherein the processor is configured to populate the new standby write ahead log by copying the existing log entries in the one of the active or standby write ahead logs that has not failed to the new standby write ahead log in a plurality of groups of existing log entries in order from a latest group of existing log entries to an earnest group of existing log entries, wherein at least one of the groups of the plurality of groups comprises at least two log entries, and wherein existing log entries in each group are copied in order from an earliest existing log entry in that group to a latest existing log entry in that group.

10. The data storage system of claim 9 , wherein the processor is configured to send acknowledgement messages back to sources of the transaction requests only after the transaction requests have been written to both the active and standby write ahead logs.

11. The data storage system of claim 10 , wherein the active write ahead log is stored in a first storage device of the storage system and the standby write ahead log is stored in a second storage device of the storage system.

12. The data storage system of claim 9 , wherein the processor is configured to switch the standby write ahead log to function as a new active write ahead log when the active write ahead log has failed.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2018
From: GUPTA, ABHISHEK; SPILLANE, RICHARD P.; CHOWKSEY, KAPIL; JOHNSON, ROB; WANG, WENGUANG
To: VMWARE, INC.
Reel/Frame 046872/0817 →
Continuity (1)
Related Publication 20190188097A1 · Jun 20, 2019