IP Library Granted Patent US 11,308,043
Granted Patent B2
US 11,308,043 · App. 16/681,922 · Granted Apr 19, 2022

Distributed database replication

Inventors: Xiaodan Wang (Dublin, CA); Mikhail Chainani (San Francisco, CA)
Assignee: salesforce.com, Inc.
G06F16/1844G06F11/1451G06F11/1464G06F11/203G06F11/2028G06F16/178G06F16/185G06F16/2358G06F16/2365G06F16/2379G06F16/27G06F16/278
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,308,043
App. No.
16/681,922
Granted
Apr 19, 2022
Kind
B2
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 (29)

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.

2. 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.

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

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

5. 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.

6. 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.

7. 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.

8. 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.

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.

10. 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.

11. 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.

12. 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.

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.

14. 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.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0452 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2019
From: WANG, XIAODAN; CHAINANI, MIKHAIL
To: SALESFORCE.COM, INC.
Reel/Frame 050989/0880 →
Continuity (1)
Related Publication 20210141770A1 · May 13, 2021