Patent ID: 6192443
Filing Date: 2001-02-20
Classification: G06F

Abstract:
In a distributed computer system having a plurality of nodes, one of the nodes being a request processing node (A node) and one or more nodes being peripheral device server nodes (S nodes), an apparatus for fencing or unfencing in a fence/unfence operation, one or more nodes (X nodes) from said S nodes, said apparatus comprising:a common memory for storing a fence map, said fence map having entries therein, each entry for storing an indication of an S node to be fenced, a commit bit indicating if the entry is proposed or committed, and a bit map indicating which X nodes are to be fenced from the S node of the entry;local memory in each of said plurality of nodes for storing a local copy of said fence map;request processing means in said A node for processing a request specifying X nodes to be fenced or unfenced from specified S nodes during said fence/unfence operation;computing means in said A node for computing the nodes to participate (F nodes) in said fence/unfence operation, said participating nodes including the A node, the X nodes to be either fenced or unfenced from said S nodes, and the S nodes thus fenced or unfenced;message means for sending messages from said A node to said F nodes instructing each F node to begin said fence/unfence operation for that node;a first phase of said fence/unfence operation including proposing means for proposing changes in said fence map reflecting the fencing or unfencing of said X nodes;a second phase in said fence/unfence operation including refresh means for refreshing the local map of each of the F nodes from the proposed changes in the fence map in said central memory; and access means for said X nodes, said access means eliminating access to specified S nodes from specified X nodes to be fenced, if any, and restoring access to specified S nodes with specified X nodes to be unfenced, if any; anda third phase in said fence/unfence operation including flush means for said S nodes, said flush means for flushing I/O operations from specified X nodes to be fenced from specified S nodes, if any; and commit means for a selected one of said F nodes, said commit means for erasing all entries in the fence map of said common memory whose commit bit indicates the entry is committed, and changing all entries whose commit bit indicates the entry is proposed, to a committed entry.