Patents by Inventor Junhua Gu
Junhua Gu 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: 11297031Abstract: 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: GrantFiled: July 6, 2020Date of Patent: April 5, 2022Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: 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: 10831720Abstract: 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: GrantFiled: June 26, 2018Date of Patent: November 10, 2020Assignee: Microsoft Technology Licensing, LLCInventors: 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: 10817498Abstract: 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: GrantFiled: June 26, 2018Date of Patent: October 27, 2020Assignee: Microsoft Technology Licensing, LLCInventors: 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: 20200336455Abstract: 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: ApplicationFiled: July 6, 2020Publication date: October 22, 2020Inventors: 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: 10789217Abstract: 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: GrantFiled: June 22, 2018Date of Patent: September 29, 2020Assignee: Microsoft Technology Licensing, LLCInventors: 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: 10735369Abstract: 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: GrantFiled: June 22, 2018Date of Patent: August 4, 2020Assignee: Microsoft Technology Licensing, LLCInventors: 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: 20190394162Abstract: 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: ApplicationFiled: June 22, 2018Publication date: December 26, 2019Inventors: 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: 20190392053Abstract: 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: ApplicationFiled: June 22, 2018Publication date: December 26, 2019Inventors: 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: 20190370362Abstract: 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: ApplicationFiled: June 26, 2018Publication date: December 5, 2019Inventors: 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: 20190370365Abstract: 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: ApplicationFiled: June 26, 2018Publication date: December 5, 2019Inventors: 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: 20190370360Abstract: 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: ApplicationFiled: June 26, 2018Publication date: December 5, 2019Inventors: 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