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: 10706069
    Abstract: 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: Grant
    Filed: June 30, 2016
    Date of Patent: July 7, 2020
    Assignee: FACEBOOK, INC.
    Inventors: Vishal Kathuria, Joshua Scott Evenson, Andras Biczo, Hong-Seok Kim, Leigh Jonathan Henry Pauls
  • Patent number: 10432703
    Abstract: 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: Grant
    Filed: November 26, 2012
    Date of Patent: October 1, 2019
    Assignee: Facebook, Inc.
    Inventor: Vishal Kathuria
  • Patent number: 10178168
    Abstract: 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: Grant
    Filed: August 19, 2015
    Date of Patent: January 8, 2019
    Assignee: 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: 10027748
    Abstract: 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: Grant
    Filed: July 10, 2015
    Date of Patent: July 17, 2018
    Assignee: 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: 9906589
    Abstract: 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: Grant
    Filed: November 14, 2014
    Date of Patent: February 27, 2018
    Assignee: Facebook, Inc.
    Inventors: Vishal Kathuria, Vikas Mehta, Muthukaruppan Annamalai, Zhenhua Guo
  • Publication number: 20180013714
    Abstract: Techniques for messaging using replication of a client database are described.
    Type: Application
    Filed: December 20, 2016
    Publication date: January 11, 2018
    Inventors: Christopher Anthony Leach, Felix Leupold, Nicholas Miles Tuckett, Jonathan Richard Millican, Vishal Kathuria, Leigh Jonathan Henry Pauls
  • Publication number: 20180004829
    Abstract: 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: Application
    Filed: June 30, 2016
    Publication date: January 4, 2018
    Applicant: Facebook, Inc.
    Inventors: Vishal Kathuria, Joshua Scott Evenson, Andras Biczo, Hong-Seok Kim, Leigh Jonathan Henry Pauls
  • Publication number: 20180004828
    Abstract: 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: Application
    Filed: June 30, 2016
    Publication date: January 4, 2018
    Applicant: Facebook, Inc.
    Inventors: Vishal Kathuria, Joshua Scott Evenson, Andras Biczo, Hong-Seok Kim, Leigh Jonathan Henry Pauls
  • Patent number: 9680692
    Abstract: 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: Grant
    Filed: January 23, 2013
    Date of Patent: June 13, 2017
    Assignee: Facebook, Inc.
    Inventors: Phillip Liu, Vishal Kathuria
  • Publication number: 20170054802
    Abstract: 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: Application
    Filed: August 19, 2015
    Publication date: February 23, 2017
    Inventors: Muthukaruppan Annamalai, Zelaine Fong, Marc Alexander Celani, Vishal Kathuria, Sanketh Indarapu, Rohit Subhash Bhoj, Benjamin Francois Marie Renard, Sumeet Ungratwar
  • Publication number: 20170013058
    Abstract: 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: Application
    Filed: July 10, 2015
    Publication date: January 12, 2017
    Inventors: Muthukaruppan Annamalai, Zelaine Fong, Marc Alexander Celani, Vishal Kathuria, Sanketh Indarapu, Rohit Subhash Bhoj, Benjamin Francois Marie Renard, Sumeet Ungratwar
  • Publication number: 20160142475
    Abstract: 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: Application
    Filed: November 14, 2014
    Publication date: May 19, 2016
    Inventors: Vishal Kathuria, Vikas Mehta, Muthukaruppan Annamalai, Zhenhua Guo
  • Publication number: 20160043981
    Abstract: 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: Application
    Filed: February 13, 2015
    Publication date: February 11, 2016
    Applicant: Facebook, Inc.
    Inventors: Jason Curtis Jenks, Rahul Iyer, Vishal Kathuria, Thomas Apostolos Georgiou, Jeremy David Fein
  • Publication number: 20140207940
    Abstract: 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: Application
    Filed: January 23, 2013
    Publication date: July 24, 2014
    Inventors: Phillip LIU, Vishal KATHURIA
  • Publication number: 20140195489
    Abstract: 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: Application
    Filed: January 21, 2014
    Publication date: July 10, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Rui Wang, Michael E. Habben, Qun Guo, Peter Byrne, Robin D. Dhamankar, Vishal Kathuria, Mahesh K. Sreenivas, Yixue Zhu, Xiaowei Jiang
  • Publication number: 20140149489
    Abstract: 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: Application
    Filed: November 26, 2012
    Publication date: May 29, 2014
    Inventor: Vishal Kathuria
  • Patent number: 8671074
    Abstract: 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: Grant
    Filed: April 12, 2010
    Date of Patent: March 11, 2014
    Assignee: Microsoft Corporation
    Inventors: Rui Wang, Michael E. Habben, Qun Guo, Peter Byrne, Robin D. Dhamankar, Vishal Kathuria, Mahesh K. Sreenivas, Yixue Zhu, Xiaowei Jiang
  • Patent number: 8131700
    Abstract: 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: Grant
    Filed: September 25, 2008
    Date of Patent: March 6, 2012
    Assignee: Microsoft Corporation
    Inventors: Yixue Zhu, Robert H. Gerber, Vishal Kathuria, Samuel Hyrum Smith
  • Publication number: 20110251997
    Abstract: 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: Application
    Filed: April 12, 2010
    Publication date: October 13, 2011
    Applicant: Microsoft Corporation
    Inventors: Rui Wang, Michael E. Habben, Qun Guo, Peter Byrne, Robin D. Dhamankar, Vishal Kathuria, Mahesh K. Sreenivas, Yixue Zhu, Xiaowei Jiang
  • Patent number: 7814057
    Abstract: 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: Grant
    Filed: April 5, 2005
    Date of Patent: October 12, 2010
    Assignee: Microsoft Corporation
    Inventors: Vishal Kathuria, Michael J Zwilling, Hanumantha R Kodavalla, Steven R Schmidt, Martin J Sleeman, Rajeev B Rajan, Artem A Oks