Lightweight input/output protocol
First Claim
1. A system for offloading an input/output (I/O) task from a first computer to a second computer, comprising:
- a client running on the first computer;
a server running on the second computer; and
at least one RDMA channel linking the first computer and the second computer, wherein the first computer and the second computer communicate in accordance with a protocol comprising a network discovery phase and an I/O processing phase.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for offloading I/O processing from a first computer to a second computer, using RDMA-capable network interconnects, are disclosed. The method and system include a client on the first computer communicating over an RDMA connection to a server on the second computer by way of a lightweight input/output (LWIO) protocol. The protocol generally comprises a network discovery phase followed by an I/O processing phase. During the discovery phase, the client and server determine a minimal list of shared RDMA-capable providers. During the I/O processing phase, the client posts I/O requests for offloading to the second machine over a mutually-authenticated RDMA channel. The I/O model is asymmetric, with read operations being implemented using RDMA and write operations being implemented using normal sends. Read and write requests may be completed in polling mode and in interrupt mode. Buffers are managed by way of a credit mechanism.
60 Citations
24 Claims
-
1. A system for offloading an input/output (I/O) task from a first computer to a second computer, comprising:
-
a client running on the first computer;
a server running on the second computer; and
at least one RDMA channel linking the first computer and the second computer, wherein the first computer and the second computer communicate in accordance with a protocol comprising a network discovery phase and an I/O processing phase. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer-readable medium storing computer-executable instructions and computer-readable data comprising a computer program product for use in a system for offloading an input/output (I/O) task from a first computer to a second computer, the system comprising:
at least one RDMA channel linking the first computer and the second computer, wherein the first computer and the second computer communicate in accordance with a protocol comprising a network discovery phase and an I/O processing phase.
-
7. A method for offloading an input/output (I/O) task from a first computer to a second computer, comprising:
-
discovering, by a client on the first computer and a server on the second computer, one or more shared RDMA-capable providers; and
posting, by the client, an I/O processing request for completion by the server on the second computer. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. Computer-readable media storing computer-executable instructions for implementing a method for offloading an input/output (I/O) task from a first computer to a second computer, the method comprising:
-
discovering, by a client on the first computer and a server on the second computer, one or more shared RDMA-capable providers; and
posting, by the client, an I/O processing request for completion by the server on the second computer.
-
-
24. A method for managing buffers in an input/output offload protocol, comprising:
-
sending, by a server to a client, a delta credit message including an information field set to a number of credits, wherein, if the number is a negative number −
N, the server requires the client to retire N credits;
if the number of credits is a negative number −
N, sending, by the client to the server, N credit messages, and otherwise sending, by the client to the server, one credit message; and
for each credit message sent by the client, sending, by the server to the client, a status response message.
-
Specification