# US 11,308,043 B2 · Distributed database replication

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,308,043 B2
- Document ID: US11308043B2
- Status: Granted
- Kind: B2
- Application number: 16/681,922
- Filed: 2019-11-13
- Published: 2021-05-13
- Granted: 2022-04-19
- Earliest claimed: 2019-11-13
- Assignees: salesforce.com, inc.
- Applicants: Salesforce.com, Inc.
- Inventors: Xiaodan Wang; Mikhail Chainani
- Web page: https://patentgrep.com/patent/US11308043B2

## CPC

- G06F 16/1844: {Management specifically adapted to replicated file systems}
- G06F 11/1451: {by selection of backup contents}
- G06F 11/1464: {for networked environments}
- G06F 11/2028: {eliminating a faulty processor or activating a spare}
- G06F 11/203: {using migration}
- G06F 11/2041: {with more than one idle spare processing component}
- G06F 11/2048: {where the redundant components share neither address space nor persistent storage}
- G06F 11/2094: {Redundant storage or storage space (G06F11/2056 takes precedence)}
- G06F 11/2097: {maintaining the standby controller/processing unit updated (initialisation or re-synchronisation thereof G06F11/1658 and subgroups)}
- G06F 16/178: Techniques for file synchronisation in file systems
- G06F 16/185: Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof (details of archiving G06F16/11)
- G06F 16/2358: {Change logging, detection, and notification (replication G06F16/27)}
- G06F 16/2365: {Ensuring data consistency and integrity}
- G06F 16/2379: {Updates performed during online database operations; commit processing}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 16/278: {Data partitioning, e.g. horizontal or vertical partitioning}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A request may be received to relocate source data within a distributed database system arranged in a hierarchy composed of a plurality of levels. The plurality of levels may include a local level that includes a plurality of pods, which may be end points in the hierarchy. The data may be stored at a source pod. The request may identify a designated level in the hierarchy at which to relocate the source data. A target pod within the distributed database system may be selected. The source pod and the target pod may be located remotely from one another. The data may be replicated to the target pod via a local change bus in communication with the source pod. The local change bus may capture changes made to data stored in the source pod and transmit the captured changes to the target pod via the hierarchy.

## Claims

### Claim 1

A computer-implemented method comprising:
receiving a request to relocate source data within a distributed database system arranged in a hierarchy composed of a plurality of levels, the plurality of levels including a local level that includes a plurality of pods, the plurality of pods being end points in the hierarchy, the data being stored at a source pod, the request identifying a designated level in the hierarchy at which to relocate the source data;
identifying a replication policy associated with the source data, the replication policy governing the replication of data between different pods within the hierarchy;
selecting a target pod within the distributed database system based on the replication policy by applying a hierarchically consistent hashing function to an identifier associated with the source data to determine a target pod identifier, the hierarchically consistent hashing function producing values that map to locations on a consistent hash ring, the source pod and the target pod located remotely from one another at the designated level in the hierarchy;
replicating the data to the target pod via a local change bus in communication with the source pod, the local change bus capturing changes made to data stored in the source pod, the local change bus transmitting the captured changes to the target pod via the hierarchy; and
transitioning the replicated data on the target pod to an activated state in which the target pod processes requests associated with the source data and transitioning the source data on the source pod to a deactivated state in which the source pod does not process requests associated with the source data.

### Claim 2 (depends on 1)

The computer-implemented method recited in claim 1, wherein the distributed database system is configured to store data associated with a plurality of database tenants.

### Claim 3 (depends on 2)

The computer-implemented method recited in claim 2, wherein the source data is associated with a designated one of the database tenants.

### Claim 4 (depends on 1)

The computer-implemented method recited in claim 1, wherein the local level is specific to a designated data center.

### Claim 5 (depends on 4)

The computer-implemented method recited in claim 4, wherein the plurality of levels includes a global level, a regional level, and a local level, and wherein the global level includes a plurality of geographic regions, and wherein each geographic region includes a plurality of data centers.

### Claim 6 (depends on 5)

The computer-implemented method recited in claim 5, wherein the designated data center includes a local replication policy node, the local replication policy node configured to determine whether the source pod and the target pod are located in different data centers.

### Claim 7 (depends on 6)

The computer-implemented method recited in claim 6, wherein the source pod and the target pod are located in different data centers within the same region.

### Claim 8 (depends on 7)

The computer-implemented method recited in claim 7, wherein transmitting the captured changes to the target pod via the hierarchy comprises transmitting the captured changes to a regional replication policy node.

### Claim 9

A distributed database system configured to perform a method comprising:
receiving a request to relocate source data within a distributed database system arranged in a hierarchy composed of a plurality of levels, the plurality of levels including a local level that includes a plurality of pods, the plurality of pods being end points in the hierarchy, the data being stored at a source pod, the request identifying a designated level in the hierarchy at which to relocate the source data;
identifying a replication policy associated with the source data, the replication policy governing the replication of data between different pods within the hierarchy;
selecting a target pod within the distributed database system based on the replication policy by applying a hierarchically consistent hashing function to an identifier associated with the source data to determine a target pod identifier, the hierarchically consistent hashing function producing values that map to locations on a consistent hash ring, the source pod and the target pod located remotely from one another at the designated level in the hierarchy;
replicating the data to the target pod via a local change bus in communication with the source pod, the local change bus capturing changes made to data stored in the source pod, the local change bus transmitting the captured changes to the target pod via the hierarchy; and
transitioning the replicated data on the target pod to an activated state in which the target pod processes requests associated with the source data and transitioning the source data on the source pod to a deactivated state in which the source pod does not process requests associated with the source data.

### Claim 10 (depends on 9)

The distributed database system recited in claim 9, wherein the distributed database system is configured to store data associated with a plurality of database tenants, wherein the source data is associated with a designated one of the database tenants, and wherein selecting the target pod comprises applying a hashing function to an identifier associated with the source data.

### Claim 11 (depends on 9)

The distributed database system recited in claim 9, wherein the local level is specific to a designated data center, wherein the plurality of levels includes a global level, a regional level, and a local level, and wherein the global level includes a plurality of geographic regions, and wherein each geographic region includes a plurality of data centers.

### Claim 12 (depends on 11)

The distributed database system recited in claim 11, wherein the designated data center includes a local replication policy node, the local replication policy node configured to determine whether the source pod and the target pod are located in different data centers, wherein the source pod and the target pod are located in different data centers within the same region, and wherein transmitting the captured changes to the target pod via the hierarchy comprises transmitting the captured changes to a regional replication policy node.

### Claim 13

One or more non-transitory computer readable media having instructions stored thereon for performing a method, the method comprising:
receiving a request to relocate source data within a distributed database system arranged in a hierarchy composed of a plurality of levels, the plurality of levels including a local level that includes a plurality of pods, the plurality of pods being end points in the hierarchy, the data being stored at a source pod, the request identifying a designated level in the hierarchy at which to relocate the source data;
identifying a replication policy associated with the source data, the replication policy governing the replication of data between different pods within the hierarchy;
selecting a target pod within the distributed database system based on the replication policy by applying a hierarchically consistent hashing function to an identifier associated with the source data to determine a target pod identifier, the hierarchically consistent hashing function producing values that map to locations on a consistent hash ring, the source pod and the target pod located remotely from one another at the designated level in the hierarchy;
replicating the data to the target pod via a local change bus in communication with the source pod, the local change bus capturing changes made to data stored in the source pod, the local change bus transmitting the captured changes to the target pod via the hierarchy; and
transitioning the replicated data on the target pod to an activated state in which the target pod processes requests associated with the source data and transitioning the source data on the source pod to a deactivated state in which the source pod does not process requests associated with the source data.

### Claim 14 (depends on 13)

The one or more non-transitory computer readable media recited in claim 13, wherein the distributed database system is configured to store data associated with a plurality of database tenants, and wherein the source data is associated with a designated one of the database tenants.
