摘要 |
A server for executing operation calls by a client, including a dispatcher, a plurality of worker tasks, and a dispatcher shared memory area and worker control block for each worker task. Each operation call provided from a client is a sequence or one or more remote procedure call requests and each includes a packed buffer containing parameters. The dispatcher receives a buffer directly into the dispatcher shared memory space of the worker task selected to execute the remote procedure call request. sets the semaphore and sends a request acceptance response. The selected worker task unpacks the buffer into its memory space, executes the request, places the results into a packed buffer in its dispatcher shared memory area and sends a remote procedure call to the dispatcher. The dispatcher executes a remote procedure call to the client and sends the result buffer directly from the shared memory area. The server further includes a dispatcher state save mechanism and the remote procedure call from the worker task includes an identifier of the corresponding saved dispatcher state for the request. The packed buffer associated with a request includes client information and each worker task stores the client information in a worker shared memory space common to the worker tasks and each request of an operation call may be assigned to a different worker task.
|