Sharing state information among a plurality of file operation servers
First Claim
1. A machine-implemented method for sharing state information among a plurality of servers, comprising:
- receiving, from a particular client at a first server of the plurality of servers, a request to perform a network file system (NFS) operation;
in response to receiving the request to perform the NFS operation, updating first state information, stored at the first server, to reflect a change in state associated with processing the request, wherein said state information specifies an operational state of the file, wherein said operational state reflects one or more stateful operations previously performed on said file by said requester;
propagating, from the first server to a second server of the plurality of servers, state update information that identifies the change in state;
based on the state update information that identifies the change in state, updating second state information, stored at the second server, to reflect the change in state associated with processing the request at the first server, wherein said second state information specifies said operational state of the file;
said second server receiving a second request, from a client, to perform a second NFS operation, wherein said client transmitted said request to said first server; and
said second server using said state information that was propagated to said second server from the first server to determine how to service said second request;
wherein the step of propagating the state update information comprises;
determining a priority associated with said change in state;
upon determining that said change in state has a first priority, performing the steps of;
the first server durably storing information identifying said change in state to a persistent storage, andthe second server reading the information identifying said change in state the persistent storage; and
upon determining that said change in state has a second priority, performing the step of;
transmitting, from a first volatile memory at the first server to a second volatile memory at the second server, information identifying said change in state.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for sharing state information among a plurality of servers is provided. A first server receives a request to perform a file operation, such as a NFS file system operation. Thereafter, the first server updates state information to reflect a change in state associated with processing the request. The first server then causes state update information, which identifies the change in state that was made at the first server, to be propagated to a second server. The second server updates state information, stored at the second server, to reflect the change in state associated with processing the request at the first server. Advantageously, a client may send a series of stateful file operations to either the first server or the second server, even if processing any one of the stateful file operation requests requires knowledge of the state of processing prior requests in the series of requests.
-
Citations
16 Claims
-
1. A machine-implemented method for sharing state information among a plurality of servers, comprising:
-
receiving, from a particular client at a first server of the plurality of servers, a request to perform a network file system (NFS) operation; in response to receiving the request to perform the NFS operation, updating first state information, stored at the first server, to reflect a change in state associated with processing the request, wherein said state information specifies an operational state of the file, wherein said operational state reflects one or more stateful operations previously performed on said file by said requester; propagating, from the first server to a second server of the plurality of servers, state update information that identifies the change in state; based on the state update information that identifies the change in state, updating second state information, stored at the second server, to reflect the change in state associated with processing the request at the first server, wherein said second state information specifies said operational state of the file; said second server receiving a second request, from a client, to perform a second NFS operation, wherein said client transmitted said request to said first server; and said second server using said state information that was propagated to said second server from the first server to determine how to service said second request; wherein the step of propagating the state update information comprises; determining a priority associated with said change in state; upon determining that said change in state has a first priority, performing the steps of; the first server durably storing information identifying said change in state to a persistent storage, and the second server reading the information identifying said change in state the persistent storage; and upon determining that said change in state has a second priority, performing the step of; transmitting, from a first volatile memory at the first server to a second volatile memory at the second server, information identifying said change in state. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A machine-readable medium, which is a volatile or a non-volatile memory storing one or more sequences of instructions for sharing state information among a plurality of servers, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
-
receiving, from a particular client at a first server of the plurality of servers, a request to perform a network file system (NFS) operation; in response to receiving the request to perform the NFS operation, updating first state information, stored at the first server, to reflect a change in state associated with processing the request, wherein said state information specifies an operational state of the file, wherein said operational state reflects one or more stateful operations previously performed on said file by said requestor; propagating, from the first server to a second server of the plurality of servers, state update information that identifies the change in state; based on the state update information that identifies the change in state, updating second state information, stored at the second server, to reflect the change in state associated with processing the request at the first server, wherein said state information specifies said operational state of the file; said second server receiving a second request, from a client, to perform a second NFS operation, wherein said client transmitted said request to said first server; and said second server using said state information that was propagated to said second server from the first server to determine how to service said second request; wherein the step of propagating the state update information comprises; determining a priority associated with said change in state; upon determining that said change in state has a first priority, performing the steps of; the first server durably storing information identifying said change in state to a persistent storage, and the second server reading the information identifying said change in state from the persistent storage; and upon determining that said change in state has a second priority, performing the step of; transmitting, from a first volatile memory at the first server to a second volatile memory at the second server, information identifying said change in state. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification