Patents by Inventor Shane Kumar MAINALI
Shane Kumar MAINALI 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: 20220300183Abstract: One example provides a method of migrating a data partition from a first storage cluster to a second storage cluster, the method including determining that the data partition meets a migration criteria for migrating from the first storage cluster to the second storage cluster, on the first storage cluster, preparing partition metadata to be transferred, the partition metadata describing one or more streams within the data partition and one or more extents within each stream, transferring the partition metadata from the first storage cluster to the second storage cluster, directing new transactions associated with the data partition to the second storage cluster, including while the one or more extents reside at the first storage cluster, on the first storage cluster, changing an access attribute of the one or more extents within the data partition to read-only, and on the second storage cluster, performing new ingress for the data partition.Type: ApplicationFiled: June 17, 2020Publication date: September 22, 2022Inventors: Rushi Srinivas SURLA, Maneesh SAH, Shane Kumar MAINALI, Wei LIN, Girish SAINI, Arild Einar SKJOLSVOLD
-
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: 11055010Abstract: One example provides a method of migrating a data partition from a first storage cluster to a second storage cluster, the method including determining that the data partition meets a migration criteria for migrating from the first storage cluster to the second storage cluster, on the first storage cluster, preparing partition metadata to be transferred, the partition metadata describing one or more streams within the data partition and one or more extents within each stream, transferring the partition metadata from the first storage cluster to the second storage cluster, directing new transactions associated with the data partition to the second storage cluster, including while the one or more extents reside at the first storage cluster, on the first storage cluster, changing an access attribute of the one or more extents within the data partition to read-only, and on the second storage cluster, performing new ingress for the data partition.Type: GrantFiled: September 5, 2019Date of Patent: July 6, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Rushi Srinivas Surla, Maneesh Sah, Shane Kumar Mainali, Wei Lin, Girish Saini, Arild Einar Skjolsvold
-
Patent number: 11010401Abstract: 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: GrantFiled: April 25, 2017Date of Patent: May 18, 2021Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Venkates Paramasivam Balakrishnan, Krishnan Varadarajan, Maneesh Sah, Jegan Devaraju, Advait Kumar Mishra, Zichen Sun, Shane Kumar Mainali
-
Patent number: 10956601Abstract: A system receives a request to store data at a first layer of servers in a cluster, configured to authenticate and authorize the request. The system compresses the data upon authenticating and authorizing the request and encrypts the compressed data at the first layer of servers when encryption is enabled. The system sends the request and the encrypted data to a second layer of servers in the cluster, configured to store data structures used to manage data storage in a third layer of servers in the cluster, and to distribute the request and the encrypted data to the third layer of servers using the data structures. The system stores the encrypted data in the third layer of servers. Encrypting the data at the first layer of servers reduces latency associated with transferring the data between the first, second, and third layers of servers.Type: GrantFiled: August 1, 2019Date of Patent: March 23, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Rushi Srinivas Surla, Shane Kumar Mainali, Andrew Edwards, Maneesh Sah, Weiping Zhang
-
Publication number: 20210072917Abstract: One example provides a method of migrating a data partition from a first storage cluster to a second storage cluster, the method including determining that the data partition meets a migration criteria for migrating from the first storage cluster to the second storage cluster, on the first storage cluster, preparing partition metadata to be transferred, the partition metadata describing one or more streams within the data partition and one or more extents within each stream, transferring the partition metadata from the first storage cluster to the second storage cluster, directing new transactions associated with the data partition to the second storage cluster, including while the one or more extents reside at the first storage cluster, on the first storage cluster, changing an access attribute of the one or more extents within the data partition to read-only, and on the second storage cluster, performing new ingress for the data partition.Type: ApplicationFiled: September 5, 2019Publication date: March 11, 2021Applicant: Microsoft Technology Licensing, LLCInventors: Rushi Srinivas SURLA, Maneesh SAH, Shane Kumar MAINALI, Wei LIN, Girish SAINI, Arild Einar SKJOLSVOLD
-
Patent number: 10909074Abstract: Embodiments provide a method to collect aggregate information or usage data quickly and efficiently with minimal lag. Additionally, the system can use this aggregate information internally for improved load balancing, better data placement, optimization, and enhanced debugging. The system can quickly look at aggregate information across a huge amount of data and drill down cheaply because the aggregate information is generated using existing processes. Aggregated statistics storage and collection may be built on top of an LSM tree used to store a persistent index for a cloud storage system. The statistics may also represent the result of an operation (e.g., max, min, sum, average) on selected parameter(s) or attribute(s) of stored data. Aggregate statistics values may be efficiently maintained during index merge and garbage collection processes or any other index management. As delta LSM trees are merged into a base LSM tree, the aggregates are updated in delta fashion.Type: GrantFiled: April 18, 2017Date of Patent: February 2, 2021Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Shane Kumar Mainali, Krishnan Varadarajan, Quan Zhang, Jegan Devaraju, Ziehen Sun, Hao Feng, Ju Wang, Manish Chablani
-
Patent number: 10901648Abstract: A cloud storage system includes a processor and a non-transitory computer-readable medium to store blob table management instructions for execution by the processor. The blob table management instructions are configured to manage a plurality of storage requests for a blob stored in a storage stamp as snapshots in a blob table and selectively create a user snapshot of at least one of the snapshots in the blob table. When automatic snapshots are enabled, the blob table management instructions are configured to receive a first request to overwrite the blob. If the first request does not further specify a key of the one of the snapshots in the blob table, the blob table management instructions are configured to add a new snapshot to the blob table and maintain storage of a prior snapshot of the blob for a maximum period.Type: GrantFiled: November 28, 2018Date of Patent: January 26, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Shane Kumar Mainali, Quan Zhang, Kaviyarasan Rajendran, Sundar P. Subramani, Andrew Edwards, Maneesh Sah, Krisjan David Fritz, Michael Hauss, Jianhua Yan, Michael Roberson
-
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: 10764045Abstract: A system receives data of one or more types from one or more sources having distinct identities for storing the data in a distributed storage system. The system stores metadata associated with storing the data in data structures in the distributed storage system. The system selects a portion of the data and a portion of the metadata associated with storing the data in the distributed storage system. The system compresses the selected portions of the data and the metadata, encrypts the compressed data and metadata using a single key or using a separate key for each data type, and stores the encrypted compressed data and metadata in the distributed storage system. The system also encrypts unencrypted metadata and associated data during defragmentation procedure.Type: GrantFiled: June 30, 2017Date of Patent: September 1, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Rushi Srinivas Surla, Shane Kumar Mainali, Andrew Edwards, Maneesh Sah, Weiping Zhang
-
Patent number: 10747665Abstract: In an embodiment, a partition cost of one or more of the plurality of partitions and a data block cost for one or more data blocks that may be subjected to a garbage collection operation are determined. The partition cost and the data block cost are combined into an overall reclaim cost by specifying both the partition cost and the data block cost in terms of a computing system latency. A byte constant multiplier that is configured to modify the overall reclaim cost to account for the amount of data objects that may be rewritten during the garbage collection operation may be applied. The one or more partitions and/or one or more data blocks that have the lowest overall reclaim cost while reclaiming an acceptable amount of data block space may be determined and be included in a garbage collection schedule.Type: GrantFiled: April 1, 2019Date of Patent: August 18, 2020Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Shane Kumar Mainali, Rushi Srinivas Surla, Peter Bodik, Ishai Menache, Yang Lu
-
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
-
Patent number: 10659225Abstract: A system stores data in data units in a cluster in a cloud computing system, the data stored in the data units being encrypted or unencrypted depending on whether encryption is enabled or disabled when storing data in the data units. The system identifies one or more data units to defragment and defragments the identified data units by writing the data from the identified data units to one or more new data units and by releasing the identified data units for storing new data. The system encrypts unencrypted data from the identified data units when writing the data from the identified data units to the one or more new data units.Type: GrantFiled: June 30, 2017Date of Patent: May 19, 2020Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Rushi Srinivas Surla, Shane Kumar Mainali, Andrew Edwards, Maneesh Sah, Weiping Zhang
-
Patent number: 10642530Abstract: Computer systems and methods for scheduling garbage collection in a distributed environment that includes multiple partitions that reference various data blocks that store data objects. A global occupancy aggregator may access occupancy information for each of the partitions from an occupancy index of each of the partitions. This occupancy information specifies a portion of storage resources occupied by those data blocks referenced by each of the partitions. The global occupancy aggregator may aggregate the accessed occupancy information to generate a global occupancy index that combines the occupancy information of the partitions. The global occupancy aggregator may generate a global schedule for garbage collection for the partitions based on the global occupancy index. The global schedule specifies which of the data blocks included in the global occupancy index are to be subjected to garbage collection.Type: GrantFiled: February 20, 2019Date of Patent: May 5, 2020Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Shane Kumar Mainali, Rushi Srinivas Surla
-
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: 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: 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