Patents by Inventor Niranjan Nilakantan
Niranjan Nilakantan 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: 20240289329Abstract: Aspects of the disclosure are directed to a parallel recovery mode that applies log records while allowing read queries on read-replica databases. The parallel recovery mode can include applying log records in log sequence number (LSN) order for a block or for multiple blocks, and managing log records affecting multiple blocks. The parallel recovery mode can further manage dependency between different log records and maintain transactional consistency on read queries.Type: ApplicationFiled: December 20, 2023Publication date: August 29, 2024Inventors: Anjan Kumar Amirishetty, Simhachala Sasikanth Gottapu, Niranjan Nilakantan, Anthony Hsu, Junjie Liang
-
Publication number: 20230315758Abstract: 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: ApplicationFiled: June 8, 2023Publication date: October 5, 2023Inventors: Bradley Gene CALDER, Niranjan NILAKANTAN, Shashwat SRIVASTAV, Jiesheng WU, Abdul Rafay ABBASI, Shane MAINALI, Padmanabha Chakravarthy UDDARAJU
-
Patent number: 11720594Abstract: 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: GrantFiled: December 13, 2016Date of Patent: August 8, 2023Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Bradley Gene Calder, Niranjan Nilakantan, Shashwat Srivastav, Jiesheng Wu, Abdul Rafay Abbasi, Shane Mainali, Padmanabha Chakravarthy Uddaraju
-
Patent number: 11586594Abstract: 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: GrantFiled: February 12, 2019Date of Patent: February 21, 2023Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: 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: 20200167320Abstract: 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: ApplicationFiled: February 12, 2019Publication date: May 28, 2020Inventors: 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
-
Patent number: 10242026Abstract: 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: GrantFiled: July 8, 2015Date of Patent: March 26, 2019Assignee: Microsoft Technology Licensing, LLCInventors: 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
-
Patent number: 9996572Abstract: Partition management for a scalable, structured storage system is provided. The storage system provides storage represented by one or more tables, each of which includes rows that represent data entities. A table is partitioned into a number of partitions, each partition including a contiguous range of rows. The partitions are served by table servers and managed by a table master. Load distribution information for the table servers and partitions is tracked, and the table master determines to split and/or merge partitions based on the load distribution information.Type: GrantFiled: October 24, 2008Date of Patent: June 12, 2018Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Bradley Gene Calder, Ju Wang, Arild E. Skjolsvold, Shashwat Srivastav, Niranjan Nilakantan, Deepali Bhardwaj
-
Publication number: 20170161350Abstract: 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: ApplicationFiled: December 13, 2016Publication date: June 8, 2017Inventors: Bradley Gene Calder, Niranjan Nilakantan, Shashwat Srivastav, Jiesheng Wu, Abdul Rafay Abbasi, Shane Mainali, Padmanabha Chakravarthy Uddaraju
-
Patent number: 9519555Abstract: 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: GrantFiled: May 23, 2011Date of Patent: December 13, 2016Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Bradley Gene Calder, Niranjan Nilakantan, Shashwat Srivastav, Jiesheng Wu, Abdul Rafay Abbasi, Shane Mainali, Padmanabha Chakravarthy Uddaraju
-
Publication number: 20160140202Abstract: Embodiments of the present invention relate to asynchronously replicating data in a distributed computing environment. To achieve asynchronous replication, data received at a primary data store may be annotated with information, such as an identifier of the data. The annotated data may then be communicated to a secondary data store, which may then write the data and annotated information to one or more logs for eventual replay and committal at the secondary data store. The primary data store may communicate an acknowledgment of success in committing the data at the primary data store as well as of success in writing the data to the secondary data store. Additional embodiments may include committing the data at the secondary data store in response to receiving an instruction that authorizes committal of data through an identifier.Type: ApplicationFiled: January 22, 2016Publication date: May 19, 2016Inventors: Bradley Gene Calder, Niranjan Nilakantan, Shashwat Srivastav, Jiesheng Wu, Abdul Rafay Abbasi, Shane Mainali, Padmanabha Chakravarthy Uddaraju
-
Publication number: 20160070720Abstract: 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: ApplicationFiled: July 8, 2015Publication date: March 10, 2016Inventors: 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
-
Patent number: 9274906Abstract: Embodiments of the present invention relate to invoking and managing a failover of a storage account between partitions within a distributed computing environment, where each partition represents a key range of data for the storage account. The partitions affected by the failover include source partitions hosted on a primary storage stamp and destination partitions hosted on a secondary storage stamp, where the storage account's data is being actively replicated from the primary to the secondary storage stamp. Upon receiving a manual or automatic indication to perform the failover, configuring the source partitions to independently perform flush-send operations (e.g., distributing pending messages as a group) and then configuring the destination partitions to independently perform flush-replay operations (e.g., aggressively replaying currently pending transactions).Type: GrantFiled: June 9, 2014Date of Patent: March 1, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Bradley Gene Calder, Niranjan Nilakantan, Shashwat Srivastav, Jiesheng Wu, Arild Einar Skjolsvold, Maxim Mazeev, Abdul Rafay Abbasi, Shane Mainali, Hemal Khatri, Ju Wang, Padmanabha Chakravarthy Uddaraju, Leonidas Rigas
-
Patent number: 9251021Abstract: Embodiments of the present invention relate to asynchronously replicating data in a distributed computing environment. To achieve asynchronous replication, data received at a primary data store may be annotated with information, such as an identifier of the data. The annotated data may then be communicated to a secondary data store, which may then write the data and annotated information to one or more logs for eventual replay and committal at the secondary data store. The primary data store may communicate an acknowledgment of success in committing the data at the primary data store as well as of success in writing the data to the secondary data store. Additional embodiments may include committing the data at the secondary data store in response to receiving an instruction that authorizes committal of data through a identifier.Type: GrantFiled: May 23, 2011Date of Patent: February 2, 2016Inventors: Bradley Gene Calder, Niranjan Nilakantan, Shashwat Srivastav, Jiesheng Wu, Abdul Rafay Abbasi, Shane Mainali, Padmanabha Chakravarthy Uddaraju
-
Patent number: 9098470Abstract: 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: GrantFiled: May 23, 2011Date of Patent: August 4, 2015Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: 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
-
Patent number: 8918362Abstract: Embodiments of the present invention relate to systems, methods, and computer storage media for replicating data in a distributed computing environment utilizing a combination of replication methodologies. A full-object replication may be utilized to replicate a full state of an object from a primary data store to a secondary data store. A checkpoint created after initiating the full-object replication may be parsed to identify changes to the object that have been entered since initiating the full-object replication. This replication process is referred to as a delta-checkpoint replication methodology. Additionally, in an embodiment, a log-based replication methodology may be utilized. The log-based replication may communicate data from a log of the primary data store to the secondary data store. It is also contemplated in an exemplary embodiment that when the log-based replication fails to maintain a throughput threshold, one of the other replication methodologies may be initiated, at least temporarily.Type: GrantFiled: May 23, 2011Date of Patent: December 23, 2014Assignee: Microsoft CorporationInventors: Bradley Gene Calder, Niranjan Nilakantan, Shashwat Srivastav, Jiesheng Wu, Abdul Rafay Abbasi, Shane Mainali, Padmanabha Chakravarthy Uddaraju
-
Patent number: 8886796Abstract: Embodiments of the present invention relate to invoking and managing load-balancing operation(s) applied to partitions within a distributed computing environment, where each partition represents a key range of data for a storage account. The partitions affected by the load-balancing operation(s) are source partitions hosted on a primary storage stamp and/or destination partitions hosted on a secondary storage stamp, where the primary and secondary storage stamps are located in geographically distinct areas and are equipped to replicate the storage account's data therebetween. The load-balancing operation(s) include splitting partitions into child partitions upon detecting an increased workload as a result of active replication, merging partitions to form parent partitions upon detecting a reduction in workload as a result of decreased processing-related resource consumption, or offloading partitions based on resource consumption.Type: GrantFiled: May 23, 2011Date of Patent: November 11, 2014Assignee: Microsoft CorporationInventors: Bradley Gene Calder, Niranjan Nilakantan, Shashwat Srivastav, Jiesheng Wu, Abdul Rafay Abbasi, Shane Mainali, Padmanabha Chakravarthy Uddaraju, Arild Einar Skjolsvold, Hemal Khatri, Ju Wang
-
Patent number: 8868624Abstract: Embodiments of the present invention relate to systems, methods and computer storage media for facilitating the structured storage of binary large objects (Blobs) to be accessed by an application program being executed by a computing device. Generally, the manipulation of Blobs in a structured storage system includes receiving a request for a Blob, which may be located by way of a Blob pointer. The Blob pointer allows for the data, such as properties, of the Blob to be identified and located. Expired properties are garbage collected as a manipulation of the Blob data within a structured storage system. In an embodiment, the Blob is identified by a key that is utilized within a primary structured index to located the requested Blob. In another embodiment, the requested Blob is located utilizing a secondary hash index. In an additional embodiment, the Blob is locate utilizing a file table.Type: GrantFiled: July 22, 2013Date of Patent: October 21, 2014Assignee: Microsoft CorporationInventors: Bradley Gene Calder, Ju Wang, Xinran Wu, Niranjan Nilakantan, Deepali Bhardwaj, Shashwat Srivastav, Alexander Felsobuki Nagy
-
Publication number: 20140289554Abstract: Embodiments of the present invention relate to invoking and managing a failover of a storage account between partitions within a distributed computing environment, where each partition represents a key range of data for the storage account. The partitions affected by the failover include source partitions hosted on a primary storage stamp and destination partitions hosted on a secondary storage stamp, where the storage account's data is being actively replicated from the primary to the secondary storage stamp. Upon receiving a manual or automatic indication to perform the failover, configuring the source partitions to independently perform flush-send operations (e.g., distributing pending messages as a group) and then configuring the destination partitions to independently perform flush-replay operations (e.g., aggressively replaying currently pending transactions).Type: ApplicationFiled: June 9, 2014Publication date: September 25, 2014Inventors: BRADLEY GENE CALDER, NIRANJAN NILAKANTAN, SHASHWAT SRIVASTAV, JIESHENG WU, ARILD EINAR SKJOLSVOLD, MAXIM MAZEEV, ABDUL RAFAY ABBASI, SHANE MAINALI, HEMAL KHATRI, JU WANG, PADMANABHA CHAKRAVARTHY UDDARAJU, LEONIDAS RIGAS
-
Publication number: 20140258499Abstract: Embodiments of the present invention relate to invoking and managing load-balancing operation(s) applied to partitions within a distributed computing environment, where each partition represents a key range of data for a storage account. The partitions affected by the load-balancing operation(s) are source partitions hosted on a primary storage stamp and/or destination partitions hosted on a secondary storage stamp, where the primary and secondary storage stamps are located in geographically distinct areas and are equipped to replicate the storage account's data therebetween. The load-balancing operation(s) include splitting partitions into child partitions upon detecting an increased workload as a result of active replication, merging partitions to form parent partitions upon detecting a reduction in workload as a result of decreased processing-related resource consumption, or offloading partitions based on resource consumption.Type: ApplicationFiled: May 23, 2011Publication date: September 11, 2014Applicant: MICROSOFT CORPORATIONInventors: Bradley Gene Calder, Niranjan Nilakantan, Shashwat Srivastav, Jiesheng Wu, Abdul Rafay Abbasi, Shane Mainali, Padmanabha Chakravarthy Uddaraju, Arild Einar Skjolsvold, Hemal Khatri, Ju Wang
-
Patent number: 8769134Abstract: A cloud computing platform contains a structured storage subsystem the provides scalable queues. The cloud computing platform monitors message throughput for the scalable queues and automatically increases or decreases subqueues that provide the operational functionality for each scalable queue. A visibility start time and cloud computing platform time are maintained for each message to provide an approximate first-in-first-out order for messages within each subqueue. A message in a subqueue may be available for processing when the current cloud computing time is greater than the visibility start of the message.Type: GrantFiled: May 15, 2012Date of Patent: July 1, 2014Assignee: Microsoft CorporationInventors: Bradley Gene Calder, Niranjan Nilakantan, Padmanabha Chakravarthy Uddaraju