# US 10,320,703 B2 · Preventing data corruption due to pre-existing split brain

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,320,703 B2
- Document ID: US10320703B2
- Status: Granted
- Kind: B2
- Application number: 14/870,920
- Filed: 2015-09-30
- Published: 2017-03-30
- Granted: 2019-06-11
- Earliest claimed: 2015-09-30
- Assignees: Veritas Technologies LLC
- Applicants: Veritas Technologies LLC
- Inventors: Jai Gahlot; Amol S. Katkar; Udipta Das; Pranav Peshwe
- Web page: https://patentgrep.com/patent/US10320703B2

## CPC

- G06F 11/2028: {eliminating a faulty processor or activating a spare}
- G06F 11/1425: {by reconfiguration of node membership}
- G06F 11/2046: {where the redundant components share persistent storage (G06F11/2043 takes precedence)}
- G06F 11/2094: {Redundant storage or storage space (G06F11/2056 takes precedence)}
- H04L 12/18: for broadcast or conference {, e.g. multicast}
- H04L 41/06: Management of faults, events, alarms or notifications
- H04L 41/0806: for initial configuration or provisioning, e.g. plug-and-play
- H04L 41/5054: Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
- H04L 47/746: {Reaction triggered by a failure}
- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- H04L 67/288: Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
- H04L 67/51: Discovery or management thereof, e.g. service location protocol [SLP] or web services
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Various methods, systems, and processes to prevent data corruption caused by a pre-existing split brain condition in a cluster are presented. In response to determining that a node is no longer part of a sub-cluster, another node in the sub-cluster is designated as a racer node. The racer node accesses a matrix, and the matrix includes information to determine whether a majority of coordination points in a cluster are accessible by nodes in the sub-cluster. Based on the accessing, a determination is made that the information indicates that the majority of coordination points are accessible by the nodes. The information is then broadcasted.

## Claims

### Claim 1

A computer-implemented method comprising:
in response to determining that a node is no longer part of a sub-cluster of a cluster, designating another node in the sub-cluster as a racer node;
the racer node accessing a matrix, wherein
the matrix comprises information to determine whether a majority of a plurality of coordination points in the cluster are accessible during a fence race by a plurality of nodes in the sub-cluster, wherein each of the coordination points can fence off one or more nodes in the cluster from accessing one or more storage devices, and
the plurality of coordination points comprise an odd number of coordination points;
based on the accessing, determining that the information indicates that the majority of the plurality of coordination points are accessible by the plurality of nodes; and
broadcasting the information.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein
the node that is no longer part of the sub-cluster, previously had access to the majority of the plurality of coordination points.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising:
after determining that the node is no longer part of the sub-cluster, and prior to designating the another node as the racer node, determining that no node in the sub-cluster had access to the majority of the plurality of coordination points.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein
broadcasting the information comprises updating the matrix with the information indicating that the majority of the plurality of coordination points are accessible by the plurality of nodes in the sub-cluster, wherein
the information is broadcasted to the cluster, and
the information also indicates that a fencing race performed by the racer node is successful.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, further comprising:
based on the information, inhibiting a partitioned node from accessing one or more coordination points of the majority of the plurality of coordination points accessible by the plurality of nodes in the sub-cluster, wherein
the inhibiting prevents a pre-existing split brain condition from occurring in the cluster.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein
the matrix is a coordination point reachability matrix (CPRM), and
the CPRM is replicated across all nodes of the plurality of nodes in the cluster.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein
the plurality of coordination points comprise
one or more coordinator disks, or
one or more coordination point servers.

### Claim 8

A non-transitory computer readable storage medium storing program instructions executable for:
in response to determining that a node is no longer part of a sub-cluster of a cluster,
designating another node in the sub-cluster as a racer node;
accessing a matrix, wherein
the matrix comprises information to determine whether a majority of a plurality of coordination points in the cluster are accessible during a fence race by a plurality of nodes in the sub-cluster, wherein each of the coordination points can fence off one or more nodes in the cluster from accessing one or more storage devices, and
the plurality of coordination points comprise an odd number of coordination points;
based on the accessing, determining that the information indicates that the majority of the plurality of coordination points are accessible by the plurality of nodes; and
broadcasting the information.

### Claim 9 (depends on 8)

The non-transitory computer readable storage medium of claim 8, wherein the node that is no longer part of the sub-cluster, previously had access to the majority of the plurality of coordination points.

### Claim 10 (depends on 8)

The non-transitory computer readable storage medium of claim 8, wherein the program instructions are further executable for:
after determining that the node is no longer part of the sub-cluster, and prior to designating the another node as the racer node, determining that no node in the sub-cluster had access to the majority of the plurality of coordination points.

### Claim 11 (depends on 8)

The non-transitory computer readable storage medium of claim 8, wherein
broadcasting the information comprises updating the matrix with the information indicating that the majority of the plurality of coordination points are accessible by the plurality of nodes in the sub-cluster, wherein
the information is broadcasted to the cluster, and
the information also indicates that a fencing race performed by the racer node is successful.

### Claim 12 (depends on 11)

The non-transitory computer readable storage medium of claim 11, wherein the program instructions are further executable for:
based on the information, inhibiting a partitioned node from accessing one or more coordination points of the majority of the plurality of coordination points accessible by the plurality of nodes in the sub-cluster, wherein
the inhibiting prevents a pre-existing split brain condition from occurring in the cluster.

### Claim 13 (depends on 8)

The non-transitory computer readable storage medium of claim 8, wherein
the matrix is a coordination point reachability matrix (CPRM), and
the CPRM is replicated across all nodes of the plurality of nodes in the cluster.

### Claim 14

A system comprising:
one or more processors; and
a memory coupled to the one or more processors, wherein the memory stores program instructions executable by the one or more processors for:
in response to determining that a node is no longer part of a sub-cluster of a cluster,
designating another node in the sub-cluster as a racer node;
the racer node accessing a matrix, wherein
the matrix comprises information to determine whether a majority of a plurality of coordination points in the cluster are accessible during a fence race by a plurality of nodes in the sub-cluster, wherein each of the coordination points can fence off one or more nodes in the cluster from accessing one or more storage devices, and
the plurality of coordination points comprise an odd number of coordination points;
based on the accessing, determining that the information indicates that the majority of the plurality of coordination points are accessible by the plurality of nodes; and
broadcasting the information.

### Claim 15 (depends on 14)

The system of claim 14, wherein
the node that is no longer part of the sub-cluster previously, had access to the majority of the plurality of coordination points.

### Claim 16 (depends on 14)

The system of claim 14 wherein the program instructions are further executable for:
after determining that the node is no longer part of the sub-cluster, and prior to designating the another node as the racer node, determining that no node in the sub-cluster had access to the majority of the plurality of coordination points.

### Claim 17 (depends on 14)

The system of claim 14, wherein
broadcasting the information comprises updating the matrix with the information indicating that the majority of the plurality of coordination points are accessible by the plurality of nodes in the sub-cluster, wherein
the information is broadcasted to the cluster, and
the information also indicates that a fencing race performed by the racer node is successful.

### Claim 18 (depends on 17)

The system of claim 17 wherein the program instructions are further executable for:
based on the information, inhibiting a partitioned node from accessing one or more coordination points of the majority of the plurality of coordination points accessible by the plurality of nodes in the sub-cluster, wherein
the inhibiting prevents a pre-existing split brain condition from occurring in the cluster.

### Claim 19 (depends on 14)

The system of claim 14, wherein
the matrix is a coordination point reachability matrix (CPRM), and
the CPRM is replicated across all nodes of the plurality of nodes in the cluster.

### Claim 20 (depends on 14)

The system of claim 14, wherein
the plurality of coordination points comprise
one or more coordinator disks, or
one or more coordination point servers.
