US 11,947,827 B2
Synchronizing a stale component of a distributed object using a delta component during maintenance
Eric Knauft, San Francisco, CA (US); Enning Xiang, San Jose, CA (US); Mansi Shah, San Jose, CA (US); Pascal Renauld, Palo Alto, CA (US); Yiqi Xu, Redwood City, CA (US); Ojan Thornycroft, Los Altos, CA (US); Pratik Desai, San Jose, CA (US); Zhihao Yao, Cupertino, CA (US); and Yizhou Luo, Mountain View, CA (US)
Assigned to VMware, Inc., Palo Alto, CA (US)
Filed by VMware, Inc., Palo Alto, CA (US)
Filed on May 15, 2020, as Appl. No. 16/875,624.
Prior Publication US 2021/0357122 A1, Nov. 18, 2021
Int. Cl. G06F 3/06 (2006.01)
CPC G06F 3/065 (2013.01) [G06F 3/0617 (2013.01); G06F 3/0689 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A method for enhancing data durability of a base component using a temporary component and a mirrored component, the method comprising:
copying, by the mirrored component, all write operations directed to the base component to the mirrored component;
generating, by a processor, a temporary component based on the base component becoming unavailable, wherein the temporary component is configured to include blank storage space with an address space matching an address space of the base component and a tracking component that includes a plurality of bits associated with data blocks of the address space of the temporary component;
routing, by the processor, a write operation targeted for the base component to the temporary component, and the mirrored component;
based on routing the write operation targeted for the base component to the temporary component and the mirrored component, writing data associated with the write operation to (i) a data block of the data blocks of the address space of the temporary component and (ii) the mirrored component;
based on writing the data to the data block of the temporary component, changing, by the processor, a bit associated with the data block in the tracking component;
based on detecting the base component becoming available, selecting the temporary component over the mirrored component as a source for synchronizing the base component to include the data associated with the write operation that was routed to the temporary component and the mirrored component while the base component was unavailable;
estimating, by the processor, a synchronization workload using the tracking component;
filtering out unwritten portions of the synchronization workload from the temporary component, the filtering out leaving written portions of the synchronization workload in the temporary component; and
copying data of the written portions of the synchronization workload from the temporary component to the base component.