Method and apparatus for coordination of client/server processes
First Claim
1. A system comprising:
- one or more processors;
a memory coupled to said one or more processors;
one or more sequences of instructions which, when executed by said one or more processors, cause said one or more processors to perform the steps of;
obtaining a completion object associated with a first request from at least one client to at least one server, wherein said completion object indicates a state of completion of said first request;
transitioning said completion object from indicating a first state of completion of said first request to indicating a second state of completion of said first request in response to a message from said at least one client; and
transitioning said completion object from indicating a third state of completion of said first request to indicating a fourth state of completion of said first request in response to a message from said at least one server;
wherein said second state of completion and said third state of completion are the same state of completion.
1 Assignment
0 Petitions
Accused Products
Abstract
The invention provides for the coordination of client/server processes. One or more embodiments provide a completion object comprised of various states of completion of a client request. The completion object may be manipulated to transition from one state to another by both the client and server. The following states of completion may be provided: idle, ready, active, completing, completed, and acknowledged. In the idle state, the completion object is obtained by the client (by constructing a new object or retrieving an existing object that has been recycled). In the ready state, the request has been initialized but not yet issued to the server or I/O device. In the active state, the server processes the I/O request. In the completing state, the server has completed the I/O operations requested but has not yet stored the results. In the completed state, the server stores the results to be returned to the client and notifies the client. At the acknowledged state, the client examines the results, performs additional operations and frees up the completion object for use by another client request. Depending on the state of the completion object, a request to cancel the I/O operations may require varying actions. The completion object provides the ability to easily and quickly determine where in the completion process an I/O request is. Further, when a client request is canceled, the completion object provides the ability to easily identify the actions necessary to properly cancel the request.
-
Citations
39 Claims
-
1. A system comprising:
-
one or more processors; a memory coupled to said one or more processors; one or more sequences of instructions which, when executed by said one or more processors, cause said one or more processors to perform the steps of; obtaining a completion object associated with a first request from at least one client to at least one server, wherein said completion object indicates a state of completion of said first request; transitioning said completion object from indicating a first state of completion of said first request to indicating a second state of completion of said first request in response to a message from said at least one client; and transitioning said completion object from indicating a third state of completion of said first request to indicating a fourth state of completion of said first request in response to a message from said at least one server; wherein said second state of completion and said third state of completion are the same state of completion. - View Dependent Claims (2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 39)
-
-
5. A computer-readable medium bearing one or more sequences of instructions for coordinating computer processes, said instructions which, when executed by one or more processors, cause said one or more processors to perform the steps of:
-
obtaining an object associated with a first request from at least one client to at least one server, wherein said object indicates a state of completion of said first request; transitioning said completion object from indicating a first state of completion of said first request to indicating a second state of completion of said first request in response to a message from said at least one client; and transitioning said completion object from indicating a third state of completion of said first request to indicating a fourth state of completion of said first request in response to a message from said at least one server; wherein said second state of completion and said third state of completion are the same state of completion.
-
-
16. A system comprising:
-
one or more processors; a memory coupled to said one or more processors; and one or more sequences of instructions which, when executed by said one or more processors, cause said one or more processors to perform the steps of; specifying a level of completion of a particular operation in a completion object associated with said particular operation; and transitioning said completion object between a plurality of states of completion, said completion object'"'"'s state of completion indicating a status of said particular operation; wherein said transitioning includes transitioning said completion object from a first state of completion to a second state of completion in response to a message from a first entity of a plurality of entities involved in said operation, transitioning said completion object from a third state of completion to a fourth state of completion in response to a message from a second entity of the plurality of entities involved in said operation, and wherein said second state of completion and said third state of completion are the same state of completion. - View Dependent Claims (17, 18, 19, 20, 21, 22)
-
-
23. A method of providing completion status for a client request, comprising:
-
a client obtaining a completion object, said completion object indicating a first completion state of a plurality of completion states; said client associating said first completion state with a current status of a client request; said client transitioning said first completion state to a second completion state when said client request is ready to be sent to a server; said client providing said client request and said completion object to said server; and said server transitioning said completion state from a third completion state to one of a subset of said plurality of completion states when processing of said client request by said server enters one or more phases corresponding to said subset of said plurality of completion states, wherein said second completion state and said third completion state are the same completion state. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A method for coordinating computer processes, the method comprising:
-
obtaining an object associated with a first request from at least one client to at least one server, wherein said object indicates a state of completion of said first request; transitioning said completion object from indicating a first state of completion of said first request to indicating a second state of completion of said first request in response to a message from said at least one client; and transitioning said completion object from indicating a third state of completion of said first request to indicating a fourth state of completion of said first request in response to a message from said at least one server; wherein said second state of completion and said third state of completion are the same state of completion.
-
-
37. A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, cause said one or more processors to perform the steps of:
-
specifying a level of completion of a particular operation in a completion object associated with said particular operation; and transitioning said completion object between a plurality of states of completion, said completion object'"'"'s state of completion indicating a status of said particular operation; wherein said transitioning includes transitioning said completion object from a first state of completion to a second state of completion in response to a message from a first entity of a plurality of entities involved in said operation, transitioning said completion object from the third state of completion to a fourth state of completion in response to a message from a second entity of the plurality of entities involved in said operation, and wherein said second state of completion and said third state of completion are the same state of completion.
-
-
38. A computer-readable storage medium storing one or more sequences of instructions for providing completion status for a client request, said instructions which, when executed by one or more processors, cause said one or more processors to perform the steps of:
-
in response to a client message, initializing a completion object to indicate a first completion state of a plurality of completion states; in response to a client message, associating said first completion state with a current status of a client request; in response to a client message, transitioning said frost completion state to a second completion state when said client request is ready to be sent to a server; and in response to a server message, transitioning said completion from a third completion state to one of a subset of said plurality of completion states when processing of said client request by said server enters one or more phases corresponding to said subset of said plurality of completion states, wherein said second completion state and said third completion state are the same completion state.
-
Specification