IP Library Granted Patent US 9,026,493
Granted Patent B1
US 9,026,493 · App. 13/036,933 · Granted May 5, 2015

Multi-master RDBMS improvements for distributed computing environment

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 9,026,493
App. No.
13/036,933
Granted
May 5, 2015
Kind
B1
Abstract

A system and method is disclosed, which facilitates data replication in a multi-master Relational Database Management Systems (RDBMS). An in-memory attribute is stored at a server of a multi-master database system. The in-memory attribute is associated with an operation, a record, and a global unique identifier (GUID) assuring uniqueness across the database system. The in-memory attribute indicates disallowing at the server additional requested operations associated with the record. The operation associated with the in-memory attribute is performed at the server and logged in a global accessible log associated with the server and available to other servers of the database system. The in-memory attribute is removed from the server based on a global accessible log associated with at least one of the other servers.

Claims (64)

1. A method comprising:

storing an in-memory attribute at a server of a multi-master database system having a plurality of servers, the in-memory attribute including an operation, a record, a count indicating a number of servers that need to apply the operation, and a global unique identifier assuring uniqueness across the multi-master database system, the in-memory attribute indicating disallowing additional requested operations to the record at the server;

performing at the server the operation included within the in-memory attribute;

logging the performed operation in a server log contained within a global accessible log associated with the server and accessible to other servers of the multi-master database system, the global accessible log stored at a remote file system connected to the plurality of servers of the multi-master database system through a network, the global accessible log comprising a number of server logs equaling a number of the plurality of servers, each server log associated with a respective server, each respective server configured to log performed operations in its respective server log and monitor the other server logs;

broadcasting the in-memory attribute to the other servers of the multi-master database system, the broadcasted in-memory attribute indicating disallowing additional requested operations to the record at each of the other servers receiving the broadcasted in-memory attribute;

monitoring the server logs of the global accessible log associated with each of the other servers in the multi-master database system; and

based on the monitoring of the server logs:

when the count included in the in-memory attribute of the server for each server log indicates that a corresponding one of the other servers has applied the operation, decrementing the count within the in-memory attribute of other servers that need to apply the operation; and

when the count equals zero, removing the in-memory attribute from the server after global accessible logs associated with the other servers indicate that the operation associated with the in-memory attribute has been performed at the other servers, the global accessible logs stored at the remote file system.

2. The method of claim 1 , wherein at least one of the operation and the record is associated with a unique attribute.

3. The method of claim 1 , wherein the in-memory attribute is stored responsive to a requested operation at the server.

4. The method of claim 3 , further comprising:

removing the in-memory attribute from the server when the count reaches zero, indicating that all other servers have applied the operation.

5. The method of claim 4 , further comprising accessing in parallel the global accessible log associated with each of the other servers in the multi-master database system.

6. The method of claim 1 , wherein the in-memory attribute is stored responsive to receiving a broadcasted in-memory attribute from at least one of the other servers in the multi-master database system, wherein the in-memory attribute indicates which other server broadcasted the in-memory attribute.

7. The method of claim 6 , further comprising:

accessing a global accessible log associated with the broadcasting other server prior to performing the operation;

performing at the server the operation associated with the in-memory attribute according to the accessed globally accessible log; and

removing the in-memory attribute from the server based on the accessed global accessible log indicating that the broadcasting other server has applied the operation.

8. The method of claim 1 , further comprising disallowing storing the in-memory attribute at the server if an in-memory attribute associated with the operation is already stored in memory at the server.

9. The method of claim 1 , wherein the global accessible log associated with the server indicates that the logged operation is to be performed by the other servers of the multi-master database system.

10. The method of claim 1 , further comprising validating the operation prior to storing the in-memory attribute.

11. The method of claim 1 , wherein the GUID functions as a hidden primary key.

12. The method of claim 1 , further comprising generating the GUID based on a function and a seed value.

13. The method of claim 1 , further comprising generating the GUID based on a shard indicator associated with the server.

14. The method of claim 1 , wherein the global accessible log includes a server ID associated with each operation identifying the server.

15. The method of claim 1 , wherein the multi-master database system is a Relational Database Management System (RDBMS).

16. A system comprising:

a server including a non-transitory memory to store an in-memory attribute including an operation, a record, a count indicating a number of servers that need to apply the operation, and a global unique identifier assuring uniqueness across a multi-master database system having a plurality of servers, the in-memory attribute indicates disallowing additional requested operations to the record at the server, the server performing the operation of the in-memory attribute;

wherein the server:

logs the performed operation in a server log contained within a global accessible log associated with the server and available to other servers of the multi-master database system, the global accessible log stored at a remote file system connected to the plurality of servers of the multi-master database system through a network, the global accessible log comprising a number of server logs equaling a number of the plurality of servers, each server log associated with a respective server, each respective server configured to log performed operations in its respective server log and monitor the other server logs; and

broadcasts the in-memory attribute to the other servers of the multi-master database system, the broadcasted in-memory attribute indicating disallowing additional requested operations to the record at each of the other servers receiving the broadcasted in-memory attribute;

monitor the server logs of the global accessible log associated with each of the other servers in the multi-master database system;

when the count associated with the in-memory attribute of the server for each server log indicates that a corresponding one of the other servers has applied the operation, decrements the count within the in-memory attribute of other servers that need to apply the operation; and

when the count equals zero, removes the in-memory attribute from the server after global accessible logs associated with the other servers indicate that the operation associated with the in-memory attribute has been performed at the other servers, the global accessible logs stored at the remote file system.

17. The system of claim 16 , wherein at least one of the operation and the record is associated with a unique attribute.

18. The system of claim 16 , wherein the in-memory attribute is stored responsive to a requested operation at the server.

19. The system of claim 18 , wherein the server is further configured to:

remove the in-memory attribute from the server when the count reaches zero, indicating that all other servers have applied the operation.

20. The system of claim 19 , wherein the server is further configured to access in parallel the global accessible log associated with each of the other servers in the multi-master database system.

21. The system of claim 16 , wherein the in-memory attribute is stored responsive to receiving a broadcasted in-memory attribute from at least one of the other servers in the multi-master database system, wherein the in-memory attribute indicates which other server broadcasted the in-memory attribute.

22. The system of claim 21 , wherein the server is further configured to:

access a global accessible log associated with the broadcasting other server prior to performing the operation;

perform at the server the operation associated with the in-memory attribute according to the accessed globally accessible log; and

remove the in-memory attribute from the server based on the accessed global accessible log indicating that the broadcasting other server has applied the operation.

23. The system of claim 16 , wherein the server is further configured to disallow storing the in-memory attribute at the server if an in-memory attribute associated with the operation is already stored in memory at the server.

24. The system of claim 16 , wherein the global accessible log associated with the server indicates that the logged operation is to be performed by the other servers of the multi-master database system.

25. The system of claim 16 , wherein the server is further configured to validate the operation prior to storing the in-memory attribute.

26. The system of claim 16 , wherein the GUID functions as a hidden primary key.

27. The system of claim 16 , wherein the server is further configured to generate the GUID based on a function and a seed value.

28. The system of claim 16 , wherein the server is further configured to generate the GUID based on a shard indicator associated with the server.

29. The system of claim 16 , wherein the global accessible log includes a server ID associated with each operation identifying the server.

30. The system of claim 16 , wherein the multi-master database system is a Relational Database Management System (RDBMS).

31. A system comprising:

a plurality of servers, each having a respective non-transitory memory and configured to store an in-memory attribute including an operation, a record, a count indicating a number of servers that need to apply the operation, and a global unique identifier assuring uniqueness across a multi-master database system associated with the respective server, the in-memory attribute indicating disallowing additional requested operations to the record at the respective server; and

a remote file system storing one or more global accessible logs associated with the plurality of servers;

wherein each server receiving the broadcasted in-memory attribute:

performs the operation included within the in-memory attribute of the respective server;

logs the performed operation in a server log contained within a global accessible log associated with the server and accessible to other servers of the multi-master database system, the global accessible log stored at the remote file system connected to the plurality of servers of the multi-master database system through a network, the global accessible log comprising a number of server logs equaling a number of the plurality of servers, each server log associated with a respective server, each respective server configured to log performed operations in its respective server log and monitor the other server logs;

broadcasts the in-memory attribute to the other servers of the multi-master database system, the broadcasted in-memory attribute indicating disallowing additional requested operations to the record at each of the other servers receiving the broadcasted in-memory attribute;

monitors the server logs of the global accessible log associated with each of the other servers in the multi-master database system; and

based on the monitoring the server logs:

when the count associated with the in-memory attribute of the server for each server log indicates that a corresponding one of the other servers has applied the operation, decrements the count within the in-memory attribute of other servers that need to apply the operation; and

when the count equals to zero, removes the in-memory attribute from the server after global accessible logs associated with the other servers indicate that the operation associated with the in-memory attribute has been performed at the other servers, the global accessible logs stored at the remote file system.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2011
From: WENG, DENNIS ZHI
To: GOOGLE INC.
Reel/Frame 025876/0291 →