Distributed database configuration
AssigneeGoogle Inc.
InventorsAlexander Shraer, Artyom Sharov, Arif Abdulhusein Merchant, Brian F. Cooper
Life of this patent
Estimating the term…
Abstract
Replicas are selected in a large distributed network, and the roles for these replicas are identified. In one example, a leader is selected from among candidate computing clusters. To make this selection, an activity monitor predicts or monitors the workload of one or more clients. Different activities of the workload are given corresponding weights. The delay in performing requested activities, modified by these weights is found, and the candidate leader with the lowest weighted delay is selected as the leader.
Claims18
A computer-implemented method executed by data processing hardware that causes the data processing hardware to perform operations comprising:
- receiving historic data corresponding to a plurality of computing clusters, the historic data comprising past workload data;
- predicting, based on the historic data, a future workload for the plurality of the computing clusters;
- selecting, based on the future workload, a leader computing cluster from the plurality of the computing clusters, the leader computing cluster of the plurality of the computing clusters executing a distributed database, the leader computing cluster responsible for proposing operations for the plurality of the computing clusters to perform on the distributed database;
- monitoring interactions between a client application and the distributed database;
- generating workload data representative of the interactions between the client application and the distributed database;
- determining, based on the workload data, that a different computing cluster of the plurality of the computing clusters has less communication delay than the leader computing cluster;
- and
- assigning, based on determining that the different computing cluster has less communication delay than the leader computing cluster, the different computing cluster as a new leader computing cluster.
A computer-implemented method executed by data processing hardware that causes the data processing hardware to perform operations comprising:
- selecting a leader computing cluster from a plurality of the computing clusters, the leader computing cluster of the plurality of the computing clusters executing a distributed database, the leader computing cluster responsible for proposing operations for the plurality of the computing clusters to perform on the distributed database, the distributed database comprising one or more voters that are configured to accept or deny the proposed operations of the leader;
- monitoring interactions between a client application and the distributed database;
- generating workload data representative of the interactions between the client application and the distributed database;
- determining, based on the workload data, that a different computing cluster of the plurality of the computing clusters has less communication delay than the leader computing cluster;
- assigning, based on determining that the different computing cluster has less communication delay than the leader computing cluster, the different computing cluster as a new leader computing cluster;
- and
- in response to assigning the different computing cluster as the new leader computing cluster, assigning one or more new voters for the distributed database.
A system comprising:
- data processing hardware;
- and
- memory hardware in communication with the data processing hardware, the memory hardware storing instructions that when executed on the data processing hardware cause the data processing hardware to perform operations comprising:
- receiving historic data corresponding to a plurality of computing clusters;
- predicting, based on the historic data, a future workload for the plurality of the computing clusters;
- selecting, based on the future workload, a leader computing cluster from the plurality of the computing clusters, the leader computing cluster one of the plurality of the computing clusters executing a distributed database, the leader computing cluster responsible for proposing operations for the plurality of the computing clusters to perform on the distributed database;
- monitoring interactions between a client application and the distributed database;
- generating workload data representative of the interactions between the client application and the distributed database;
- determining, based on the workload data, that a different computing cluster of the plurality of the computing clusters has less communication delay than the leader computing cluster;
- and
- assigning, based on determining that the different computing cluster has less communication delay than the leader computing cluster, the different computing cluster as a new leader computing cluster.
A system comprising:
- data processing hardware;
- and
- memory hardware in communication with the data processing hardware, the memory hardware storing instructions that when executed on the data processing hardware cause the data processing hardware to perform operations comprising:
- selecting a leader computing cluster from a plurality of the computing clusters, the leader computing cluster of the plurality of the computing clusters executing a distributed database, the leader computing cluster responsible for proposing operations for the plurality of the computing clusters to perform on the distributed database, the distributed database comprising one or more voters that are configured to accept or deny the proposed operations of the leader;
- monitoring interactions between a client application and the distributed database;
- generating workload data representative of the interactions between the client application and the distributed database;
- determining, based on the workload data, that a different computing cluster of the plurality of the computing clusters has less communication delay than the leader computing cluster;
- assigning, based on determining that the different computing cluster has less communication delay than the leader computing cluster, the different computing cluster as a new leader computing cluster;
- and
- in response to assigning the different computing cluster as the new leader computing cluster, assigning one or more new voters for the distributed database.
Dependencies are inferred from the claim text.