US 11,698,894 B2
Multi-master data replication in a distributed multi-tenant system
Ian Varley, Austin, TX (US); Scott Hansma, Burlingame, CA (US); and Paul Burstein, San Francisco, CA (US)
Assigned to Salesforce, Inc., San Francisco, CA (US)
Filed by Salesforce, Inc., San Francisco, CA (US)
Filed on Dec. 15, 2021, as Appl. No. 17/644,417.
Application 17/644,417 is a continuation of application No. 16/566,613, filed on Sep. 10, 2019, granted, now 11,232,089.
Application 16/566,613 is a continuation of application No. 15/198,411, filed on Jun. 30, 2016, granted, now 10,459,908, issued on Oct. 29, 2019.
Application 15/198,411 is a continuation of application No. 13/252,214, filed on Oct. 4, 2011, granted, now 9,396,242, issued on Jul. 19, 2016.
Claims priority of provisional application 61/474,157, filed on Apr. 11, 2011.
Prior Publication US 2022/0121642 A1, Apr. 21, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 16/23 (2019.01); G06F 16/27 (2019.01); G06F 16/93 (2019.01); G06F 16/954 (2019.01); G06F 16/9535 (2019.01)
CPC G06F 16/2322 (2019.01) [G06F 16/2379 (2019.01); G06F 16/27 (2019.01); G06F 16/273 (2019.01); G06F 16/93 (2019.01); G06F 16/954 (2019.01); G06F 16/9535 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A method comprising:
monitoring, by a change detection thread running on a first server associated with a first instance of a plurality of instances of a replicated database, for changes to any of a plurality of records within one or more shared tables of the replicated database;
responsive to detection of a change to a record of the plurality of records, storing, by the change detection thread, an item onto a queue containing information regarding the change; and
packaging groups of changes, represented by multiple items on the queue, into chunks associated with a plurality of changed records, the chunks containing metadata about the plurality of changed records, the metadata including timestamp boundaries indicative of the plurality of changed records associated with the chunk, and the timestamp boundaries including a first timestamp indicating an earliest time at which the plurality of changed records was modified and a second timestamp indicating a latest time at which the plurality of changed records was modified, wherein the timestamp boundaries of a first chunk of the chunks overlap the timestamp boundaries of a second chunk of the chunks.