IP Library Granted Patent US 12687963
Granted Patent B2
US 12687963 · App. 18/922,244 · Granted Jul 21, 2026

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 12687963
App. No.
18/922,244
Granted
Jul 21, 2026
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 (58)

1 . A system comprising:

a processor;

a non-transitory computer-readable medium storing instructions executable by the processor to perform operations comprising;

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

synchronizing, without using tracking metadata, an identified mapped address range in an address space of the target component with a corresponding unmapped address range in an address space of a source component by identifying unmapped address ranges from a current state of the address space of the source component, the identified unmapped address ranges including address ranges unmapped due to unmap I/O operations and address ranges that have not been written to.

2 . The system of claim 1 , wherein the operations further comprise:

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.

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 the operations further comprise:

obtaining, using an application program interface (API) of the source component, a set of mapped address ranges and a set of unmapped address ranges in the address space of the source component, using the stale LSN as input.

5 . The system of claim 4 , wherein the 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.

6 . The system of claim 1 , wherein the operations further comprise:

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.

7 . The system of claim 6 , 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.

8 . A computerized method comprising:

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

synchronizing, without using tracking metadata, an identified mapped address range in an address space of the target component with a corresponding unmapped address range in an address space of a source component by identifying unmapped address ranges from a current state of the address space of the source component, the identified unmapped address ranges including address ranges unmapped due to unmap I/O operations and address ranges that have not been written to.

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 , further comprising:

obtaining, using an application program interface (API) of the source component, a set of mapped address ranges and a set of unmapped address ranges in the address space of the source component, using the stale LSN as input.

12 . The method of claim 11 , wherein the 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.

13 . 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.

14 . The computerized method of claim 13 , 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.

15 . A non-transitory computer readable storage medium storing instructions executable by one or more processors to perform operations comprising:

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

synchronizing, without using tracking metadata, an identified mapped address range in an address space of the target component with a corresponding unmapped address range in an address space of a source component by identifying unmapped address ranges from a current state of the address space of the source component, the identified unmapped address ranges including address ranges unmapped due to unmap I/O operations and address ranges that have not been written to.

16 . The non-transitory computer readable storage medium of claim 15 , where the operations further comprise:

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.

17 . The non-transitory computer readable storage medium 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 non-transitory computer readable storage medium of claim 17 , wherein the operations further comprise:

obtaining, using an application program interface (API) of the source component, a set of mapped address ranges and a set of unmapped address ranges in the address space of the source component, using the stale LSN as input.

19 . The non-transitory computer readable storage medium of claim 15 , wherein the operations further comprise:

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.

20 . The non-transitory computer readable storage medium 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.