Patent ID: 6212595
Filing Date: 2001-04-03
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), a common memory for storing a fence map, and local memory in each of said plurality of nodes for storing a local copy of said fence map, a computer program product for fencing or unfencing in a fence/unfence operation, one or more nodes (X nodes) from one or more S nodes, said computer program product comprising:a computer readable media in which is recorded computer program coding;computer program coding for storing in said common memory 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;computer program coding for processing a request in said A node, said request specifying X nodes to be fenced or unfenced from specified S nodes during said fence/unfence operation;computer program coding for computing in said A node, 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;computer program coding for sending messages from said A node to said F nodes instructing each F node to begin said fence/unfence operation for that node;computer program coding for proposing changes in said fence map in a first phase of said fence/unfence operation, said changes reflecting the fencing or unfencing of said X nodes;computer program coding for providing in a second phase in said fence/unfence operation, refreshing the local map of each of the F nodes from the proposed changes in the fence map in said central memory, 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; andcomputer program coding for providing in a third phase in said fence/unfence operation, flushing I/O operations from specified X nodes to be fenced from specified S nodes, if any, and a selected one of said F nodes 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.