Method for fencing a member of a group of processes in a distributed processing environment
AssigneeInternational Business Machines Corporation
InventorGili Mendel
Life of this patent
Estimating the term…
Abstract
A method for use in a distributed processing system having a plurality of nodes wherein selected nodes are fenced or unfenced from selected ones of peripheral device server nodes in a fence/unfence operation. A common memory is provided for storing a fence map listing nodes fenced from server nodes. In the fence/unfence operation, a request processing node proposes changes to the fence map, and if no node fails during the fence/unfence operation, the proposed changes are changed into committed changes. If a node fails during the fence/unfence operation, the proposed changes are erased, the previous committed changes are restored, and the fence/unfence request is removed from the process queue for processing by the request processing node.
Claims10
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 method for fencing or unfencing in a fence/unfence operation, one or more nodes (X nodes) from one or more S nodes, said method comprising:
- 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;
- 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;
- 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;
- sending messages from said A node to said F nodes instructing each F node to begin said fence/unfence operation for that node;
- 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;
- 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;
- and
- 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.
Dependencies are inferred from the claim text.