IP Library Granted Patent US 10,877,868
Granted Patent B2
US 10,877,868 · App. 16/138,083 · Granted Dec 29, 2020

Applying a log to storage segments

Inventors: Cristian Diaconu (Kirkland, WA); Alexander Budovski (Snohomish, WA); Alejandro Hernandez Saenz (Kirkland, WA); Naveen Prakash (Sammamish, WA); Krystyna Reisteter (Redmond, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F11/3476G06F11/1471G06F16/27H04L67/1097G06F2201/82
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,877,868
App. No.
16/138,083
Granted
Dec 29, 2020
Kind
B2
Abstract

Use of a log service computing system to apply a log to storage segments in the context of there being a primary compute system that operates upon data, and secondary compute system(s) that are at the ready to be promoted to the new primary compute system should the old primary compute system fail. Rather than have each of the primary and secondary compute systems maintain their own replicated of the entire data locally, the data is separated in storage segments that are collectively distributed amongst multiple storage segment servers.

Claims (39)

1. A computing system comprising:

one or more processors; and

one or more computer-readable storage media having thereon computer-execution instructions that are structured such that, when executed by the one or more processors, the computing system is caused to perform the following:

identify one or more log records to apply, the one or more log records including a particular log record that was logged by a primary compute system and that designates a particular write operation to a particular storage segment; and

in response to identifying the particular log record to apply, apply the particular log record by performing the following:

identifying a particular storage segment server that is assigned to a particular set of storage segments that includes the particular storage segment to be written to in the particular write operation;

causing the particular storage segment server to perform the particular write operation to the particular storage segment designated in the particular log record; and

causing a secondary compute system to perform the particular write operation on a cached copy of the storage segment stored within a cache of the secondary compute system, the secondary compute system being configured to be elevated to replace the primary compute system in the event that the primary compute system fails.

2. The computing system in accordance with claim 1 , the causing of the particular storage segment server to perform the particular write operation being performed in response to receiving a request from the particular storage segment server for the particular log record, the causing of the particular storage segment server to perform the particular write operation being performed by providing the particular log record to the particular storage segment server in response to the request from the particular storage segment server.

3. The computing system in accordance with claim 2 , the particular log record including a plurality of log records organized within a block, the particular log record being provided to the particular storage segment server by providing the block to the particular storage segment server.

4. The computing system in accordance with claim 1 , the particular log record being generated in response to a primary compute system reading the particular storage segment from the particular storage segment server, determining an incremental change to be made to the particular storage segment, making the incremental change to the copy of the particular storage segment, and identifying the incremental change and an identifier of the particular storage segment within the particular log record.

5. The computing system in accordance with claim 1 , the causing the particular storage segment server to perform the particular write operation to the particular storage segment occurring after confirming that the particular log record has been saved to a centralized log.

6. The computing system in accordance with claim 1 , the causing of the particular storage segment server to perform the particular write operation being performed in response to receiving a request from the secondary compute system for the particular log record, the causing of the secondary compute system to perform the particular write operation being performed by providing the particular log record to the secondary compute system in response to the request from the secondary compute system.

7. The computing system in accordance with claim 6 , the particular log record including a plurality of log records organized within a block, the particular log record being provided to the secondary compute system by providing the block to the secondary compute system.

8. The computing system in accordance with claim 1 , the causing the secondary compute system to perform the particular write operation occurring after confirming that the particular log record has been saved to a centralized log.

9. The computing system of claim 1 , wherein the one or more log records to apply are logged within a volume that is mounted to the primary compute system as a read and write volume while being mounted to the secondary compute system as a read-only volume.

10. A method for applying a log to storage segments, the method comprising:

identifying one or more log records to apply, the one or more log records including a particular log record that designates a particular write operation to a particular storage segment; and

in response to identifying the particular log record to apply, applying the particular log record by performing the following:

identifying a particular storage segment server that is assigned to a particular set of storage segments that includes the particular storage segment to be written to in the particular write operation;

refraining from causing the particular storage segment server to perform the particular write operation to the particular storage segment designated in the particular log record until after confirming that the particular log record has been saved to a centralized log; and

in response to determining that the particular log record has been saved to a centralized log, causing the particular storage segment server to perform the particular write operation to the particular storage segment designated in the particular log record.

11. The method in accordance with claim 10 , the particular log record being a first log record, the particular write operation being a first write operation, the particular storage segment being a first storage segment, the particular storage segment server being a first storage segment server, the particular set of storage segments being a first set of storage segments, the one or more log records further including a second log record that designates a second write operation to a second storage segment, the method further comprising:

identifying a second storage segment server that is assigned to a second set of storage segments that includes the second storage segment to be written to in the second write operation, the second storage segment server being different than the first storage segment server, the second set of storage segments being different than the first set of storage segments; and

causing the second storage segment server to perform the second write operation to the second storage segment designated in the second log record.

12. The method in accordance with claim 10 , the causing of the particular storage segment server to perform the particular write operation being performed in response to receiving a request from the particular storage segment server for the particular log record, the causing of the particular storage segment server to perform the particular write operation being performed by providing the particular log record to the particular storage segment server in response to the request from the particular storage segment server.

13. The method in accordance with claim 12 , the particular log record including a plurality of log records organized within a block, the particular log record being provided to the particular storage segment server by providing the block to the particular storage segment server.

14. The method in accordance with claim 10 , the particular log record being generated in response to a primary compute system reading the particular storage segment from the particular storage segment server, determining an incremental change to be made to the particular storage segment, making the incremental change to the copy of the particular storage segment, and identifying the incremental change and an identifier of the particular storage segment within the particular log record.

15. The method in accordance with claim 10 , the method further comprising the following in response to identifying the particular log record to apply:

causing a secondary compute system to perform the particular write operation, on a copy of the storage segment at the secondary compute system.

16. The method in accordance with claim 15 , the causing of the particular storage segment server to perform the particular write operation being performed in response to receiving a request from the secondary compute system for the particular log record, the causing of the secondary compute system to perform the particular write operation being performed by providing the particular log record to the secondary compute system in response to the request from the secondary compute system.

17. The method in accordance with claim 16 , the particular log record including a plurality of log records organized within a block, the particular log record being provided to the secondary compute system by providing the block to the secondary compute system.

18. The method in accordance with claim 15 , the causing the secondary compute system to perform the particular write operation occurring after confirming that the particular log record has been saved to a centralized log.

19. A computer program product comprising one or more hardware storage devices having thereon computer-executable instructions that are executable by one or more processors of a computing system to configure the computing system to perform the following:

identify one or more log records to apply, the one or more log records including a particular log record that designates a particular write operation to a particular storage segment; and

in response to identifying the particular log record to apply, apply the particular log record by performing the following:

identifying a particular storage segment server that is assigned to a particular set of storage segments that includes the particular storage segment to be written to in the particular write operation;

refraining from causing the particular storage segment server to perform the particular write operation to the particular storage segment designated in the particular log record until after confirming that the particular log record has been saved to a centralized log; and

in response to determining that the particular log record has been saved to a centralized log, causing the particular storage segment server to perform the particular write operation to the particular storage segment designated in the particular log record.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 27, 2018
From: DIACONU, CRISTIAN; BUDOVSKI, ALEXANDER; SAENZ, ALEJANDRO HERNANDEZ; PRAKASH, NAVEEN; REISTETER, KRYSTYNA
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 047862/0815 →
Continuity (1)
Related Publication 20200097384A1 · Mar 26, 2020
Cited By (2)
US 12,487,769 US 12,645,379