CPC G06F 3/064 (2013.01) [G06F 3/067 (2013.01); G06F 3/0619 (2013.01); G06F 3/0652 (2013.01); G06F 3/0653 (2013.01)] | 18 Claims |
1. A method comprising:
sending, from an application layer, a chunk size setting for a storage system to an erasure coding layer;
receiving, at the application layer, user data;
determining, at the application layer, data units of the user data to be stored together in a same chunk of the storage system;
aligning, at the application layer, the user data based on the data units determined to be stored together, and by padding the data units determined to be stored together such that the padded data units correspond to a size indicated by the chunk size setting;
sending the aligned user data to the erasure coding layer;
partitioning, at the erasure coding layer, the aligned user data by splitting the user data into at least a first data chunk and a second data chunk based on the chunk size setting such that the data units that are determined to be stored together including the padding are stored together as the first data chunk;
generating, at the erasure coding layer, a parity chunk based on the first data chunk and the second data chunk;
sending, from the erasure coding layer, the first data chunk, the second data chunk, and the parity chunk to the storage system; and
sending, from the application layer, a computation command to a first storage device, a second storage device, or a third storage device of the storage system, the computation command instructing the first storage device, the second storage device, or the third storage device to perform an in-storage computation to generate the user data based on at least one of the first data chunk, the second data chunk, and the parity chunk.
|