IP Library › Granted Patent US 10,664,346
Granted Patent B2
US 10,664,346 · App. 15/984,135 · Granted May 26, 2020

Parity log with by-pass

Inventors: Karan Mehra (Sammamish, WA); Sachin Patel (Bellevue, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F11/1076G06F3/0619G06F3/0659G06F3/0673
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,664,346
App. No.
15/984,135
Granted
May 26, 2020
Kind
B2
Abstract

In a parity-based redundancy scheme, allocation information indicative of free and allocated portions of storage is accessed. In response to a request for a write operation, when the write request shares its parity with a non-free portion of the storage, a record of writes to the storage is updated to include the requested write and associated parity. The parity is updated with the requested write, and the write request is executed. When the write request shares its parity with a free portion of the storage or the write request spans all portions of storage that shares the parity, the write request is allowed to be executed in the free portion of the storage without updating the record.

Claims (37)

1. A computer-implemented method for performing a memory operation in a computing system where a parity-based redundancy scheme is implemented, the method comprising:

accessing information indicative of a free portion of storage and of an allocated portion of the storage;

in response to a request for a write operation, determining if the write operation is to be paired with the free portion of the storage or paired with the allocated portion of the storage when generating a parity;

in an event the write operation is determined to be paired with the allocated portion of the storage;

updating a record of writes to the free portion of the storage or the allocated portion of the storage to include a requested write;

updating the parity with the requested write; and

allowing the request for the write operation to be executed;

in an event the write operation is determined to be paired with the free portion of the storage;

allowing the request for the write operation to be executed in the free portion of the storage without updating the record of writes; and

updating the parity based on the requested write without updating the record of writes.

2. The computer-implemented method of claim 1 , wherein the information is stored in the record of writes.

3. The computer-implemented method of claim 1 , wherein the updating the record of writes comprises executing a flush to persistently store an update so that the requested write and associated parity can be recovered in response to an interruption of the requested write.

4. The computer-implemented method of claim 3 , wherein the parity comprises an exclusive-OR operation of data stored in two or more storage devices.

5. The computer-implemented method of claim 1 , further comprising in response to a power interruption, accessing the record of writes and synchronizing the parity with stored data.

6. The computer-implemented method of claim 1 , wherein the method is implemented in a virtualized computing environment.

7. The computer-implemented method of claim 2 , further comprising updating the information stored in the record of writes as free and allocated information becomes available.

8. A computing device configured to implement a parity-based redundancy scheme, the computing device comprising:

one or more processors;

a memory in communication with the one or more processors, the memory having computer-readable instructions stored thereupon which, when executed by the one or more processors, cause the computing device perform operations comprising:

accessing information indicative of a free portion of storage and of an allocated portion of the storage;

in response to a request for a write operation, determining that the write operation is to be paired with the free portion of the storage rather than the allocated portion of the storage when generating a parity:

based on the write operation being determined to be paired with the free portion of the storage, allowing a write request to be executed in the free portion of the storage without updating a log; and

updating the parity based on a requested write without updating the log.

9. The computing device of claim 8 , wherein the parity comprises an exclusive-OR of data stored on two or more storage devices.

10. The computing device of claim 8 , further comprising computer-readable instructions which, when executed by the one or more processors, cause the computing device perform operations comprising: in response to a power interruption, accessing the log and synchronizing the parity with stored data.

11. The computing device of claim 8 , wherein the write operation does not cause an update to the parity based at least in part due to the parity being associated with free portions of storage.

12. The computing device of claim 8 , wherein an amount of data to be backed by the parity of a parity function is configurable.

13. The computing device of claim 12 , wherein an additional amount of data is configured to be back up using a mirroring backup scheme.

14. A non-transitory computer-readable storage medium having stored thereon computer-readable instructions stored thereupon which, when executed by one or more processors of a computing device, cause the computing device to perform operations comprising:

accessing information indicative of a free portion of storage and of an allocated portion of the storage;

in response to a request for a write operation, determining that the write operation is to be paired with the free portion of the storage rather than the allocated portion of the storage when generating a parity:

based on the write operation being determined to be paired with the free portion of the storage, allowing a write request to be executed in the free portion of the storage without updating a log; and

updating the parity based on a requested write without updating the log.

15. The non-transitory computer-readable storage medium of claim 14 , further comprising computer-readable instructions stored thereupon which, when executed by the one or more processors of the computing device, cause the computing device to perform operations comprising:

in response to an interruption to execution of the write request, accessing the log to determine if the write request should be replayed.

16. The non-transitory computer-readable storage medium of claim 14 , wherein the write request is further allowed to be executed without updating the log when the write request spans all portions of storage that shares the parity.

17. The non-transitory computer-readable storage medium of claim 15 , further comprising determining that the write request has a parity backup associated with an allocated portion of storage based at least in part on storage allocation information.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2018
From: MEHRA, KARAN; PATEL, SACHIN
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 045849/0590 →
Continuity (1)
Related Publication 20190354433A1 · Nov 21, 2019
Cited By (1)
US 12,386,565