MULTI-MASTER DATA REPLICATION IN A DISTRIBUTED MULTI-TENANT SYSTEM
First Claim
Patent Images
1. A method, comprising:
- a plurality of instances, each being separately responsible for a plurality of database tables, regularly replicating updates to the database tables using a plurality of chunks;
thereby consistentlydetecting, serving, requesting, and upsetting changes to the database tables.
1 Assignment
0 Petitions
Accused Products
Abstract
A multi-master replication system is disclosed. The multi-master replication system allows a large set of peer instances to collaboratively replicate data to each other.
106 Citations
61 Claims
-
1. A method, comprising:
-
a plurality of instances, each being separately responsible for a plurality of database tables, regularly replicating updates to the database tables using a plurality of chunks;
thereby consistentlydetecting, serving, requesting, and upsetting changes to the database tables. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A machine-readable medium carrying one or more sequences of instructions for implementing a method for providing an interface for object relationships, comprising:
-
a plurality of instances, each being separately responsible for a plurality of database tables, regularly replicating updates to the database tables using a plurality of chunks;
thereby consistentlydetecting, serving, requesting, and upserting changes to the database tables.
-
-
11. A method for performing replication in a multi-tenant database system, the method comprising:
-
a plurality of instances, each being separately responsible for a plurality of database tables, regularly replicating updates to the database tables using a plurality of chunks;
thereby consistentlydetecting, serving, requesting, and upserting changes to the database tables.
-
-
12. A method for idempotent application of modifications to a multi-tenant database system, comprising:
-
a plurality of instances, each being separately responsible for a plurality of database tables, regularly replicating updates to the database tables using a plurality of chunks; regularly checking timestamps of database records on a record-by-record basis, thereby making the application of modified data to be idempotent and tolerant of reordering; and using markers for deleted data so that the deleted data can be applied to the database records in a same stream as insert data or update data. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A method of achieving dynamic hierarchical arrangement of nodes for optimal geographic data distribution, comprising:
-
dividing instances into leaders and non-leaders within a particular data center; dynamically re-adjusting designation of leaders and non-leaders based at least upon load-size and reachability including but not limited to system failures or planned outages; and steering instance data to traverse multiple hops via leaders, so as to ensure that each database update only traverses a data center link a minimum number of times. - View Dependent Claims (24, 25, 26, 27)
-
-
28. A method of achieving efficiency within a database environment, comprising:
-
a plurality of instances, each being separately responsible for a plurality of database tables, regularly replicating updates to the database tables using a plurality of chunks; regularly reviewing all chunks for any outstanding non-upserted chunks; after a predetermined time period, compacting the non-upserted chunks into catchup chunks; marking the catchup chunks with a special bit to signify a status of being a catchup chunk; and during a process of caching catchup chunks, performing no binary caching, either on a client or a server. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35)
-
-
36. A method of controlling a batch size within a relational database using a combination of date and unique ID endpoints, comprising:
-
packaging a plurality of updates to database records into chunks using timestamps; checking all database records having the same timestamp to determine whether the total amount of records exceeds a predetermined maximum batch size; re-checking the records both for having the same timestamp and for an entity ID; and allowing only those records having the same timestamp and the same entity ID to be packaged into a particular chunk.
-
-
37. A machine-readable medium carrying one or more sequences of instructions for idempotent application of modifications to a multi-tenant database system in a multi-tenant database system, which instructions, when executed by one or more processors, cause the one or more processors to carry out the steps of:
-
a plurality of instances, each being separately responsible for a plurality of database tables, regularly replicating updates to the database tables using a plurality of chunks; regularly checking timestamps of database records on a record-by-record basis, thereby making the application of modified data to be idempotent and tolerant of reordering; and using markers for deleted data so that the deleted data can be applied to the database records in a same stream as insert data or update data. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46, 47)
-
-
48. A machine-readable medium carrying one or more sequences of instructions for achieving dynamic hierarchical arrangement of nodes for optimal geographic data distribution in a multi-tenant database system, which instructions, when executed by one or more processors, cause the one or more processors to carry out the steps of:
-
dividing instances into leaders and non-leaders within a particular data center; dynamically re-adjusting designation of leaders and non-leaders based at least upon load-size and reachability including but not limited to system failures or planned outages; and steering instance data to traverse multiple hops via leaders, so as to ensure that each database update only traverses a data center link a minimum number of times. - View Dependent Claims (49, 50, 51, 52)
-
-
53. A machine-readable medium carrying one or more sequences of instructions for achieving efficiency within a multi-tenant database system, which instructions, when executed by one or more processors, cause the one or more processors to carry out the steps of:
-
a plurality of instances, each being separately responsible for a plurality of database tables, regularly replicating updates to the database tables using a plurality of chunks; regularly reviewing all chunks for any outstanding non-upserted chunks; after a predetermined time period, compacting the non-upserted chunks into catchup chunks; marking the catchup chunks with a special bit to signify a status of being a catchup chunk; and during a process of caching catchup chunks, performing no binary caching, either on a client or a server. - View Dependent Claims (54, 55, 56, 57, 58, 59, 60)
-
-
61. A machine-readable medium carrying one or more sequences of instructions for controlling a batch size within a relational database using a combination of date and unique ID endpoints in a multi-tenant database system, which instructions, when executed by one or more processors, cause the one or more processors to carry out the steps of:
-
packaging a plurality of updates to database records into chunks using timestamps; checking all database records having the same timestamp to determine whether the total amount of records exceeds a predetermined maximum batch size; re-checking the records both for having the same timestamp and for an entity ID; and allowing only those records having the same timestamp and the same entity ID to be packaged into a particular chunk.
-
Specification