Patents by Inventor Vishal Kathuria
Vishal Kathuria 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: 10706069Abstract: Techniques for replication of a client database to remote devices are described. In one embodiment, an apparatus may comprise a server database management component operative to receive a collection subscription command from a client device at a database synchronization system, the collection subscription command specifying an object collection; and detect a collection change for the object collection; and an update queue management component operative to register the client device for push notification with a collection update queue associated with the object collection; and add a collection update to the collection update queue, the collection update based on the collection change. Other embodiments are described and claimed.Type: GrantFiled: June 30, 2016Date of Patent: July 7, 2020Assignee: FACEBOOK, INC.Inventors: Vishal Kathuria, Joshua Scott Evenson, Andras Biczo, Hong-Seok Kim, Leigh Jonathan Henry Pauls
-
Patent number: 10432703Abstract: Disclosed is a method and system for upgrading a local session between a server and a client in a Coordination Service to a global session on-demand. Exemplary embodiments may include (i) determining whether a type of transaction received at a server in a group of servers from a client is a first transaction type or a second transaction type, (ii) responsive to a determination that the transaction is first transaction type, creating a local session between the server and the client for executing the transaction, wherein the transactions of first transaction type do not require a vote from each of the servers in the group for executing; and (iii) responsive to a determination that the transaction is the second transaction type, converting the existing local session to a global session, wherein the transactions of second transaction type require a vote from each of the servers in the group for executing.Type: GrantFiled: November 26, 2012Date of Patent: October 1, 2019Assignee: Facebook, Inc.Inventor: Vishal Kathuria
-
Patent number: 10178168Abstract: The disclosure is directed to data replication in a distributed computing system. The system ensures a read-after-write consistency for the replicated data by associating the write requests with unique version numbers, and using them to obtain the data. A server associates a write request with a unique version number, and returns the version number to a client, which can use it in a subsequent read request for the data. On receiving a read request for a first data, the server extracts the version number from the request and ensures a specified write request associated with the version number is processed prior to obtaining the data. If the specified write request is processed, the server obtains the data and returns it to the client, else the server processes the pending write requests up until the version number and then the specified write request, and returns the specified data to the client.Type: GrantFiled: August 19, 2015Date of Patent: January 8, 2019Assignee: Facebook, Inc.Inventors: Muthukaruppan Annamalai, Zelaine Fong, Marc Alexander Celani, Vishal Kathuria, Sanketh Indarapu, Rohit Subhash Bhoj, Benjamin Francois Marie Renard, Sumeet Ungratwar
-
Patent number: 10027748Abstract: The disclosure is directed to data replication in a distributed computing system. The data, e.g., received from a client, is replicated to a first set of servers (“sync replica set”) synchronously and to a second set of servers asynchronously (“async tree”). A server can be a primary, secondary or a follower server. A sync replica set includes a primary server and one or more secondary servers. The async tree includes multiple follower servers deployed in a tree structure. A primary server can replicate the data to the secondary servers synchronously, and the secondary servers can replicate the data to one or more follower servers, e.g., a root node of the async tree, asynchronously. The root node then replicates the data to children of the root node, which then replicate to their children and so on until the leaf nodes of the async tree receive the data.Type: GrantFiled: July 10, 2015Date of Patent: July 17, 2018Assignee: Facebook, Inc.Inventors: Muthukaruppan Annamalai, Zelaine Fong, Marc Alexander Celani, Vishal Kathuria, Sanketh Indarapu, Rohit Subhash Bhoj, Benjamin Francois Marie Renard, Sumeet Ungratwar
-
Patent number: 9906589Abstract: The disclosure is related to a shard manager that manages assignment of shards (data partitions) to application servers. An application service (“app service”) provides a specific service to clients and can be executing on multiple application servers. The dataset managed by the app service can be divided into multiple shards and the shards can be assigned to different app servers. The shard manager can manage the assignment of shards to different app servers based on an assignment policy. The shard assignments can be published to a configuration service. A client can request the configuration service to provide identification information of the app server to which a particular shard the client intends to access is assigned. The shard manager can also provide dynamic load balancing solutions. The shard manager can poll the app servers in runtime to determine the load information and per-shard resource usage, and balance the load by reassigning the shards accordingly.Type: GrantFiled: November 14, 2014Date of Patent: February 27, 2018Assignee: Facebook, Inc.Inventors: Vishal Kathuria, Vikas Mehta, Muthukaruppan Annamalai, Zhenhua Guo
-
Publication number: 20180013714Abstract: Techniques for messaging using replication of a client database are described.Type: ApplicationFiled: December 20, 2016Publication date: January 11, 2018Inventors: Christopher Anthony Leach, Felix Leupold, Nicholas Miles Tuckett, Jonathan Richard Millican, Vishal Kathuria, Leigh Jonathan Henry Pauls
-
Publication number: 20180004829Abstract: Techniques for database replication between client devices are described. In another embodiment, an apparatus may comprise a local database management component operative to send a collection subscription command from a client device to a database synchronization system, the collection subscription command specifying an object collection; and update a local database store for the object collection on the client device using a collection update; and a local queue component operative to receive the collection update from the database synchronization system based on the collection subscription command, the collection update for the object collection, the collection update received as a push notification from the database synchronization system; and send an update acknowledgement in response to the collection update based on the updating of the local database store for the object collection. Other embodiments are described and claimed.Type: ApplicationFiled: June 30, 2016Publication date: January 4, 2018Applicant: Facebook, Inc.Inventors: Vishal Kathuria, Joshua Scott Evenson, Andras Biczo, Hong-Seok Kim, Leigh Jonathan Henry Pauls
-
Publication number: 20180004828Abstract: Techniques for replication of a client database to remote devices are described. In one embodiment, an apparatus may comprise a server database management component operative to receive a collection subscription command from a client device at a database synchronization system, the collection subscription command specifying an object collection; and detect a collection change for the object collection; and an update queue management component operative to register the client device for push notification with a collection update queue associated with the object collection; and add a collection update to the collection update queue, the collection update based on the collection change. Other embodiments are described and claimed.Type: ApplicationFiled: June 30, 2016Publication date: January 4, 2018Applicant: Facebook, Inc.Inventors: Vishal Kathuria, Joshua Scott Evenson, Andras Biczo, Hong-Seok Kim, Leigh Jonathan Henry Pauls
-
Patent number: 9680692Abstract: Disclosed is a method and system for registering a recursive watch on a node in hierarchical data structure. Embodiments of the disclosed technique may include (i) receiving a request to register an event listener on a source node, the source node being one of a plurality of nodes that are related to each other in a hierarchy; (ii) registering the event listener on the source node, the event listener configured to notify a client of an occurrence of a first event in the source node; and (iii) if the source node has a descendant node in the hierarchy, setting the event listener to notify the client of an occurrence of a second event in the descendant node without requiring registration of another event listener on the descendant node. Each of the nodes may represent, for example, a logical partition of a storage device.Type: GrantFiled: January 23, 2013Date of Patent: June 13, 2017Assignee: Facebook, Inc.Inventors: Phillip Liu, Vishal Kathuria
-
Publication number: 20170054802Abstract: The disclosure is directed to data replication in a distributed computing system. The system ensures a read-after-write consistency for the replicated data by associating the write requests with unique version numbers, and using them to obtain the data. A server associates a write request with a unique version number, and returns the version number to a client, which can use it in a subsequent read request for the data. On receiving a read request for a first data, the server extracts the version number from the request and ensures a specified write request associated with the version number is processed prior to obtaining the data. If the specified write request is processed, the server obtains the data and returns it to the client, else the server processes the pending write requests up until the version number and then the specified write request, and returns the specified data to the client.Type: ApplicationFiled: August 19, 2015Publication date: February 23, 2017Inventors: Muthukaruppan Annamalai, Zelaine Fong, Marc Alexander Celani, Vishal Kathuria, Sanketh Indarapu, Rohit Subhash Bhoj, Benjamin Francois Marie Renard, Sumeet Ungratwar
-
Publication number: 20170013058Abstract: The disclosure is directed to data replication in a distributed computing system. The data, e.g., received from a client, is replicated to a first set of servers (“sync replica set”) synchronously and to a second set of servers asynchronously (“async tree”). A server can be a primary, secondary or a follower server. A sync replica set includes a primary server and one or more secondary servers. The async tree includes multiple follower servers deployed in a tree structure. A primary server can replicate the data to the secondary servers synchronously, and the secondary servers can replicate the data to one or more follower servers, e.g., a root node of the async tree, asynchronously. The root node then replicates the data to children of the root node, which then replicate to their children and so on until the leaf nodes of the async tree receive the data.Type: ApplicationFiled: July 10, 2015Publication date: January 12, 2017Inventors: Muthukaruppan Annamalai, Zelaine Fong, Marc Alexander Celani, Vishal Kathuria, Sanketh Indarapu, Rohit Subhash Bhoj, Benjamin Francois Marie Renard, Sumeet Ungratwar
-
Publication number: 20160142475Abstract: The disclosure is related to a shard manager that manages assignment of shards (data partitions) to application servers. An application service (“app service”) provides a specific service to clients and can be executing on multiple application servers. The dataset managed by the app service can be divided into multiple shards and the shards can be assigned to different app servers. The shard manager can manage the assignment of shards to different app servers based on an assignment policy. The shard assignments can be published to a configuration service. A client can request the configuration service to provide identification information of the app server to which a particular shard the client intends to access is assigned. The shard manager can also provide dynamic load balancing solutions. The shard manager can poll the app servers in runtime to determine the load information and per-shard resource usage, and balance the load by reassigning the shards accordingly.Type: ApplicationFiled: November 14, 2014Publication date: May 19, 2016Inventors: Vishal Kathuria, Vikas Mehta, Muthukaruppan Annamalai, Zhenhua Guo
-
Publication number: 20160043981Abstract: Techniques for a persistent queue for message syncing are described. A recipient inbound messaging component may receive an incoming update at a recipient update queue. A recipient queue management component may determine an incoming recipient sequence number for the recipient update queue. A recipient outbound messaging component may transmit the incoming update to the recipient messaging endpoint. Other embodiments are described and claimed.Type: ApplicationFiled: February 13, 2015Publication date: February 11, 2016Applicant: Facebook, Inc.Inventors: Jason Curtis Jenks, Rahul Iyer, Vishal Kathuria, Thomas Apostolos Georgiou, Jeremy David Fein
-
Publication number: 20140207940Abstract: Disclosed is a method and system for registering a recursive watch on a node in hierarchical data structure. Embodiments of the disclosed technique may include (i) receiving a request to register an event listener on a source node, the source node being one of a plurality of nodes that are related to each other in a hierarchy; (ii) registering the event listener on the source node, the event listener configured to notify a client of an occurrence of a first event in the source node; and (iii) if the source node has a descendant node in the hierarchy, setting the event listener to notify the client of an occurrence of a second event in the descendant node without requiring registration of another event listener on the descendant node. Each of the nodes may represent, for example, a logical partition of a storage device.Type: ApplicationFiled: January 23, 2013Publication date: July 24, 2014Inventors: Phillip LIU, Vishal KATHURIA
-
Publication number: 20140195489Abstract: Architecture that addresses an end-to-end solution for logical transactional replication from a shared-nothing clustered database management system, which uses adaptive cloning for high availability. This can be time based using a global logical timestamp. The disclosed architecture, used for refreshing stale clones, does not preserve user transaction boundaries, which is a more complex situation than where the boundaries are preserved. In such a scenario it is probable that for a given data segment no clone of the segment may contain the complete user transaction history, and hence, the history has to be pieced together from the logs of multiple different clones. This is accomplished such that log harvesting is coordinated with the clone state transitions to ensure the correctness of logical replication.Type: ApplicationFiled: January 21, 2014Publication date: July 10, 2014Applicant: MICROSOFT CORPORATIONInventors: Rui Wang, Michael E. Habben, Qun Guo, Peter Byrne, Robin D. Dhamankar, Vishal Kathuria, Mahesh K. Sreenivas, Yixue Zhu, Xiaowei Jiang
-
Publication number: 20140149489Abstract: Disclosed is a method and system for upgrading a local session between a server and a client in a Coordination Service to a global session on-demand. Exemplary embodiments may include (i) determining whether a type of transaction received at a server in a group of servers from a client is a first transaction type or a second transaction type, (ii) responsive to a determination that the transaction is first transaction type, creating a local session between the server and the client for executing the transaction, wherein the transactions of first transaction type do not require a vote from each of the servers in the group for executing; and (iii) responsive to a determination that the transaction is the second transaction type, converting the existing local session to a global session, wherein the transactions of second transaction type require a vote from each of the servers in the group for executing.Type: ApplicationFiled: November 26, 2012Publication date: May 29, 2014Inventor: Vishal Kathuria
-
Patent number: 8671074Abstract: Architecture that addresses an end-to-end solution for logical transactional replication from a shared-nothing clustered database management system, which uses adaptive cloning for high availability. This can be time based using a global logical timestamp. The disclosed architecture, used for refreshing stale clones, does not preserve user transaction boundaries, which is a more complex situation than where the boundaries are preserved. In such a scenario it is probable that for a given data segment no clone of the segment may contain the complete user transaction history, and hence, the history has to be pieced together from the logs of multiple different clones. This is accomplished such that log harvesting is coordinated with the clone state transitions to ensure the correctness of logical replication.Type: GrantFiled: April 12, 2010Date of Patent: March 11, 2014Assignee: Microsoft CorporationInventors: Rui Wang, Michael E. Habben, Qun Guo, Peter Byrne, Robin D. Dhamankar, Vishal Kathuria, Mahesh K. Sreenivas, Yixue Zhu, Xiaowei Jiang
-
Patent number: 8131700Abstract: Methods, systems, and computer-readable media are disclosed for transitioning clones and clone data access maps in response to node or media failure without blocking queries. In a system, a data request interface is configured to receive a query to access data at a storage device. Data management logic is configured to access clone state information of a plurality of clones including clones in a static state and clones in a transitory state. The data management logic is further configured to process the query to access the data according to the dynamic clone data access map, with functional correctness maintained.Type: GrantFiled: September 25, 2008Date of Patent: March 6, 2012Assignee: Microsoft CorporationInventors: Yixue Zhu, Robert H. Gerber, Vishal Kathuria, Samuel Hyrum Smith
-
Publication number: 20110251997Abstract: Architecture that addresses an end-to-end solution for logical transactional replication from a shared-nothing clustered database management system, which uses adaptive cloning for high availability. This can be time based using a global logical timestamp. The disclosed architecture, used for refreshing stale clones, does not preserve user transaction boundaries, which is a more complex situation than where the boundaries are preserved. In such a scenario it is probable that for a given data segment no clone of the segment may contain the complete user transaction history, and hence, the history has to be pieced together from the logs of multiple different clones. This is accomplished such that log harvesting is coordinated with the clone state transitions to ensure the correctness of logical replication.Type: ApplicationFiled: April 12, 2010Publication date: October 13, 2011Applicant: Microsoft CorporationInventors: Rui Wang, Michael E. Habben, Qun Guo, Peter Byrne, Robin D. Dhamankar, Vishal Kathuria, Mahesh K. Sreenivas, Yixue Zhu, Xiaowei Jiang
-
Patent number: 7814057Abstract: Systems and methods are disclosed that facilitate providing page-level database restore functionality upon detection of a corruption event. Updates to a data page in a database can trigger generation of a snapshot of the data page, and an update log can be maintained that stores information related to page updates. Subsequent snapshots can be generated at predetermined intervals and can trigger truncation of a log segment and initiation of a new log segment. Upon detection of page corruption, a most-recent uncorrupt snapshot of the corrupt page can be identified, copied to the location of the corrupt page in the database, and modified according to the log segment associated with the uncorrupt snapshot to make the page current as of the corrupting event, all of which can be performed to restore the database without having to take the database offline.Type: GrantFiled: April 5, 2005Date of Patent: October 12, 2010Assignee: Microsoft CorporationInventors: Vishal Kathuria, Michael J Zwilling, Hanumantha R Kodavalla, Steven R Schmidt, Martin J Sleeman, Rajeev B Rajan, Artem A Oks