IP Library Granted Patent US 12,124,701
Granted Patent B2
US 12,124,701 · App. 18/159,656 · Granted Oct 22, 2024

Efficient unmap handling using synchronized redundant components of data objects

Inventors: Wenguang Wang (Santa Clara, CA); Eric Knauft (San Francisco, CA); Sudheer Thokala (Dublin, CA)
Assignee: VMware LLC
G06F3/061G06F3/0652G06F3/0679
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 12,124,701
App. No.
18/159,656
Granted
Oct 22, 2024
Kind
B2
Abstract

Components of a distributed data object are synchronized using streamlined tracking metadata. A target component of the distributed data object is detected as it becomes available and stale. A source component that is up-to-date and that mirrors the address space of the detected target component is identified. A set of mapped address ranges and a set of unmapped address ranges of the identified source component are obtained. A mapped address range of the target component that corresponds with an unmapped address range of the source component is identified. The identified mapped address range of the target component is then synchronized with the corresponding unmapped address range of the source component. Thus, unmapped address ranges are synchronized without using tracking metadata of the source component.

Claims (64)

1. A system comprising:

a processor; and

a memory comprising computer program code, the memory and the computer program code configured to cause the processor to:

detect that a target component of a distributed data object has become available and stale;

identify a source component of the distributed data object that is up-to-date and redundantly includes an address space of the detected target component;

obtain a set of mapped address ranges and a set of unmapped address ranges in an address space of the identified source component;

identify a mapped address range in the address space of the target component that corresponds to an unmapped address range in the address space of the source component using the determined set of unmapped address ranges; and

synchronize the identified mapped address range in the address space of the target component with the corresponding unmapped address range in the address space of the source component.

2. The system of claim 1 , wherein the memory and the computer program code are configured to, with the processor, further cause the processor to:

determine a stale time instant of the detected target component that indicates a time at which an I/O operation was last performed on the target component;

identify a write I/O operation that was performed on the source component after the stale time instant; and

perform the identified write I/O operation on the target component.

3. The system of claim 2 , wherein the stale time instant is tracked using a stale log sequence number (LSN), wherein each operation performed on the distributed data object is associated with an LSN that increments from an LSN of a previously performed operation.

4. The system of claim 3 , wherein obtaining the set of mapped address ranges and the set of unmapped address ranges in the address space of the identified source component is performed using an application program interface (API) of the source component with the stale LSN as input.

5. The system of claim 1 , wherein the memory and the computer program code are configured to, with the processor, further cause the processor to:

detect that the target component is unavailable;

receive a write I/O operation to be performed on the distributed data object, including the target component and the source component;

perform the write I/O operation on the source component;

record write I/O metadata of the performed write I/O operation in tracking metadata of the source component;

receive an unmap I/O operation to be performed on the distributed data object, including the target component and the source component; and

perform the unmap I/O operation on the source component, wherein metadata of the performed unmap I/O operation is not recorded in the tracking metadata of the source component.

6. The system of claim 5 , wherein performing the unmap I/O operation on the source component includes performing the unmap I/O operation as a full stripe erasure on the source component and at least one other available component of the distributed data object.

7. The system of claim 1 , wherein the determined set of unmapped address ranges include a first address range in which nothing has been written and a second address range that has been unmapped after data has been written to the second address range.

8. A computerized method comprising:

detecting a target component of a distributed data object has become available and stale;

identifying a source component of the distributed data object that is up-to-date and that redundantly includes an address space of the detected target component;

obtaining a set of mapped address ranges and a set of unmapped address ranges in an address space of the identified source component;

identifying a mapped address range in the address space of the target component that corresponds to an unmapped address range in the address space of the source component using the determined set of unmapped address ranges; and

synchronizing the identified mapped address range in the address space of the target component with the corresponding unmapped address range in the address space of the source component.

9. The computerized method of claim 8 , further comprising:

determining a stale time instant of the detected target component that indicates a time at which an I/O operation was last performed on the target component;

identifying a write I/O operation that was performed on the source component after the stale time instant; and

performing the identified write I/O operation on the target component.

10. The computerized method of claim 9 , wherein the stale time instant is tracked using a stale log sequence number (LSN), wherein each operation performed on the distributed data object is associated with an LSN that increments from an LSN of a previously performed operation.

11. The computerized method of claim 10 , wherein obtaining the set of mapped address ranges and the set of unmapped address ranges in the address space of the identified source component is performed using an application program interface (API) of the source component with the stale LSN as input.

12. The computerized method of claim 8 , further comprising:

detecting that the target component is unavailable;

receiving a write I/O operation to be performed on the distributed data object, including the target component and the source component;

performing the write I/O operation on the source component;

recording write I/O metadata of the performed write I/O operation in tracking metadata of the source component;

receiving an unmap I/O operation to be performed on the distributed data object, including the target component and the source component; and

performing the unmap I/O operation on the source component, wherein metadata of the performed unmap I/O operation is not recorded in the tracking metadata of the source component.

13. The computerized method of claim 12 , wherein performing the unmap I/O operation on the source component includes performing the unmap I/O operation as a full stripe erasure on the source component and at least one other available component of the distributed data object.

14. The computerized method of claim 8 , wherein the determined set of unmapped address ranges include a first address range in which nothing has been written and a second address range that has been unmapped after data has been written to the second address range.

15. One or more computer storage media having computer-executable instructions that, upon execution by a processor, cause the processor to at least:

detect a target component of a distributed data object has become available and stale;

identify a source component of the distributed data object that is up-to-date and that redundantly includes an address space of the detected target component;

obtain a set of mapped address ranges and a set of unmapped address ranges in an address space of the identified source component;

identify a mapped address range in the address space of the target component that corresponds to an unmapped address range in the address space of the source component using the determined set of unmapped address ranges; and

synchronize the identified mapped address range in the address space of the target component with the corresponding unmapped address range in the address space of the source component.

16. The one or more computer storage media of claim 15 , wherein the computer-executable instructions, upon execution by a processor, further cause the processor to at least:

determine a stale time instant of the detected target component that indicates a time at which an I/O operation was last performed on the target component;

identify a write I/O operation that was performed on the source component after the stale time instant; and

perform the identified write I/O operation on the target component.

17. The one or more computer storage media of claim 16 , wherein the stale time instant is tracked using a stale log sequence number (LSN), wherein each operation performed on the distributed data object is associated with an LSN that increments from an LSN of a previously performed operation.

18. The one or more computer storage media of claim 17 , wherein obtaining the set of mapped address ranges and the set of unmapped address ranges in the address space of the identified source component is performed using an application program interface (API) of the source component with the stale LSN as input.

19. The one or more computer storage media of claim 15 , wherein the computer-executable instructions, upon execution by a processor, further cause the processor to at least:

detect that the target component is unavailable;

receive a write I/O operation to be performed on the distributed data object, including the target component and the source component;

perform the write I/O operation on the source component;

record write I/O metadata of the performed write I/O operation in tracking metadata of the source component;

receive an unmap I/O operation to be performed on the distributed data object, including the target component and the source component; and

perform the unmap I/O operation on the source component, wherein metadata of the performed unmap I/O operation is not recorded in the tracking metadata of the source component.

20. The one or more computer storage media of claim 19 , wherein performing the unmap I/O operation on the source component includes performing the unmap I/O operation as a full stripe erasure on the source component and at least one other available component of the distributed data object.

Assignments (2)
CHANGE OF NAME Recorded May 8, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067355/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2023
From: WANG, WENGUANG; KNAUFT, ERIC; THOKALA, SUDHEER
To: VMWARE, INC.
Reel/Frame 062489/0458 →