Method for continuous I/O request processing in an asynchronous environment
First Claim
Patent Images
1. A computer-implemented method for providing asynchronous network communications between a client and a server, comprising:
- configuring a socket for an application on the server;
in response to a request from the client, issuing a single, continuous mode operation to the socket, wherein the single, continuous mode operation including;
a single asynchronous accept operation, configuring a listening socket to process a plurality of incoming client connections, wherein issuing the single asynchronous accept operation comprises;
placing a single pending accept data structure on a pending queue, andfor each of the plurality of incoming client connections, copying contents of the single pending accept data structure to a completed accept data structure queued on a accept completion queue, wherein the single pending accept data structure remains on the pending queue after the contents are copied; and
a single asynchronous receive operation, configuring a client socket to process a plurality of client requests, wherein issuing the single asynchronous receive operation comprises;
placing a single pending receive data structure on a pending queue, andfor each completed client request, copying contents of the pending receive data structure to a completed receive data structure queued on a receive completion queue.
1 Assignment
0 Petitions
Accused Products
Abstract
Method, apparatus and article of manufacture for continuous modes for both asynchronous accepts and asynchronous receives. A single asynchronous accept is performed on a listening socket and a single asynchronous receive is performed on each connected socket. The continuous mode inputs result in queuing data structures on a pending queue. The contents of the pending data structures on the pending queue are copied to completion queues, while the pending data structures remain on the pending queue.
-
Citations
17 Claims
-
1. A computer-implemented method for providing asynchronous network communications between a client and a server, comprising:
-
configuring a socket for an application on the server; in response to a request from the client, issuing a single, continuous mode operation to the socket, wherein the single, continuous mode operation including; a single asynchronous accept operation, configuring a listening socket to process a plurality of incoming client connections, wherein issuing the single asynchronous accept operation comprises; placing a single pending accept data structure on a pending queue, and for each of the plurality of incoming client connections, copying contents of the single pending accept data structure to a completed accept data structure queued on a accept completion queue, wherein the single pending accept data structure remains on the pending queue after the contents are copied; and a single asynchronous receive operation, configuring a client socket to process a plurality of client requests, wherein issuing the single asynchronous receive operation comprises; placing a single pending receive data structure on a pending queue, and for each completed client request, copying contents of the pending receive data structure to a completed receive data structure queued on a receive completion queue. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer readable storage medium containing a sockets-based program comprising at least one of a continuous mode accept application programming interface and a continuous mode receive application programming interface, wherein the sockets-based program, when executed, performs operations for processing messages, the operation comprising:
-
configuring a listening socket to handle a plurality of incoming client connections, as a result of issuing a single asynchronous accept operation from an application, wherein issuing the single asynchronous accept operation comprises; placing a single pending receive data structure on a pending queue; and for each completed client request, copying contents of the pending receive data structure to a completed receive data structure queued on a receive completion queue, wherein the single pending accept data structure remains on the pending queue after the contents are copied; and configuring a client socket to handle a plurality of client requests, as a result of issuing a single, asynchronous receive operation issued by the application, wherein issuing the single asynchronous receive operation comprises; placing a single pending receive data structure on a pending queue; and for each completed client request, copying contents of the pending receive data structure to a completed receive data structure queued on a receive completion queue. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A system in a distributed computer environment, comprising:
-
a network facility configured to support a continuous mode network connection between a remote computer and a server computer; a memory, on the server computer, containing content comprising an application and a plurality of sockets application programming interfaces (APIs), wherein the sockets APIs comprise at least one of an asynchronous accept operation and an asynchronous receive operation; a processor which, when executing the contents, is configured to perform operation comprising in response to a connection request, performing the single asynchronous accept operation to configure a listening socket to receive a plurality of incoming client connections, and wherein the content of the memory further comprises a pending queue on which a single pending accept data structure is queued as a result of the single asynchronous accept operation; and in response to the asynchronous receive request, performing a single asynchronous receive operation to configure a client socket to receive a plurality of client requests, and wherein the content of the memory further comprises a pending queue on which a single pending receive data structure is queued as a result of the single asynchronous receive operation. - View Dependent Claims (14, 15, 16, 17)
-
Specification