Communication system, intermediate device, communication method, and program
A communication system includes a first intermediate device 10 A and a second intermediate device 10 B, in which the first intermediate device includes a buffer management unit 15 that determines a buffer size based on delay information and secures a buffer, a transfer unit 11 that, when data to be transferred to a second device 50 is smaller than a credit of the second intermediate device, transfers a request including the data to the second intermediate device, and a generation unit 12 A that generates a pseudo-response to the request and returns the pseudo-response to the first device, and the second intermediate device includes a buffer management unit 15 that determines a buffer size based on the delay information and secures a buffer, a transfer unit 11 that transfers the request to the second device and stores the request in the buffer to update the credit of its own device, and a discarding unit 12 B that discards a response received from the second device, deletes the request stored in the buffer, and updates the credit.
1 . A communication system comprising:
a first intermediate device; and
a second intermediate device, wherein
the first intermediate device and the second intermediate device are arranged between a first device and a second device for transferring data using Remote Direct Memory Access,
the first intermediate device includes
a buffer management unit configured to determine a buffer size based on delay information about a delay of a network between the first intermediate device and the second intermediate device, and secure a buffer in the buffer size,
a transfer unit configured, when data to be transferred from the first device to the second device is smaller than a credit of the second intermediate device, to transfer a request including the data to the second intermediate device, and
a generation unit configured to generate a pseudo-response to the request and return the pseudo-response to the first device, and
the second intermediate device includes
a buffer management unit configured to determine a buffer size based on the delay information and secure a buffer in the buffer size,
a transfer unit configured to transfer the request to the second device and store the request in the buffer to update the credit of the own device, and
a discarding unit configured to discard a response received from the second device with respect to the request, delete the request stored in the buffer, and update the credit.
2 . The communication system according to claim 1 , wherein
each of the first intermediate device and the second intermediate device includes a network state measurement unit configured to measure the delay information.
3 . The communication system according to claim 1 , comprising
an orchestrator configured to calculate or measure the delay information and notify the first intermediate device and the second intermediate device of the delay information.
4 . The communication system according to claim 1 , wherein
the buffer management unit of the first intermediate device acquires the delay information from a first transmission device arranged on the network, and
the buffer management unit of the second intermediate device acquires the delay information from a second transmission device arranged on the network.
5 . The communication system according to claim 1 , comprising:
the first device; and
the second device, wherein
each of the first device and the second device includes
a determination unit configured to determine whether to perform communication via the first intermediate device and the second intermediate device based on the delay information, and
a queue management unit configured to determine a queue depth of an own device based on the delay information when communication is performed without going through the first intermediate device and the second intermediate device.
6 . A non-transitory computer-readable storage medium storing a program causing a computer to function as an intermediate device arranged between a first device and a second device for transferring data using Remote Direct Memory Access, the intermediate device comprising:
buffer management instructions configured to determine a buffer size based on delay information about a network between the intermediate device and another intermediate device as a transfer destination, and secure a buffer in the buffer size;
transfer instructions configured, when data to be transferred from the first device to the second device is smaller than a credit of the intermediate device as the transfer destination, to transfer a request including the data to the intermediate device as the transfer destination; and
generation instructions configured to generate a pseudo-response to the request and return the pseudo-response to the first device.
7 . A communication method performed by a communication system including a first intermediate device and a second intermediate device, wherein
the first intermediate device and the second intermediate device are arranged between a first device and a second device for transferring data using Remote Direct Memory Access,
the first intermediate device performs:
determining a buffer size based on delay information about a delay of a network between the first intermediate device and the second intermediate device, and securing a buffer in the buffer size;
when data to be transferred from the first device to the second device is smaller than a credit of the second intermediate device, transferring a request including the data to the second intermediate device; and
generating a pseudo-response to the request and returning the pseudo-response to the first device, and
the second intermediate device performs:
determining a buffer size based on the delay information and securing of a buffer in the buffer size;
transferring the request to the second device and storing the request in the buffer to update the credit of the own device; and
discarding a response received from the second device with respect to the request, deleting the request stored in the buffer, and updating the credit.