Patents by Inventor Zichen SUN

Zichen SUN 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).

  • Publication number: 20220164323
    Abstract: A distributed storage system includes table controllers collectively storing partitions of a logical table having multiple rows. For each of the partitions, a corresponding table controller stores a subset of the rows of the logical table across individual pages. A management controller updates a schema of the logical table from a first to a second schema definition by, for each of the partitions, sending an update command indicating the second schema definition to the corresponding table controller. The first table controller corresponds to a first partition that includes a first subset of the rows. The first table controller, prior to receiving the update command, includes an identifier of the first schema definition within each page of data for the first subset. Subsequent to receiving the update command, the first table controller, when writing each new page of data for the first subset, includes an identifier of the second schema definition.
    Type: Application
    Filed: January 3, 2022
    Publication date: May 26, 2022
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Krishnan VARADARAJAN, Jianwu GAO, Jegan DEVARAJU, Shane MAINALI, Zichen SUN, Quan ZHANG, Venkates Paramasivam BALAKRISHNAN, Shaoyu ZHANG, Kaifeng ZHU, Ju WANG, Manish CHABLANI, Hao FENG
  • Patent number: 11297031
    Abstract: A service enables a command that refers to a file system object using a hierarchical namespace identifier to be executed against the file system object in a flat namespace. The service selectively distributes the command to one of a plurality of name resolution nodes based on a directory name included in the hierarchical namespace identifier. The identified node resolves the directory name to a flat namespace identifier that is used to execute the command against the flat namespace. After communicating with at least one storage node to resolve a directory name, each name resolution node stores a mapping of the directory name to the corresponding flat namespace identifier in a cache, so that subsequent resolutions of that directory name may be performed more efficiently. Cache entries may be invalidated when an operation occurs that impacts the relevant mapping and/or based on system considerations such as cache expiry.
    Type: Grant
    Filed: July 6, 2020
    Date of Patent: April 5, 2022
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Georgi M. Chalakov, Shane Kumar Mainali, Thomas Leo Marquardt, Zichen Sun, Maneesh Sah, Esfandiar Manii, Saurabh Pant, Dana Yulian Kaban, Saher B. Ahwal, Jun Chen, Da Zhou, Amit Pratap Singh, Junhua Gu, Shaoyu Zhang, Wei Chen, Jingchao Zhang, Quan Zhang, Arild Einar Skjoldsvold
  • Patent number: 11249961
    Abstract: A distributed storage system includes table controllers collectively storing partitions of a logical table having multiple rows. For each of the partitions, a corresponding table controller stores a subset of the rows of the logical table across individual pages. A management controller updates a schema of the logical table from a first to a second schema definition by, for each of the partitions, sending an update command indicating the second schema definition to the corresponding table controller. The first table controller corresponds to a first partition that includes a first subset of the rows. The first table controller, prior to receiving the update command, includes an identifier of the first schema definition within each page of data for the first subset. Subsequent to receiving the update command, the first table controller, when writing each new page of data for the first subset, includes an identifier of the second schema definition.
    Type: Grant
    Filed: June 30, 2017
    Date of Patent: February 15, 2022
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Krishnan Varadarajan, Jianwu Gao, Jegan Devaraju, Shane Mainali, Zichen Sun, Quan Zhang, Venkates Paramasivam Balakrishnan, Shaoyu Zhang, Kaifeng Zhu, Ju Wang, Manish Chablani, Hao Feng
  • Patent number: 11010401
    Abstract: A snapshot of data from a table associated with a particular user may be generated. Tree data structures that are distributed across multiple computer systems may be accessed. Each of the tree structures may include data associated with one or more users. At least one tree data structure of the tree data structures that includes data associated with the particular user of the one or more users may be identified. The at least one tree data structure may then be filtered. Filtering may comprise identifying only data that is associated with the particular user. A snapshot of the data associated with the particular user may be generated. Generating the snapshot of the data associated with the particular user comprises generating a data structure that is configured to map to each data page of the at least one tree data structure that includes data associated with the particular user.
    Type: Grant
    Filed: April 25, 2017
    Date of Patent: May 18, 2021
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Venkates Paramasivam Balakrishnan, Krishnan Varadarajan, Maneesh Sah, Jegan Devaraju, Advait Kumar Mishra, Zichen Sun, Shane Kumar Mainali
  • Patent number: 10901796
    Abstract: In various embodiments, methods and systems for implementing hash-based partitioning in distributed computing systems are provided. At a high level, a distributed computing system having an underlying range-based partitioning architecture for storage may be configured as a hash-based partitioning system, for example, a hybrid range-hash table storage. An operations engine of the hash-based partitioning system receives a tenant request to provision input/output operations per second (IOPS). The tenant request comprises a requested number of IOPS. Based on the tenant request, a provisioning operation to provision IOPS in a hybrid range-hash table storage with hash-based partitioning is determined. The provisioning operation is selected from one of the following: a table creation provisioning operation, an IOPS increase provisioning operation, and an IOPS decrease provisioning operation. The selected provisioning operation is executed for a corresponding table.
    Type: Grant
    Filed: June 29, 2018
    Date of Patent: January 26, 2021
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Shane Mainali, Georgi M. Chalakov, Maneesh Sah, Zichen Sun, Michael E. Roberson, Andrew J. Edwards, Jegan Devaraju, Krishnan Varadarajan
  • Patent number: 10831720
    Abstract: Methods, systems, and computer programs are presented for providing file system functions on a cloud storage system based on blob storage. A cloud storage system comprises storage clusters, and each storage cluster comprises a plurality of storage nodes (each including a partition layer that stores data in blobs organized within containers, and a stream layer for streaming blob data), a hierarchical namespace service for implementing file system functions on the data stored in the blobs and, a front end layer for processing user requests to access and manage data stored on the blobs. The file system functions include flat namespace functions and hierarchical namespace functions. Further, the front end layer accesses the partition layer to access the blobs based on addresses of blobs and accesses the hierarchical namespace service to identify the blobs.
    Type: Grant
    Filed: June 26, 2018
    Date of Patent: November 10, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Shane Kumar Mainali, Thomas Leo Marquardt, Zichen Sun, Georgi Chalakov, Maneesh Sah, Esfandiar Manii, Saurabh Pant, Dana Yulian Kaban, Saher B. Ahwal, Jun Chen, Da Zhou, Amit Pratap Singh, Junhua Gu, Shaoyu Zhang, Wei Chen
  • Patent number: 10817498
    Abstract: Methods, systems, and programs provide for executing distributed transactions in a cloud storage system with a hierarchical namespace. One method includes receiving a request with operations to be executed atomically. Further, nodes are identified for executing the operations, each node having a respective clock and having at least part of a transactions table for controlling updates to entities. Each clock is one of a loosely-synchronized, a strictly-synchronized clock, a logical, or a physical clock. Additionally, the nodes process the operations, which includes setting a commit timestamp (CS) to a value of the clock in the node if the node is a first node in the processing. One node coordinates the transactions, and may be one of the nodes executing transactions. If the clock in the node is less than a current value of the CS, the node waits for the clock to reach the current value of the CS and the CS is updated.
    Type: Grant
    Filed: June 26, 2018
    Date of Patent: October 27, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Georgi Chalakov, Shane Kumar Mainali, Thomas Leo Marquardt, Zichen Sun, Maneesh Sah, Wei Chen, Dana Yulian Kaban, Saher B. Ahwal, Shaoyu Zhang, Jingchao Zhang, Quan Zhang, Jun Chen, Esfandiar Manii, Saurabh Pant, Da Zhou, Amit Pratap Singh, Junhua Gu
  • Publication number: 20200336455
    Abstract: A service enables a command that refers to a file system object using a hierarchical namespace identifier to be executed against the file system object in a flat namespace. The service selectively distributes the command to one of a plurality of name resolution nodes based on a directory name included in the hierarchical namespace identifier. The identified node resolves the directory name to a flat namespace identifier that is used to execute the command against the flat namespace. After communicating with at least one storage node to resolve a directory name, each name resolution node stores a mapping of the directory name to the corresponding flat namespace identifier in a cache, so that subsequent resolutions of that directory name may be performed more efficiently. Cache entries may be invalidated when an operation occurs that impacts the relevant mapping and/or based on system considerations such as cache expiry.
    Type: Application
    Filed: July 6, 2020
    Publication date: October 22, 2020
    Inventors: Georgi M. Chalakov, Shane Kumar Mainali, Thomas Leo Marquardt, Zichen Sun, Maneesh Sah, Esfandiar Manii, Saurabh Pant, Dana Yulian Kaban, Saher B. Ahwal, Jun Chen, Da Zhou, Amit Pratap Singh, Junhua Gu, Shaoyu Zhang, Wei Chen, Jingchao Zhang, Quan Zhang, Arild Einar Skjoldsvold
  • Patent number: 10789217
    Abstract: Methods, systems, and apparatuses are provided for a storage system that implements a hierarchical namespace service. A storage system includes a plurality of physical nodes and a plurality of sets of virtual nodes. Each set of virtual nodes is managed by a corresponding physical node. Each virtual node is configured to manage a respective set of directory blocks. Each directory block is a respective partition of a storage namespace and is managed by a corresponding single virtual node. Each virtual node maintains a directory block map. The directory block map maps file system object names in a hierarchical namespace to entity block identifiers in the flat namespace for entity blocks (files and folders) stored in directories corresponding to the managed set of directory blocks. Load balancing may be performed by moving virtual nodes between physical nodes, and by splitting directory blocks.
    Type: Grant
    Filed: June 22, 2018
    Date of Patent: September 29, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Georgi M. Chalakov, Shane Kumar Mainali, Thomas Leo Marquardt, Zichen Sun, Maneesh Sah, Esfandiar Manii, Saurabh Pant, Dana Yulian Kaban, Saher B. Ahwal, Jun Chen, Da Zhou, Amit Pratap Singh, Junhua Gu, Shaoyu Zhang, Wei Chen, Jingchao Zhang, Quan Zhang
  • Patent number: 10735369
    Abstract: A service enables a command that refers to a file system object using a hierarchical namespace identifier to be executed against the file system object in a flat namespace. The service selectively distributes the command to one of a plurality of name resolution nodes based on a directory name included in the hierarchical namespace identifier. The identified node resolves the directory name to a flat namespace identifier that is used to execute the command against the flat namespace. After communicating with at least one storage node to resolve a directory name, each name resolution node stores a mapping of the directory name to the corresponding flat namespace identifier in a cache, so that subsequent resolutions of that directory name may be performed more efficiently. Cache entries may be invalidated when an operation occurs that impacts the relevant mapping and/or based on system considerations such as cache expiry.
    Type: Grant
    Filed: June 22, 2018
    Date of Patent: August 4, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Georgi M. Chalakov, Shane Kumar Mainali, Thomas Leo Marquardt, Zichen Sun, Maneesh Sah, Esfandiar Manii, Saurabh Pant, Dana Yulian Kaban, Saher B. Ahwal, Jun Chen, Da Zhou, Amit Pratap Singh, Junhua Gu, Shaoyu Zhang, Wei Chen, Jingchao Zhang, Quan Zhang, Arild Einar Skjoldsvold
  • Publication number: 20200142868
    Abstract: A distributed storage system includes table controllers collectively storing partitions of a logical table having multiple rows. For each of the partitions, a corresponding table controller stores a subset of the rows of the logical table across individual pages. A management controller updates a schema of the logical table from a first to a second schema definition by, for each of the partitions, sending an update command indicating the second schema definition to the corresponding table controller. The first table controller corresponds to a first partition that includes a first subset of the rows. The first table controller, prior to receiving the update command, includes an identifier of the first schema definition within each page of data for the first subset. Subsequent to receiving the update command, the first table controller, when writing each new page of data for the first subset, includes an identifier of the second schema definition.
    Type: Application
    Filed: June 30, 2017
    Publication date: May 7, 2020
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Krishnan VARADARAJAN, Jianwu GAO, Jegan DEVARAJU, Shane MAINALI, Zichen SUN, Quan ZHANG, Venkates Paramasivam BALAKRISHNAN, Shaoyu ZHANG, Kaifeng ZHU, Ju WANG, Manish CHABLANI, Hao FENG
  • Publication number: 20190394162
    Abstract: A service enables a command that refers to a file system object using a hierarchical namespace identifier to be executed against the file system object in a flat namespace. The service selectively distributes the command to one of a plurality of name resolution nodes based on a directory name included in the hierarchical namespace identifier. The identified node resolves the directory name to a flat namespace identifier that is used to execute the command against the flat namespace. After communicating with at least one storage node to resolve a directory name, each name resolution node stores a mapping of the directory name to the corresponding flat namespace identifier in a cache, so that subsequent resolutions of that directory name may be performed more efficiently. Cache entries may be invalidated when an operation occurs that impacts the relevant mapping and/or based on system considerations such as cache expiry.
    Type: Application
    Filed: June 22, 2018
    Publication date: December 26, 2019
    Inventors: Georgi M. Chalakov, Shane Kumar Mainali, Thomas Leo Marquardt, Zichen Sun, Maneesh Sah, Esfandiar Manii, Saurabh Pant, Dana Yulian Kaban, Saher B. Ahwal, Jun Chen, DA Zhou, Amit Pratap Singh, Junhua Gu, Shaoyu Zhang, Wei Chen, Jingchao Zhang, Quan Zhang, Arild Einar Skjoldsvold
  • Publication number: 20190392053
    Abstract: Methods, systems, and apparatuses are provided for a storage system that implements a hierarchical namespace service. A storage system includes a plurality of physical nodes and a plurality of sets of virtual nodes. Each set of virtual nodes is managed by a corresponding physical node. Each virtual node is configured to manage a respective set of directory blocks. Each directory block is a respective partition of a storage namespace and is managed by a corresponding single virtual node. Each virtual node maintains a directory block map. The directory block map maps file system object names in a hierarchical namespace to entity block identifiers in the flat namespace for entity blocks (files and folders) stored in directories corresponding to the managed set of directory blocks. Load balancing may be performed by moving virtual nodes between physical nodes, and by splitting directory blocks.
    Type: Application
    Filed: June 22, 2018
    Publication date: December 26, 2019
    Inventors: Georgi M. Chalakov, Shane Kumar Mainali, Thomas Leo Marquardt, Zichen Sun, Maneesh Sah, Esfandiar Manii, Saurabh Pant, Dana Yulian Kaban, Saher B. Ahwal, Jun Chen, Da Zhou, Amit Pratap Singh, Junhua Gu, Shaoyu Zhang, Wei Chen, Jingchao Zhang, Quan Zhang
  • Publication number: 20190370362
    Abstract: Methods, systems, and computer programs are presented for providing multi-protocol access to a cloud storage system. One method includes an operation for providing a first application programming interface (API), by a cloud storage system that stores data in blobs organized within containers, and a second API, where the APIs provide operations for a flat namespace (FN) and a hierarchical namespace (HN) for accessing data. FN is for accessing data based on account, container, and blob and the HN is for accessing data based on account, directory, and file. When a command is received for FN, the command is performed utilizing containers and blob identifiers. When the command is received for HN, the hierarchical namespace service is accessed to translate directories and files included to one or more blob identifiers. Further, a response is sent to the user device.
    Type: Application
    Filed: June 26, 2018
    Publication date: December 5, 2019
    Inventors: Shane Kumar Mainali, Thomas Leo Marquardt, Zichen Sun, Georgi Chalakov, Maneesh Sah, Esfandiar Manii, Saurabh Pant, Dana Yulian Kaban, Saher B. Ahwal, Jun Chen, Da Zhou, Amit Pratap Singh, Junhua Gu, Shaoyu Zhang, Wei Chen
  • Publication number: 20190370365
    Abstract: Methods, systems, and programs provide for executing distributed transactions in a cloud storage system with a hierarchical namespace. One method includes receiving a request with operations to be executed atomically. Further, nodes are identified for executing the operations, each node having a respective clock and having at least part of a transactions table for controlling updates to entities. Each clock is one of a loosely-synchronized, a strictly-synchronized clock, a logical, or a physical clock. Additionally, the nodes process the operations, which includes setting a commit timestamp (CS) to a value of the clock in the node if the node is a first node in the processing. One node coordinates the transactions, and may be one of the nodes executing transactions. If the clock in the node is less than a current value of the CS, the node waits for the clock to reach the current value of the CS and the CS is updated.
    Type: Application
    Filed: June 26, 2018
    Publication date: December 5, 2019
    Inventors: Georgi Chalakov, Shane Kumar Mainali, Thomas Leo Marquardt, Zichen Sun, Maneesh Sah, Wei Chen, Dana Yulian Kaban, Saher B. Ahwal, Shaoyu Zhang, Jingchao Zhang, Quan Zhang, Jun Chen, Esfandiar Manii, Saurabh Pant, Da Zhou, Amit Pratap Singh, Junhua Gu
  • Publication number: 20190370360
    Abstract: Methods, systems, and computer programs are presented for providing file system functions on a cloud storage system based on blob storage. A cloud storage system comprises storage clusters, and each storage cluster comprises a plurality of storage nodes (each including a partition layer that stores data in blobs organized within containers, and a stream layer for streaming blob data), a hierarchical namespace service for implementing file system functions on the data stored in the blobs and, a front end layer for processing user requests to access and manage data stored on the blobs. The file system functions include flat namespace functions and hierarchical namespace functions. Further, the front end layer accesses the partition layer to access the blobs based on addresses of blobs and accesses the hierarchical namespace service to identify the blobs.
    Type: Application
    Filed: June 26, 2018
    Publication date: December 5, 2019
    Inventors: Shane Kumar Mainali, Thomas Leo Marquardt, Zichen Sun, Georgi Chalakov, Maneesh Sah, Esfandiar Manii, Saurabh Pant, Dana Yulian Kaban, Saher B. Ahwal, Jun Chen, Da Zhou, Amit Pratap Singh, Junhua Gu, Shaoyu Zhang, Wei Chen
  • Patent number: 10447607
    Abstract: Methods for dequeue optimizations in queues are performed by systems and apparatuses. The methods optimize dequeue operations using aggregation of expired messages enqueued in a queue and conditional iteration over enqueued messages based on the aggregation to service dequeue commands. Queues utilize page hierarchies such as root pages, index pages, and data pages. The aggregation of expired messages for pages in the queue determines the latest expired time for messages for a given page, and these latest expired times are stored in their respective pages, including data pages, index pages, and root pages, for use in the conditional iteration. The conditional iteration bypasses pages for which a latest expired time for all messages is prior to the current time when servicing dequeue requests for the queue.
    Type: Grant
    Filed: May 5, 2017
    Date of Patent: October 15, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Krishnan Varadarajan, Jieqing Wang, Venkates Paramasivam Balakrishnan, Shane K. Mainali, Quan Zhang, Zichen Sun
  • Publication number: 20190004863
    Abstract: In various embodiments, methods and systems for implementing hash-based partitioning in distributed computing systems are provided. At a high level, a distributed computing system having an underlying range-based partitioning architecture for storage may be configured as a hash-based partitioning system, for example, a hybrid range-hash table storage. An operations engine of the hash-based partitioning system receives a tenant request to provision input/output operations per second (IOPS). The tenant request comprises a requested number of IOPS. Based on the tenant request, a provisioning operation to provision IOPS in a hybrid range-hash table storage with hash-based partitioning is determined. The provisioning operation is selected from one of the following: a table creation provisioning operation, an IOPS increase provisioning operation, and an IOPS decrease provisioning operation. The selected provisioning operation is executed for a corresponding table.
    Type: Application
    Filed: June 29, 2018
    Publication date: January 3, 2019
    Inventors: Shane MAINALI, Georgi M. CHALAKOV, Maneesh SAH, Zichen SUN, Michael E. ROBERSON, Andrew J. EDWARDS, Jegan DEVARAJU, Krishnan VARADARAJAN
  • Publication number: 20180324129
    Abstract: Methods for dequeue optimizations in queues are performed by systems and apparatuses. The methods optimize dequeue operations using aggregation of expired messages enqueued in a queue and conditional iteration over enqueued messages based on the aggregation to service dequeue commands. Queues utilize page hierarchies such as root pages, index pages, and data pages. The aggregation of expired messages for pages in the queue determines the latest expired time for messages for a given page, and these latest expired times are stored in their respective pages, including data pages, index pages, and root pages, for use in the conditional iteration. The conditional iteration bypasses pages for which a latest expired time for all messages is prior to the current time when servicing dequeue requests for the queue.
    Type: Application
    Filed: May 5, 2017
    Publication date: November 8, 2018
    Inventors: Krishnan Varadarajan, Jieqing Wang, Venkates Paramasivam Balakrishnan, Shane K. Mainali, Quan Zhang, Zichen Sun
  • Publication number: 20180307736
    Abstract: A snapshot of data from a table associated with a particular user may be generated. Tree data structures that are distributed across multiple computer systems may be accessed. Each of the tree structures may include data associated with one or more users. At least one tree data structure of the tree data structures that includes data associated with the particular user of the one or more users may be identified. The at least one tree data structure may then be filtered. Filtering may comprise identifying only data that is associated with the particular user. A snapshot of the data associated with the particular user may be generated. Generating the snapshot of the data associated with the particular user comprises generating a data structure that is configured to map to each data page of the at least one tree data structure that includes data associated with the particular user.
    Type: Application
    Filed: April 25, 2017
    Publication date: October 25, 2018
    Inventors: Venkates Paramasivam Balakrishnan, Krishnan Varadarajan, Maneesh Sah, Jegan Devaraju, Advait Kumar Mishra, Zichen Sun, Shane Kumar Mainali