Patents by Inventor Enning XIANG

Enning XIANG has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 11507411
    Abstract: A method of ensuring atomicity of transactions across a plurality of active hosts in a distributed environment, is provided. The method generally includes receiving, from a client, a second request to commit a second transaction subsequent to receiving a first request to commit a first transaction; assigning a second prepare identifier (ID) to the second transaction, wherein the second prepare ID assigned to the second transaction is greater than a first prepare ID assigned to the first transaction; transmitting, to the plurality of active hosts, instructions to prepare for committing the second transaction, the instructions including the second prepare ID; receiving, from each host, an acknowledgement indicating successful preparation for committing the second transaction; and transmitting, to the plurality of active hosts, instructions to commit the second transaction prior to receiving, from each host, an acknowledgement indicating successful preparation for committing the first transaction.
    Type: Grant
    Filed: July 22, 2021
    Date of Patent: November 22, 2022
    Assignee: VMware, Inc.
    Inventors: Enning Xiang, Yiqi Xu
  • Patent number: 11494083
    Abstract: The disclosure herein describes performing resynchronization (“resync”) jobs in a distributed storage system based on a parallelism policy. A resync job is obtained from a queue and input/output (I/O) resources that will be used during execution of the resync job are identified. Available bandwidth slots of each I/O resource of the identified I/O resources are determined. The parallelism policy is applied to the identified I/O resources and the available bandwidth slots. Based on the application of the parallelism policy, a bottleneck resource of the I/O resources is determined and a parallel I/O value is calculated based on the available bandwidth slots of the bottleneck resource, wherein the parallel I/O value indicates a quantity of I/O tasks that can be performed in parallel. The resync job is executed using the I/O resources, the execution of the resync job including performance of I/O tasks in parallel based on the parallel I/O value.
    Type: Grant
    Filed: July 5, 2019
    Date of Patent: November 8, 2022
    Assignee: VMware, Inc.
    Inventors: Yiqi Xu, Enning Xiang, Eric Knauft, Pascal Renauld
  • Patent number: 11487456
    Abstract: A method for updating block addresses is provided. The method includes overwriting content of a first data block referenced by a first logical block address (LBA) with updated content. Prior to overwriting, the content of the first data block is stored in a first physical block corresponding to a first physical block address (PBA), a logical map maps the first LBA to a first middle block address (MBA), and a middle map maps the first MBA to the first PBA. After overwriting, the updated content of the first data block is stored in a second physical block corresponding to a second PBA and, in response to the overwriting, the middle map is updated to map the first MBA to the second PBA instead of the first PBA.
    Type: Grant
    Filed: April 23, 2021
    Date of Patent: November 1, 2022
    Assignee: VMWARE, INC.
    Inventors: Enning Xiang, Wenguang Wang
  • Publication number: 20220342543
    Abstract: A method for block addressing is provided. The method includes moving content of a data block referenced by a logical block address (LBA) from a first physical block corresponding to a first physical block address (PBA) to a second physical block corresponding to a second PBA, wherein prior to the moving a logical map maps the LBA to a middle block address (MBA) and a middle map maps the MBA to the first PBA and in response to the moving, updating the middle map to map the MBA to the second PBA instead of the first PBA.
    Type: Application
    Filed: April 23, 2021
    Publication date: October 27, 2022
    Inventors: Enning XIANG, Wenguang WANG
  • Publication number: 20220342575
    Abstract: A method for updating block addresses is provided. The method includes overwriting content of a first data block referenced by a first logical block address (LBA) with updated content. Prior to overwriting, the content of the first data block is stored in a first physical block corresponding to a first physical block address (PBA), a logical map maps the first LBA to a first middle block address (MBA), and a middle map maps the first MBA to the first PBA. After overwriting, the updated content of the first data block is stored in a second physical block corresponding to a second PBA and, in response to the overwriting, the middle map is updated to map the first MBA to the second PBA instead of the first PBA.
    Type: Application
    Filed: April 23, 2021
    Publication date: October 27, 2022
    Inventors: Enning XIANG, Wenguang WANG
  • Patent number: 11481140
    Abstract: Techniques for implementing dynamic base disk mirroring for linked clones are provided. In one set of embodiments, a first node in a distributed storage system can monitor a congestion level of a base disk residing on the first node, where the base disk is shared by a plurality of linked clones. Upon determining that the congestion level exceeds a threshold, the first node can send, to a second node, a request to create a mirror of the base disk on that second node. Upon receiving an acknowledgement from the second node that the mirror has been successfully created, the first node can update a mirror set associated with the base disk to include an entry identifying the mirror. The first node can then communicate the updated mirror set to one or more other nodes.
    Type: Grant
    Filed: April 5, 2021
    Date of Patent: October 25, 2022
    Assignee: VMWARE INC.
    Inventors: Jyothir Ramanan, Matthew B Amdur, Wenguang Wang, Enning Xiang
  • Publication number: 20220317883
    Abstract: Techniques for implementing dynamic base disk mirroring for linked clones are provided. In one set of embodiments, a first node in a distributed storage system can monitor a congestion level of a base disk residing on the first node, where the base disk is shared by a plurality of linked clones. Upon determining that the congestion level exceeds a threshold, the first node can send, to a second node, a request to create a mirror of the base disk on that second node. Upon receiving an acknowledgement from the second node that the mirror has been successfully created, the first node can update a mirror set associated with the base disk to include an entry identifying the mirror. The first node can then communicate the updated mirror set to one or more other nodes.
    Type: Application
    Filed: April 5, 2021
    Publication date: October 6, 2022
    Inventors: Jyothir Ramanan, Matthew B. Amdur, Wenguang Wang, Enning Xiang
  • Patent number: 11455255
    Abstract: Techniques for improving the read performance of an LFS-based storage system that supports COW snapshotting are provided. In one set of embodiments, the storage system can implement an intermediate map for each storage object in the system that is keyed by a composite key consisting of snapshot identifier (major key) and LBA (minor key). With this approach, contiguous logical block addresses (LBAs) of a storage object or its snapshots will map to contiguous <Snapshot ID, LBA>-to-PBA mappings in the storage object's intermediate map, resulting in good spatial locality for those LBAs and robust read performance.
    Type: Grant
    Filed: May 24, 2021
    Date of Patent: September 27, 2022
    Assignee: VMware, Inc.
    Inventors: Abhay Kumar Jain, Sriram Patil, Wenguang Wang, Enning Xiang, Asit A. Desai
  • Patent number: 11429498
    Abstract: Methods, systems, and apparatus, including computer programs encoded on computer storage media, for resynchronizing data in a storage system. One of the methods includes determining that a particular disk of a capacity object of a storage system was offline for an interval of time, wherein the capacity object comprises a plurality of segments, and wherein the storage system comprises a segment usage table identifying a linked list of particular segments of the capacity object that are in use; determining a time point at which the particular disk went offline; determining one or more first segments of the capacity object that were modified after the time point, wherein determining one or more first segments comprises determining each segment of the segment usage table having a transaction ID that is larger than the time point; and resynchronizing, for each first segment, a portion of the particular disk corresponding to the first segment.
    Type: Grant
    Filed: May 8, 2020
    Date of Patent: August 30, 2022
    Assignee: VMware, Inc.
    Inventors: Wenguang Wang, Vamsi Gunturu, Enning Xiang, Eric Knauft
  • Patent number: 11422904
    Abstract: The disclosure herein describes placing delta components of a base component in target fault domains. One or more delta components are generated. When a first fault domain that lacks a sibling component of the base component is identified, the first fault domain is selected as a single delta target fault domain and a single delta component is placed on the single delta target fault domain. When a second fault domain that includes a first sibling component of the base component is identified and a third fault domain that includes a second sibling component of the base component is identified, the second fault domain and the third fault domain are selected as a first double delta target fault domain and a second double delta target fault domain, and a first double delta component and a second double delta component are placed on the first and second double delta target fault domains.
    Type: Grant
    Filed: November 27, 2020
    Date of Patent: August 23, 2022
    Assignee: VMware, Inc.
    Inventors: Enning Xiang, Ojan Thornycroft, Varun Shah, Eric Knauft, Asit Desai, Yiqi Xu
  • Patent number: 11403189
    Abstract: Methods, systems, and apparatus, including computer programs encoded on computer storage media, for resynchronizing data in a storage system. One of the methods includes determining that a particular primary disk of a capacity object of a storage system has failed, wherein the capacity comprises a plurality of segments, and wherein the each segment comprises: a plurality of primary columns each corresponding to a respective primary disk of the capacity object, and a plurality of parity columns each corresponding to a respective parity disk of the capacity object; and resynchronizing, for each segment of one or more segments of the capacity object, the primary column of the segment corresponding to the particular primary disk using i) the primary columns of the segment corresponding to each other primary disk of the capacity object, ii) one or more parity columns of the segment, and iii) the column summaries of the segment.
    Type: Grant
    Filed: May 8, 2020
    Date of Patent: August 2, 2022
    Assignee: VMware, Inc.
    Inventors: Wenguang Wang, Enning Xiang, Vamsi Gunturu, Eric Knauft, Pascal Renauld
  • Patent number: 11403143
    Abstract: An efficient scheduling of IOs in a computing system using dynamic bandwidth regulation includes building up a shared regulator to limit the total IOPS scheduling among all IO classes at any given time. Reserved regulators may be used to place limits on the IOPS scheduled for a particular IO class at any given time. An outstanding IO window may also limit the overall number of outstanding IOs, and/or the bytes of outstanding IOs at any particular time. A first stage of IO scheduling may involve enforcing the reserved regulators to limit the IOPS scheduled for particular IO classes. A second stage of IO scheduling may involve enforcing the shared regulator to limit the total IOPS scheduled for all IO classes.
    Type: Grant
    Filed: December 4, 2020
    Date of Patent: August 2, 2022
    Assignee: VMware, Inc.
    Inventors: Enning Xiang, Eric Shannon Knauft, Pascal Renauld, Yiqi Xu
  • Publication number: 20220179710
    Abstract: An efficient scheduling of IOs in a computing system using dynamic bandwidth regulation includes building up a shared regulator to limit the total IOPS scheduling among all IO classes at any given time. Reserved regulators may be used to place limits on the IOPS scheduled for a particular IO class at any given time. An outstanding IO window may also limit the overall number of outstanding IOs, and/or the bytes of outstanding IOs at any particular time. A first stage of IO scheduling may involve enforcing the reserved regulators to limit the IOPS scheduled for particular IO classes. A second stage of IO scheduling may involve enforcing the shared regulator to limit the total IOPS scheduled for all IO classes.
    Type: Application
    Filed: December 4, 2020
    Publication date: June 9, 2022
    Applicant: VMware, Inc.
    Inventors: Enning XIANG, Eric Shannon KNAUFT, Pascal RENAULD, Yiqi XU
  • Publication number: 20220171739
    Abstract: Hybrid synchronization using a shadow component includes detecting a first component of a plurality of mirrored components of a distributed data object becoming unavailable. The mirrored components include a delta component (a special shadow component) and a regular mirror (shadow) component. The delta component indicates a shorter history of changes to data blocks of a log-structured file system (LFS) than is indicated by the regular mirror component. During the unavailability of the first component, at least one write I/O is committed by the delta component. The commit is tracked by the delta component in a first tracking bitmap associated with the delta component. Based at least on detecting the first component becoming available, the first component is synchronized with data from the delta component, based at least on changed data blocks indicated in the first tracking bitmap.
    Type: Application
    Filed: November 27, 2020
    Publication date: June 2, 2022
    Inventors: Enning XIANG, Eric KNAUFT, Pascal RENAULD, Yiqi XU, Pratik DESAI, Yizhou LUO
  • Publication number: 20220171685
    Abstract: The disclosure herein describes placing delta components of a base component in target fault domains. One or more delta components are generated. When a first fault domain that lacks a sibling component of the base component is identified, the first fault domain is selected as a single delta target fault domain and a single delta component is placed on the single delta target fault domain. When a second fault domain that includes a first sibling component of the base component is identified and a third fault domain that includes a second sibling component of the base component is identified, the second fault domain and the third fault domain are selected as a first double delta target fault domain and a second double delta target fault domain, and a first double delta component and a second double delta component are placed on the first and second double delta target fault domains.
    Type: Application
    Filed: November 27, 2020
    Publication date: June 2, 2022
    Inventors: Enning XIANG, Ojan THORNYCROFT, Varun SHAH, Eric KNAUFT, Asit DESAI, Yiqi XU
  • Patent number: 11327841
    Abstract: The disclosure herein describes placing a delta component of a base component in a target fault domain. A delta component associated with a base component is generated. The generation includes selecting a first fault domain as a target fault domain for the delta component based on the first fault domain including a witness component associated with the distributed data object of the base component. Otherwise, the generation includes selecting a second fault domain as the target fault domain based on the second fault domain including at least one data component that includes a different address space than the base component. Otherwise, the generation includes selecting a third fault domain as the target fault domain based on the third fault domain being unused. Then, the delta component is placed on the target fault domain, whereby data durability of the distributed data object is enhanced, and available fault domains are preserved.
    Type: Grant
    Filed: May 15, 2020
    Date of Patent: May 10, 2022
    Assignee: VMware, Inc.
    Inventors: Enning Xiang, Ojan Thornycroft, Yiqi Xu, Zhihao Yao, Eric Knauft
  • Patent number: 11256583
    Abstract: In one set of embodiments, a storage system can execute a repair process for a first component of a file or object stored on the storage system, where the repair process is initiated in response to the first component becoming inaccessible by the storage system, and where the file or object is split across a plurality of components including the first component. The executing can include, for each chunk in an address space of the first component starting from an initial chunk pointed to by a cursor: (1) determining whether the chunk is mapped to the first component, (2) if the chunk is mapped to the first component, copying data for the chunk from a mirror copy of the first component to a second component in the plurality of components, and (3) updating the cursor to point to a next chunk in the address space.
    Type: Grant
    Filed: May 13, 2019
    Date of Patent: February 22, 2022
    Assignee: VMWARE, INC.
    Inventors: Ruocheng Li, Enning Xiang, Eric Knauft, Pascal Renauld
  • Patent number: 11249914
    Abstract: An in-memory cache for a computer system having a first storage and a second storage where the first storage is a cache for the second storage, tracks priority levels of block attributes stored therein. If a data item is cached in the first storage, the block attribute corresponding to the data item is stored in the in-memory cache as a high priority block attribute. If a data item evicted from the first storage, the block attribute corresponding to the data item is stored in the in-memory cache as a low priority block attribute. When the cache becomes full, the low priority block attributes are evicted before the high priority block attributes.
    Type: Grant
    Filed: April 12, 2016
    Date of Patent: February 15, 2022
    Assignee: VMware, Inc.
    Inventors: Wenguang Wang, Enning Xiang
  • Publication number: 20210374155
    Abstract: The disclosure herein describes tracking changes to a stale component using a synchronization bitmap. A first component of a plurality of mirrored components of the distributed data object becomes available from an unavailable state, and a stale log sequence number (LSN) and a last committed LSN are identified. A synchronization bitmap of the first component associated with a range of LSNs (e.g., from the stale LSN to the last committed LSN) is created and configured to track changes to data blocks of the first component. A second component is identified based on the second component including a tracking bitmap associated with an LSN that matches the stale LSN of the first component. The first component is synchronized with data from the second component based on, wherein the synchronizing includes updating the synchronization bitmap to track changes made to data blocks of the first component.
    Type: Application
    Filed: May 29, 2020
    Publication date: December 2, 2021
    Inventors: Enning XIANG, Pascal RENAULD, Sandeep RANGASWAMY, Xin LI, Yiqi XU, Venkata RAMANAN
  • Patent number: 11182250
    Abstract: Methods, systems, and apparatus, including computer programs encoded on computer storage media, for resynchronizing data in a storage system. One of the methods includes determining that a particular disk of a capacity object of a storage system is out-of-sync and that a primary disk is unavailable; and for each segment of one or more segments of the capacity object: generating a first version of the column of the segment corresponding to the unavailable primary disk; determining whether the data integrity token in the column summary of the generated first version is valid; and in response to determining that the data integrity token is valid, resynchronizing the column of the segment corresponding to the particular disk using i) the primary columns of the segment corresponding to each available primary disk and ii) the first version of the column of the segment corresponding to the unavailable primary disk.
    Type: Grant
    Filed: July 2, 2020
    Date of Patent: November 23, 2021
    Assignee: VMware, Inc.
    Inventors: Enning Xiang, Wenguang Wang, Vamsi Gunturu