Establishing connections in a computer network
A system and method for establishing connections in a computer network supporting a remote direct memory access (RDMA) protocol, may include: generating a plurality of dummy queue pairs, each generated with dummy parameter values; and upon receiving a request to establish a connection from a first computer node in the computer network, turning one of the dummy queue pairs into a functional queue pair by changing a subgroup of the dummy parameter values to true parameter values.
1 . A system for establishing connections in a computer network supporting a remote direct memory access (RDMA) protocol, the system comprising:
a memory; and
a processor configured to:
generate a plurality of dummy queue pairs by using dummy parameter values to perform state transitions of the dummy queue pairs up to a ready-to-send state of the dummy queue pair before receiving requests to establish a connection; and
upon receiving a request to establish a connection from a first computer node in the computer network, turn one of the dummy queue pairs into a functional queue pair by changing a subgroup of the dummy parameter values to true parameter values.
2 . The system of claim 1 , wherein each of the dummy queue pairs is associated with one computer node of a plurality of computer nodes in the computer network, and wherein the processor is further to turn one of the dummy queue pairs into a functional queue pair by turning the dummy queue pair associated with the first computer node into the functional queue pair.
3 . The system of claim 1 , wherein the subgroup of the dummy parameters comprises at least one of: a real address vector, a destination queue pair, a packet sequence number (PSN), and maximum number of outstanding read requests.
4 . The system of claim 1 , wherein the processor is further configured to change the dummy parameter values to the true parameter values using a ready to send to ready to send (RTS2RTS) command modified to change the subgroup of the dummy parameter values to the true parameter values.
5 . The system of claim 1 , wherein the processor is further configured to obtain the true parameter values are provided from the client in the request.
6 . The system of claim 1 , wherein the processor is further configured to change the dummy parameter values to the true parameter values using dedicated hardware.
7 . The system of claim 1 , wherein the processor is further configured to:
receive a plurality of requests to establish a connection from other computer nodes; and
scatter the plurality of requests to establish a connection to a plurality of queues.
8 . The system of claim 1 , wherein the processor is further configured to send an accept message to the first computer node after turning the dummy queue pair into a functional queue pair.
9 . The system of claim 1 , wherein receiving the request command and sending the accept message conform to an unreliable communication protocol, wherein the processor is further to encapsulate the messages into packets of a reliable communication protocol.
10 . A method for establishing connections in a computer network supporting a remote direct memory access (RDMA) protocol, the method comprising:
generating a plurality of dummy queue pairs by using dummy parameter values to perform state transitions of the dummy queue pairs up to a ready-to-send state of the dummy queue pair before receiving any request to establish a connection; and
upon receiving a request to establish a connection from a first computer node in the computer network, turning one of the dummy queue pairs into a functional queue pair by changing a subgroup of the dummy parameter values to true parameter values.
11 . The method of claim 10 , wherein each of the dummy queue pairs is associated with one computer node of a plurality of computer nodes in the computer network, and wherein turning one of the dummy queue pairs into a functional queue pair comprises turning the dummy queue pair associated with the first computer node into the functional queue pair.
12 . The method of claim 10 , wherein the subgroup of the dummy parameters comprises at least one of: a real address vector, a destination queue pair, a packet sequence number (PSN), and maximum number of outstanding read requests.
13 . The method of claim 10 , wherein the dummy parameter values are changed to the true parameter values using a ready to send to ready to send (RTS2RTS) command modified to change the subgroup of the dummy parameter values to the true parameter values.
14 . The method of claim 10 , wherein the true parameter values are provided from the client to the server in the request.
15 . The method of claim 10 , wherein the dummy parameter values are changed to the true parameter values using dedicated hardware.
16 . The method of claim 10 , further comprising:
receiving a plurality of requests to establish a connection from other computer nodes; and
scattering the plurality of requests to establish a connection to a plurality of queues.
17 . The method of claim 10 , further comprising sending an accept message to the first computer node after turning the dummy queue pair into a functional queue pair.
18 . The method of claim 17 , wherein the request and the accept message conform to an unreliable communication protocol, the method comprising encapsulating the request and the accept message into packets of a reliable communication protocol.