# US 2020/0396133 A1 · Transaction fencing in a multi-domain network

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

- Number: US 2020/0396133 A1
- Document ID: US20200396133A1
- Status: Published application
- Kind: A1
- Application number: 16/439,470
- Filed: 2019-06-12
- Published: 2020-12-17
- Earliest claimed: 2019-06-12
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Alexander Guller; Constantine Gavrilov; Ilya Tkachevsky
- Web page: https://patentgrep.com/patent/US20200396133A1

## CPC

- H04L 41/12: Discovery or management of network topologies
- H04L 41/0659: by isolating or reconfiguring faulty entities
- H04L 41/0677: Localisation of faults
- H04L 43/0811: by checking connectivity
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Methods and systems for transaction fencing in a multi-domain network are provided. A system for providing transaction fencing in a multi-domain network includes an error identification module that identifies a communication error between a source domain and a destination node. The communication error is associated with a connection in a plurality of connections between a plurality of domains. Additionally, the system includes a tearing module that disconnects the destination node from the plurality of domains and clears outstanding transactions associated with the destination node in the plurality of domains. Further, the system includes a connection enable module that enables connections between the plurality of domains and the destination node.

## Claims

### Claim 1

A system comprising:
an error identification module that identifies a communication error between a source domain and a destination node, wherein the communication error is associated with a connection in a plurality of connections between a plurality of domains;
a tearing module that disconnects the destination node from the plurality of domains and clears outstanding transactions associated with the destination node in the plurality of domains; and
a connection enable module that enables connections between the plurality of domains and the destination node.

### Claim 2 (depends on 1)

The system of claim 1, wherein the tearing module comprises a disconnect synchronization module for synchronizing the disconnection of the plurality of domains from the destination node.

### Claim 3 (depends on 1)

The system of claim 1, wherein the tearing module comprises:
a block module that blocks connection requests for the plurality of domains, wherein blocking the connection requests blocks I/O requests in all source domains until all the source domains establish connectivity with the destination node;
a disconnect module that disconnects connections between the destination node and one or more domains in the plurality of domains; and
a flush module that flushes outstanding transactions for one or more other domains that are associated with the destination node.

### Claim 4 (depends on 3)

The system of claim 3, wherein the outstanding transactions comprise at least one of:
outstanding initiator transactions; and
outstanding destination transactions.

### Claim 5 (depends on 4)

The system of claim 4, wherein the flush module marks the outstanding destination transactions as aborted.

### Claim 6 (depends on 4)

The system of claim 4, wherein the flush module requests a return of the outstanding initiator transactions from the plurality of domains.

### Claim 7 (depends on 3)

The system of claim 3, wherein the flush module processes outstanding completions.

### Claim 8 (depends on 3)

The system of claim 3, wherein the disconnect module disconnects the connections by disconnecting send and receive half-duplex connections.

### Claim 9 (depends on 1)

The system of claim 1, wherein the tearing module disconnects the connections based on an Infiniband specification.

### Claim 10 (depends on 1)

The system of claim 1, wherein the connection enable module fails the destination node if connectivity between the source domain and the destination node fails to resume.

### Claim 11 (depends on 1)

The system of claim 1, wherein the connection enable module further comprises an unblock module that unblocks connection requests associated with the destination node for the plurality of domains.

### Claim 12 (depends on 1)

The system of claim 1, wherein the plurality of connections between the plurality of domains are established through forming half-duplex send connections between the plurality of domains.

### Claim 13

A method comprising:
identifying a communication error between a source domain and a destination node, wherein the communication error is associated with a connection in a plurality of connections between a plurality of domains;
disconnecting the destination node from the plurality of domains;
clearing outstanding transactions associated with the destination node in the plurality of domains; and
enabling connections between the plurality of domains and the destination node.

### Claim 14 (depends on 13)

The method of claim 13, wherein disconnecting the destination node comprises synchronizing the disconnection of the plurality of domains from the destination node.

### Claim 15 (depends on 13)

The method of claim 13, wherein disconnecting the destination node further comprises:
requesting the plurality of domains, wherein the connection requests are associated with the destination node; and
disconnecting connections between the destination node and one or more domains in the plurality of domains.

### Claim 16 (depends on 13)

The method of claim 13, wherein clearing outstanding transactions further comprises flushing outstanding transactions for one or more other domains that are associated with the destination node.

### Claim 17 (depends on 16)

The method of claim 16, wherein flushing outstanding transaction further comprises:
marking outstanding destination transactions as aborted;
requesting a return of outstanding initiator transactions from the plurality of domains; and
processing outstanding completions.

### Claim 18 (depends on 13)

The method of claim 13, wherein enabling connections between the plurality of domains and the destination node further comprises failing the destination node if connectivity between the source domain and the destination node fails to resume.

### Claim 19 (depends on 13)

The method of claim 13, wherein enabling connections between the plurality of domains and the destination node further comprises unblocking connection requests associated with the destination node for the plurality of domains.

### Claim 20

A computer program product comprising a computer-readable storage medium including program instructions embodied therewith, the program instructions executable by a processor to cause the processor to:
identify a communication error between a source domain and a destination node, wherein the communication error is associated with a connection in a plurality of connections between a plurality of domains;
disconnect the destination node from the plurality of domains;
clear outstanding transactions associated with the destination node in the plurality of domains; and
enable connections between the plurality of domains and the destination node.
