# US 10,320,702 B2 · Input/output fencing optimization

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

- Number: US 10,320,702 B2
- Document ID: US10320702B2
- Status: Granted
- Kind: B2
- Application number: 14/870,390
- 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/US10320702B2

## 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 systems, methods, and processes to optimize input/output (I/O) fencing operations in systems that implement coordination points are presented. A matrix is generated. The matrix includes information indicating the accessibility of one or more coordination points by a node. The method then transmits the matrix to one or more other nodes.

## Claims

### Claim 1

A computer-implemented method comprising:
a second node receiving a matrix from a first node, wherein the matrix comprises information indicating accessibility of each coordination point of a plurality of coordination points by the first node;
the second node updating the matrix to include information indicating accessibility of each coordination point of the plurality of coordination points by the second node;
transmitting the updated matrix to one or more other nodes;
wherein the plurality of coordination points includes at least three coordination points;
wherein the plurality of coordination points comprise an odd number of coordination points;
wherein the plurality of coordination points enable access to one or more storage devices shared by the first node, the second node and the one or more other nodes;
wherein each of the coordination points can fence off one or more nodes from accessing the one or more storage devices.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein
the second node receives the matrix in response to the first node's attempt to join a cluster.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, further comprising:
determining that the first node can, in combination with the second node, access a majority of the plurality of coordination points; and
based on the determining, joining the cluster.

### Claim 4 (depends on 2)

The computer-implemented method of claim 2, further comprising:
accessing a configuration file; and
determining a total number of the plurality of coordination points based on information in the configuration file.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, further comprising:
determining that the one or more other nodes are already part of the cluster, wherein the first node is not part of the one or more other nodes; and
requesting a second matrix from the cluster, wherein
the second matrix comprises information indicating accessibility of each of the coordination points of the plurality of coordination points by each of the one or more other nodes, and the plurality of coordination points are part of the cluster.

### Claim 6 (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 7

A non-transitory computer readable storage medium storing program instructions executable to:
receive a matrix from a first node, wherein the matrix comprises information indicating accessibility of each coordination point of a plurality of coordination points by the first node;
update the matrix to include information indicating accessibility of each coordination point of the plurality of coordination points by a second node;
transmit the updated matrix to one or more other nodes;
wherein the plurality of coordination points includes at least three coordination points;
wherein the plurality of coordination points enable access to one or more storage devices shared by the first node, the second node and the one or more other nodes;
wherein each of the coordination points can fence off one or more nodes from accessing the one or more storage devices;
wherein the plurality of coordination points comprise an odd number of coordination points.

### Claim 8 (depends on 7)

The non-transitory computer readable storage medium of claim 7, wherein
the second node receives the matrix in response to the first node attempting to join a cluster.

### Claim 9 (depends on 8)

The non-transitory computer readable storage medium of claim 8, further comprising:
determining that the first node can, in combination with the second node, access a majority of the plurality of coordination points; and
based on the determining, joining the cluster.

### Claim 10 (depends on 8)

The non-transitory computer readable storage medium of claim 8, further comprising:
accessing a configuration file; and
determining a total number of the plurality of coordination points based on information in the configuration file.

### Claim 11 (depends on 10)

The non-transitory computer readable storage medium of claim 10, further comprising:
determining that the one or more other nodes are already part of the cluster, wherein the first node is not part of the one or more other nodes; and
requesting a second matrix from the cluster, wherein
the second matrix comprises information indicating accessibility of each of the coordination points of the plurality of coordination points by each of the one or more other nodes, and
the plurality of coordination points are part of the cluster.

### Claim 12

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 to:
receive a matrix from a first node, wherein the matrix comprises information indicating accessibility of each coordination point of a plurality of coordination points by the first node;
update the matrix to include information indicating accessibility of each coordination point of the plurality of coordination points by a second node;
transmit the updated matrix to one or more other nodes;
wherein the plurality of coordination points includes at least three coordination points;
wherein the plurality of coordination points enable access to one or more storage devices shared by the first node, the second node and the one or more other nodes;
wherein each of the coordination points can fence off one or more nodes from accessing one or more storage devices;
wherein the plurality of coordination points comprise an odd number of coordination points.

### Claim 13 (depends on 12)

The system of claim 12, wherein
the second node receives the matrix in response to the first node attempting to join a cluster.

### Claim 14 (depends on 12)

The system of claim 12, further comprising
determining that the first node can, in combination with the second node, access a majority of the plurality of coordination points; and
based on the determining, joining a cluster.

### Claim 15 (depends on 13)

The system of claim 13, further comprising:
accessing a configuration file; and
determining a total number of the plurality of coordination points based on information in the configuration file.
