Patents by Inventor Shane Mainali

Shane 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).

  • Patent number: 11816084
    Abstract: Anchor tree cross-merge within a distributed storage system. A computer system identifies a data structure that includes (i) a root anchor tree and (ii) an ordered set of anchor trees that are ordered based on their creation, such that a last anchor tree of the ordered set of anchor trees is most-recently created. The data structure stores index data for a set of objects stored in a non-volatile storage. The computer system creates a new anchor tree in the ordered set of anchor trees. The computer system identifies, from a set of delta tables, index data representing one or more objects that are stored on the non-volatile storage. The computer system merges the index data representing the one or more objects into the new anchor tree.
    Type: Grant
    Filed: August 24, 2022
    Date of Patent: November 14, 2023
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Krishnan Varadarajan, Jegan Devaraju, Shane Mainali, Quan Zhang, Sridhar Srinivasan, Bin Tong, He Su, Ju Wang, Manish Chablani, Hao Feng
  • Patent number: 11803511
    Abstract: Example aspects include techniques for ordering operations in a file system having a hierarchical namespace including determining, by a first service that manages file system operations for a first entity in the hierarchical namespace, to perform a file system operation for the first entity, generating, by the first service, a first counter record for the file system operation, obtaining, based on determining to perform the file system operation and from a second service that manages file system operations on a second entity that is a parent of the entity in the hierarchical namespace, a second counter record for a last file system operation performed on the second entity, wherein the second counter record is generated by the second service, and storing, in a change feed, an indication of the file system operation along with the first counter record and the second counter record.
    Type: Grant
    Filed: November 5, 2021
    Date of Patent: October 31, 2023
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Shane Mainali, Ramy Wassef, Vamshi Konagari, Hao Wang, James Baker, Jegan Devaraju, Sandesh Doddameti, Maneesh Sah
  • Publication number: 20230315758
    Abstract: Embodiments of the present invention relate to synchronously replicating data in a distributed computing environment. To achieve synchronous replication both an eventual consistency approach and a strong consistency approach are contemplated. Received data may be written to a log of a primary data store for eventual committal. The data may then be annotated with a record, such as a unique identifier, which facilitates the replay of the data at a secondary data store. Upon receiving an acknowledgment that the secondary data store has written the data to a log, the primary data store may commit the data and communicate an acknowledgment of success back to the client. In a strong consistency approach, the primary data store may wait to send an acknowledgement of success to the client until it receives an acknowledgment that the secondary has not only written, but also committed, the data.
    Type: Application
    Filed: June 8, 2023
    Publication date: October 5, 2023
    Inventors: Bradley Gene CALDER, Niranjan NILAKANTAN, Shashwat SRIVASTAV, Jiesheng WU, Abdul Rafay ABBASI, Shane MAINALI, Padmanabha Chakravarthy UDDARAJU
  • Patent number: 11720594
    Abstract: Embodiments of the present invention relate to synchronously replicating data in a distributed computing environment. To achieve synchronous replication both an eventual consistency approach and a strong consistency approach are contemplated. Received data may be written to a log of a primary data store for eventual committal. The data may then be annotated with a record, such as a unique identifier, which facilitates the replay of the data at a secondary data store. Upon receiving an acknowledgment that the secondary data store has written the data to a log, the primary data store may commit the data and communicate an acknowledgment of success back to the client. In a strong consistency approach, the primary data store may wait to send an acknowledgement of success to the client until it receives an acknowledgment that the secondary has not only written, but also committed, the data.
    Type: Grant
    Filed: December 13, 2016
    Date of Patent: August 8, 2023
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Bradley Gene Calder, Niranjan Nilakantan, Shashwat Srivastav, Jiesheng Wu, Abdul Rafay Abbasi, Shane Mainali, Padmanabha Chakravarthy Uddaraju
  • Publication number: 20230147552
    Abstract: Example aspects include techniques for ordering operations in a file system having a hierarchical namespace including determining, by a first service that manages file system operations for a first entity in the hierarchical namespace, to perform a file system operation for the first entity, generating, by the first service, a first counter record for the file system operation, obtaining, based on determining to perform the file system operation and from a second service that manages file system operations on a second entity that is a parent of the entity in the hierarchical namespace, a second counter record for a last file system operation performed on the second entity, wherein the second counter record is generated by the second service, and storing, in a change feed, an indication of the file system operation along with the first counter record and the second counter record.
    Type: Application
    Filed: November 5, 2021
    Publication date: May 11, 2023
    Inventors: Shane MAINALI, Ramy WASSEF, Vamshi KONAGARI, Hao WANG, James Baker, Jegan DEVARAJU, Sandesh DODDAMETI, Maneesh SAH
  • Patent number: 11586594
    Abstract: Presented herein are methods of replicating versioned and hierarchical data structures, as well as data structures representing complex transactions. Due to interdependencies between data entities and a lack of guaranteed message ordering, simple replication methods employed for simple data types cannot be used. Operations on data structures exhibit dependencies between the messages making up the operations. This strategy can be extended to various types of complex transactions by considering certain messages to depend on other messages or on the existence of other entries at the data store. Regardless of origin, these dependencies can be enforced by suspending the processing of messages with unsatisfied dependencies until all of its dependencies have been met. Alternately, transactions can be committed immediately, creating entities that include versioned identifiers for each of their dependencies. These entities can then be garbage collected of the parent objects are not subsequently created.
    Type: Grant
    Filed: February 12, 2019
    Date of Patent: February 21, 2023
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Bradley Gene Calder, Niranjan Nilakantan, Shashwat Srivastav, Jiesheng Wu, Abdul Rafay Abbasi, Shane Mainali, Padmanabha Chakravarthy Uddaraju, Ju Wang, Hemal Khatri, Arild Skjolsvold, Harshawardhan Gadgil
  • Publication number: 20220405262
    Abstract: Anchor tree cross-merge within a distributed storage system. A computer system identifies a data structure that includes (i) a root anchor tree and (ii) an ordered set of anchor trees that are ordered based on their creation, such that a last anchor tree of the ordered set of anchor trees is most-recently created. The data structure stores index data for a set of objects stored in a non-volatile storage. The computer system creates a new anchor tree in the ordered set of anchor trees. The computer system identifies, from a set of delta tables, index data representing one or more objects that are stored on the non-volatile storage. The computer system merges the index data representing the one or more objects into the new anchor tree.
    Type: Application
    Filed: August 24, 2022
    Publication date: December 22, 2022
    Inventors: Krishnan VARADARAJAN, Jegan DEVARAJU, Shane MAINALI, Quan ZHANG, Sridhar SRINIVASAN, Bin TONG, He SU, Ju WANG, Manish CHABLANI, Hao FENG
  • Patent number: 11487734
    Abstract: A distributed storage system includes non-volatile storage storing portions of a first object. The first object encompasses data having a first range of addresses and each portion includes data for a respective range of addresses that is a proper subset of the first range. A first data structure stores, for each portion, data indicating the respective range of addresses and a pointer to where the portion is stored. The first data structure includes a root tree and a set of trees ordered by creation data such that a last tree is most-recently created. The non-volatile storage stores received write data and a write buffer stores index data pointing to storage locations of the received write data. An index management system stores the index data from the write buffer into the last tree and, if the ordered set is empty, creates a tree in the ordered set before the storing.
    Type: Grant
    Filed: June 30, 2017
    Date of Patent: November 1, 2022
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Krishnan Varadarajan, Jegan Devaraju, Shane Mainali, Quan Zhang, Sridhar Srinivasan, Bin Tong, He Su, Ju Wang, Manish Chablani, Hao Feng
  • 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
  • Publication number: 20220067065
    Abstract: Methods, systems, apparatuses, and computer program products are provided that enable immediate access to data associated with a source blob. The foregoing is achieved by creating a copy-on-read blob based on the source blob and a link blob based on the copy-on-read blob for each virtual machine to be deployed. When creating the copy-on-read blob, the source blob is not copied. Instead, data from the source blob is copied to the copy-on-read blob upon request by a virtual machine. Subsequent requests for that data are retrieved from the copy-on-read blob. Each link blob stores write data provided by its corresponding virtual machine. When a virtual machine requests data, its corresponding link blob is checked for the data. If the data is not stored therein, the copy-on-read blob is checked for the data. If the copy-on-read blob does not store the data, the data is retrieved from the source blob.
    Type: Application
    Filed: November 9, 2021
    Publication date: March 3, 2022
    Inventors: Krishnan VARADARAJAN, Shane MAINALI, Maneesh SAH, Manan SHAH, Andrew EDWARDS, Ivan BRUGIOLO, Ju WANG, Ovais KHAN, Sivakumar KALVA, Venkates P. BALAKRISHNAN
  • 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: 11200253
    Abstract: Methods, systems, apparatuses, and computer program products are provided that enable immediate access to data associated with a source blob. The foregoing is achieved by creating a copy-on-read blob based on the source blob and a link blob based on the copy-on-read blob for each virtual machine to be deployed. When creating the copy-on-read blob, the source blob is not copied. Instead, data from the source blob is copied to the copy-on-read blob upon request by a virtual machine. Subsequent requests for that data are retrieved from the copy-on-read blob. Each link blob stores write data provided by its corresponding virtual machine. When a virtual machine requests data, its corresponding link blob is checked for the data. If the data is not stored therein, the copy-on-read blob is checked for the data. If the copy-on-read blob does not store the data, the data is retrieved from the source blob.
    Type: Grant
    Filed: June 12, 2019
    Date of Patent: December 14, 2021
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Krishnan Varadarajan, Shane Mainali, Maneesh Sah, Manan Shah, Andrew Edwards, Ivan Brugiolo, Ju Wang, Ovais Khan, Sivakumar Kalva, Venkates P. Balakrishnan
  • 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
  • Publication number: 20200167320
    Abstract: Presented herein are methods of replicating versioned and hierarchical data structures, as well as data structures representing complex transactions. Due to interdependencies between data entities and a lack of guaranteed message ordering, simple replication methods employed for simple data types cannot be used. Operations on data structures exhibit dependencies between the messages making up the operations. This strategy can be extended to various types of complex transactions by considering certain messages to depend on other messages or on the existence of other entries at the data store. Regardless of origin, these dependencies can be enforced by suspending the processing of messages with unsatisfied dependencies until all of its dependencies have been met. Alternately, transactions can be committed immediately, creating entities that include versioned identifiers for each of their dependencies. These entities can then be garbage collected of the parent objects are not subsequently created.
    Type: Application
    Filed: February 12, 2019
    Publication date: May 28, 2020
    Inventors: Bradley Gene CALDER, Niranjan NILAKANTAN, Shashwat SRIVASTAV, Jiesheng WU, Abdul Rafay ABBASI, Shane MAINALI, Padmanabha Chakravarthy UDDARAJU, Ju WANG, Hemal KHATRI, Arild SKJOLSVOLD, Harshawardhan GADGIL
  • 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: 20200142878
    Abstract: A distributed storage system includes non-volatile storage storing portions of a first object. The first object encompasses data having a first range of addresses and each portion includes data for a respective range of addresses that is a proper subset of the first range. A first data structure stores, for each portion, data indicating the respective range of addresses and a pointer to where the portion is stored. The first data structure includes a root tree and a set of trees ordered by creation data such that a last tree is most-recently created. The non-volatile storage stores received write data and a write buffer stores index data pointing to storage locations of the received write data. An index management system stores the index data from the write buffer into the last tree and, if the ordered set is empty, creates a tree in the ordered set before the storing.
    Type: Application
    Filed: June 30, 2017
    Publication date: May 7, 2020
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Krishnan VARADARAJAN, Jegan DEVARAJU, Shane MAINALI, Quan ZHANG, Sridhar SRINIVASAN, Bin TONG, He SU, Ju WANG, Manish CHABLANI, Hao FENG
  • Publication number: 20190347272
    Abstract: Methods, systems, apparatuses, and computer program products are provided that enable immediate access to data associated with a source blob. The foregoing is achieved by creating a copy-on-read blob based on the source blob and a link blob based on the copy-on-read blob for each virtual machine to be deployed. When creating the copy-on-read blob, the source blob is not copied. Instead, data from the source blob is copied to the copy-on-read blob upon request by a virtual machine. Subsequent requests for that data are retrieved from the copy-on-read blob. Each link blob stores write data provided by its corresponding virtual machine. When a virtual machine requests data, its corresponding link blob is checked for the data. If the data is not stored therein, the copy-on-read blob is checked for the data. If the copy-on-read blob does not store the data, the data is retrieved from the source blob.
    Type: Application
    Filed: June 12, 2019
    Publication date: November 14, 2019
    Inventors: Krishnan Varadarajan, Shane Mainali, Maneesh Sah, Manan Shah, Andrew Edwards, Ivan Brugiolo, Ju Wang, Ovais Khan, Sivakumar Kalva, Venkates P. Balakrishnan
  • Patent number: 10366104
    Abstract: Methods, systems, apparatuses, and computer program products are provided that enable immediate access to data associated with a source blob. The foregoing is achieved by creating a copy-on-read blob based on the source blob and a link blob based on the copy-on-read blob for each virtual machine to be deployed. When creating the copy-on-read blob, the source blob is not copied. Instead, data from the source blob is copied to the copy-on-read blob upon request by a virtual machine. Subsequent requests for that data are retrieved from the copy-on-read blob. Each link blob stores write data provided by its corresponding virtual machine. When a virtual machine requests data, its corresponding link blob is checked for the data. If the data is not stored therein, the copy-on-read blob is checked for the data. If the copy-on-read blob does not store the data, the data is retrieved from the source blob.
    Type: Grant
    Filed: June 21, 2017
    Date of Patent: July 30, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Krishnan Varadarajan, Shane Mainali, Maneesh Sah, Manan Shah, Andrew Edwards, Ivan Brugiolo, Ju Wang, Ovais Khan, Sivakumar Kalva, Venkates P. Balakrishnan
  • Patent number: 10242026
    Abstract: Presented herein are methods of replicating versioned and hierarchical data structures, as well as data structures representing complex transactions. Due to interdependencies between data entities and a lack of guaranteed message ordering, simple replication methods employed for simple data types cannot be used. Operations on data structures exhibit dependencies between the messages making up the operations. This strategy can be extended to various types of complex transactions by considering certain messages to depend on other messages or on the existence of other entries at the data store. Regardless of origin, these dependencies can be enforced by suspending the processing of messages with unsatisfied dependencies until all of its dependencies have been met. Alternately, transactions can be committed immediately, creating entities that include versioned identifiers for each of their dependencies. These entities can then be garbage collected of the parent objects are not subsequently created.
    Type: Grant
    Filed: July 8, 2015
    Date of Patent: March 26, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Bradley Gene Calder, Niranjan Nilakantan, Shashwat Srivastav, Jiesheng Wu, Abdul Rafay Abbasi, Shane Mainali, Padmanabha Chakravarthy Uddaraju, Ju Wang, Hemal Khatri, Arild Skjolsvold, Harshawardhan Gadgil
  • 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