US 12,481,569 B2
Dynamic storage resiliency
Taylor Alan Hope, Redmond, WA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Appl. No. 18/726,315
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
PCT Filed Dec. 20, 2022, PCT No. PCT/US2022/082052
§ 371(c)(1), (2) Date Jul. 2, 2024,
PCT Pub. No. WO2023/133038, PCT Pub. Date Jul. 13, 2023.
Claims priority of application No. LU501203 (LU), filed on Jan. 4, 2022.
Prior Publication US 2025/0068527 A1, Feb. 27, 2025
Int. Cl. G06F 11/20 (2006.01)
CPC G06F 11/2094 (2013.01) [G06F 2201/805 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computer system comprising:
one or more processors; and
one or more computer system-readable hardware storage devices having stored thereon computer system-executable instructions that are structured such that when the computer system-executable instructions are executed by the one or more processors, the computer system is configured to:
provision a plurality of storage volumes at a plurality of fault domains;
thinly provision a plurality of cache volumes at the plurality of fault domains;
perform a write operation in a resilient manner that maintains a plurality of copies of data associated with the write operation, performing the write operation in the resilient manner comprising, for each fault domain in the plurality of fault domains:
allocating a portion of storage in a cache volume at a fault domain;
caching the data associated with the write operation in the portion of storage in the cache volume at the fault domain;
persistently storing the data that is cached in the cache volume in a storage volume at the fault domain; and
after persistently storing the data, deallocating the portion of storage in the cache volume at the fault domain;
in response to determining that at least one fault domain in the plurality of fault domains is unavailable,
allocate an extra portion of storage in a cache volume at an available fault domain; and
cache an extra copy of the data associated with the write operation in the extra portion of storage in the cache volume; and
in response to determining that the at least one fault domain becomes available,
persistently store the data cached in the extra portion of storage of the cache volume in a storage volume at the at least one fault domain; and
deallocate the extra portion of storage in the cache volume.