IP Library Granted Patent US 8,671,218
Granted Patent B2
US 8,671,218 · App. 12/485,618 · Granted Mar 11, 2014

Method and system for a weak membership tie-break

Inventors: Andrew L. Hisgen (Mountainside, NJ); Thorsten Früauf (Ostfildern, DE); Ellard T. Roush (Burlingame, CA); Nicholas A. Solter (Colorado Springs, CO)
Assignee: Oracle America, Inc.
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 8,671,218
App. No.
12/485,618
Granted
Mar 11, 2014
Kind
B2
Abstract

In general, the invention relates to a method for managing a two-node cluster. The method includes determining, by a first server node, that a second server node is disconnected from the two-node cluster when a first heartbeat response is not received from the second server node and sending a first echo request from the first server node to a first external system, where the first external system is specified on each server node of the two-node cluster. The method further includes receiving a first echo response for the first echo request from the first external system at the first server node and, in response to receiving the first echo response, providing, by the first server node, services of the two-node cluster independent of the second server node.

Claims (85)

1. A method for managing a two-node cluster comprising a first server node and a second server node, comprising:

sending, by the first server node comprising a first copy of a virtual storage pool, a first heartbeat;

sending, by the second server node comprising a second copy of the virtual storage pool, a second heartbeat;

determining, by the first server node and in response to not receiving the second heartbeat from the second server node, that the second server node is disconnected from the two-node cluster;

sending, by the first server node and in response to determining that the second server node is disconnected, a first echo request from to a first external system, wherein the first external system is specified on the first server node and the second server node of the two-node cluster;

sending, by the second server node and in response to not receiving the first heartbeat from the first server node, a second echo request to the first external system;

receiving, by the first server node, a first echo response for the first echo request from the first external system, wherein the first echo response indicates that the first server node is a winner and the second server node is a loser in a tie-break mechanism;

halting, by the second server node and in response to not receiving a second echo response from the first external system after sending the second echo request, cluster services offered by the second server node; and

providing, by the first server node and in response to receiving the first echo response, services of the two-node cluster independent of the second server node.

2. The method of claim 1 , further comprising:

determining, after the second server node halts cluster services and by the first server node, that the second server node is reconnected to the two-node cluster when a third heartbeat response is received from the second server node; and

rejoining, by the first server node, the second server node to reform the two-node cluster.

3. The method of claim 2 , further comprising:

determining that a split-brain scenario has occurred in the two-node cluster;

designating, on the first server node, the first copy of the virtual storage pool as a winning copy of the virtual storage pool and a winning copy of cluster configuration information, wherein the virtual storage pool is distributed across the two-node cluster;

discarding the second copy of the virtual storage pool and a losing copy of the cluster configuration information on the second server node; and

resynchronizing the second server node of the two-node cluster using the winning copy of the virtual storage pool and the winning copy of the cluster configuration information.

4. The method of claim 2 , further comprising:

receiving a fourth heartbeat response from the second server node through a public network,

wherein the third heartbeat response is transmitted through a private network.

5. The method of claim 4 , wherein the public network is associated with a user of the services of the two-node cluster.

6. The method of claim 1 , further comprising:

sending, by the first server node, a third echo request to a second external system, wherein the second external system is specified on the first server node and the second server node of the two-node cluster; and

receiving a third echo response for the third echo request from the second external system,

wherein providing the services of the two-node cluster independent of the second server node is further in response to receiving the third echo response.

7. The method of claim 1 , wherein the first external system is not a member of the two-node cluster, and wherein the first external system is a router.

8. A two-node cluster, comprising:

a first server node comprising:

a first processor;

a first storage device storing a first copy of a virtual storage pool; and

a first memory comprising a first set of software instructions executing on the first processor and configured to:

send a first heartbeat;

send, in response to not receiving a second heartbeat, a first echo request to a first external system, wherein the first external system is specified on the first server node of the two-node cluster;

receive a first echo response for the first echo request from the first external system, wherein the first echo response indicates that the first server node is a winner in a tie-break mechanism; and

provide, in response to receiving the first echo response, services of the two-node cluster; and

a second server node, comprising:

a second processor;

a second storage device storing a second copy of the virtual storage pool; and

a second memory comprising a second set of software instructions executing on the second processor and configured to:

send the second heartbeat;

send, in response to not receiving the first heartbeat, a second echo request to the first external system, wherein the first external system is specified on the second server node; and

halt, in response to not receiving a second echo response from the first external system after sending the second echo request, cluster services offered by the second server node.

9. The two-node cluster of claim 8 , wherein the first set of software instructions are further for enabling the first processor to:

determine, after the second server node halts cluster services, that the second server node is reconnected to the two-node cluster when a third heartbeat response is received from the second server node; and

rejoin the first server node with the second server node to reform the two-node cluster.

10. The two-node cluster of claim 9 , wherein the first set of software instructions are further for enabling the first processor to:

determine that a split-brain scenario has occurred in the two-node cluster; and

designate, on the first server node, the first copy of the virtual storage pool as a winning copy of the virtual storage pool and a winning copy of cluster configuration information, wherein the virtual storage pool is distributed across the two-node cluster;

discard the second copy of the virtual storage pool and a losing copy of the cluster configuration information on the second server node; and

resynchronize the second server node of the two-node cluster using the winning copy of the virtual storage pool and the winning copy of the cluster configuration information.

11. The two-node cluster of claim 9 , wherein the first set of software instructions are further for enabling the first processor to:

receive a fourth heartbeat response from the second server node through a public network,

wherein the third heartbeat response is transmitted through a private network.

12. The two-node cluster of claim 11 , wherein the public network is associated with a user of the services of the two-node cluster.

13. The two-node cluster of claim 8 , wherein the first set of software instructions are further for enabling the first processor to:

send a second echo request to a second external system, wherein the second external system is specified on each server node of the two-node cluster; and

receive a second echo response for the second echo request from the second external system,

wherein providing the services of the two-node cluster independent of the second server node is further in response to receiving the second echo response.

14. The two-node cluster of claim 8 , wherein the first external system is not a member of the two-node cluster.

15. A non-transitory computer readable medium comprising software instructions for managing a two-node cluster comprising a first server node and a second server node, the software instructions executable on at least one processor and comprising functionality to:

send, by the first server node comprising a first copy of a virtual storage pool, a first heartbeat;

send, by the second server node comprising a second copy of the virtual storage pool, a second heartbeat;

determine, by the first server node and in response to not receiving the second heartbeat from the second server node, that the second server node is disconnected from the two-node cluster;

send, by the first server node and in response to determining that the second server node is disconnected, a first echo request to a first external system, wherein the first external system is specified on the first server node and the second server node of the two-node cluster;

send, by the second server node and in response to not receiving the first heartbeat from the first node, a second echo request to the first external system;

receive, by the first server node, a first echo response for the first echo request from the first external system, wherein the first echo response indicates that the first server node is a winner and the second server node is a loser in a tie-break mechanism;

halt, by the second server node and in response to not receiving a second echo response from the first external system after sending the second echo request, cluster services offered by the second server node; and

provide, by the first server node and in response to the first echo response, services of the two-node cluster independent of the second server node.

16. The non-transitory computer readable medium of claim 15 , the instructions further comprising functionality to:

determine, after the second server node halts cluster services and by the first server node, that the second server node is reconnected to the two-node cluster when a third heartbeat response is received from the second server node; and

rejoin, by the first server node, the second server node to reform the two-node cluster.

17. The non-transitory computer readable medium of claim 16 , the instructions further comprising functionality to:

determine that a split-brain scenario has occurred in the two-node cluster;

designate, on the first server node, the first copy of the virtual storage pool as a winning copy of the virtual storage pool and a winning copy of cluster configuration information, wherein the virtual storage pool is distributed across the two-node cluster;

discard the second copy of the virtual storage pool and a losing copy of the cluster configuration information on the second server node; and

resynchronize the second server node of the two-node cluster using the winning copy of the virtual storage pool and the winning copy of the cluster configuration information.

18. The non-transitory computer readable medium of claim 16 , the instructions further comprising functionality to:

receive a fourth heartbeat response from the second server node through a public network,

wherein the third heartbeat response is transmitted through a private network.

19. The non-transitory computer readable medium of claim 15 , the instructions further comprising functionality to:

send, by the first server node, a third echo request to a second external system,

wherein the second external system is specified on the first server node and the second server node of the two-node cluster; and

receive a second echo response for the second echo request from the second external system,

wherein providing the services of the two-node cluster independent of the second server node is further in response to receiving the second echo response.

20. The non-transitory computer readable medium of claim 15 , wherein the first external system is not a member of the two-node cluster, and wherein the first external system is a web server.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037311/0233 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2009
From: HISGEN, ANDREW L.; FRUAUF, THORSTEN; ROUSH, ELLARD T.; SOLTER, NICHOLAS A.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 022836/0881 →
Continuity (1)
Related Publication 20100318610A1 · Dec 16, 2010