Client and network based erasure code recovery
A system and method for client and network based erasure code recovery. In some embodiments, the method includes: receiving, by a storage node, a get command; storing, by the storage node, in a memory of a host, using remote direct memory access, data specified by the get command, at a memory address specified by the get command; sending, by the storage node, a response, indicating successful execution of the get command; and performing, by the host, erasure code recovery based on the data.
1 . A method, comprising:
receiving, by a storage node, a get command from a host, wherein the get command indicates a memory address in a memory of the host;
storing, by the storage node, in the memory of the host, using remote direct memory access, data specified by the get command, at the memory address specified by the get command, wherein the data includes a parity data;
based on storing by the storage node, in the memory of the host, the data including the parity data, transmitting by the storage node a response to the host, wherein the response includes the memory address storing the parity data; and
performing, by the host, erasure code recovery based on the data.
2 . The method of claim 1 , wherein the receiving of the get command comprises receiving the get command over a Transmission Control Protocol (TCP) socket.
3 . The method of claim 1 , wherein the storing of the data comprises storing the data using remote direct memory access over ethernet.
4 . The method of claim 1 , wherein the storing, by the storage node, of the data, comprises storing the data using Remote Direct Memory Access over Converged Ethernet (RoCE).
5 . The method of claim 1 , wherein the get command includes a first scatter gather list for a first block of data.
6 . The method of claim 1 , wherein the get command includes a first scatter gather list for a block of parity bits.
7 . The method of claim 1 , wherein:
the host comprises a Graphics Processing Unit (GPU), and
the performing of the erasure code recovery comprises performing erasure code recovery by the GPU.
8 . The method of claim 1 , wherein the performing of the erasure code recovery comprises:
storing parity data temporarily in a region of a shared parity memory pool, and
freeing the region of the shared parity memory pool upon completion of the erasure code recovery.
9 . A system, comprising:
a host comprising a processing circuit; and
a storage node comprising a processing circuit configured to:
receive a get command from the host, wherein the get command indicates a memory address in a memory of the host;
store, in the memory of the host, using remote direct memory access, data specified by the get command, at the memory address specified by the get command, wherein the data includes a parity data; and
based on storing of the data including the parity data in the memory of the host, transmit a response to the host, wherein the response includes the memory address storing the parity data,
wherein the processing circuit of the host is configured to perform erasure code recovery based on the data.
10 . The system of claim 9 , wherein the receiving of the get command comprises receiving the get command over a Transmission Control Protocol (TCP) socket.
11 . The system of claim 9 , wherein the processing circuit being configured to store the data comprises the processing circuit being configured to store the data using remote direct memory access over ethernet.
12 . The system of claim 9 , wherein the processing circuit being configured to store the data comprises the processing circuit being configured to store the data using Remote Direct Memory Access over Converged Ethernet (RoCE).
13 . The system of claim 9 , wherein the get command includes a first scatter gather list for a first block of data.
14 . The system of claim 9 , wherein the get command includes a first scatter gather list for a block of parity bits.
15 . The system of claim 9 , wherein:
the processing circuit of the host comprises a Graphics Processing Unit (GPU), and
the performing of the erasure code recovery comprises performing erasure code recovery by the GPU.
16 . The system of claim 9 , wherein the performing of the erasure code recovery comprises:
storing parity data temporarily in a region of a shared parity memory pool, and
freeing the region of the shared parity memory pool upon completion of the erasure code recovery.
17 . The system of claim 9 , wherein:
the host comprises a Network Interface Card (NIC); and
the performing of the erasure code recovery comprises performing erasure code recovery by the NIC.
18 . A system, comprising:
a host comprising means for processing; and
a storage node comprising means for processing configured to:
receive a get command from a host, wherein the get command indicates a memory address in a memory of the host;
store, in the memory of the host, using remote direct memory access, data specified by the get command, at the memory address specified by the get command, wherein the data includes a parity data; and
based on storing of the data including the parity data in the memory of the host, transmit a response to the host, wherein the response includes the memory address storing the parity data,
wherein the means for processing of the host is configured to perform erasure code recovery based on the data.
19 . The system of claim 18 , wherein:
the host comprises a Network Interface Card (NIC); and
the performing of the erasure code recovery comprises performing erasure code recovery, by the NIC.