Details
-
Improvement
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
3
-
9223372036854775807
Description
During EC parity generation, a PFL file may have sub-optimal striping for the early components in the file. This will add overhead to storing the redundancy that could be removed by "squashing" the earlier (low-stripe_count) PFL components into later components that have enough stripes to meet the parity needs.
For example, a file with a layout like "-E 1G -c 1 -E 16G -c 4 -E eof -c 40" would need to store 3 separate EC components like "-E 1G -N 2 -E 16G -L ec:4+2 -E eof - ec:8+2". In such a case, having 2x redundancy for the first 16GB of the file would consume 1GB/1x2 + 15GB/4x2 = 9.5GB of space, while 8+2 EC of the full 16GB file would only use 16GB/8x2 = 4GB.
Insted, the data from the first 16GB of the file could be written into the 400MiB "holes" at the beginning of each of the 40 stripes in the third component (if it is instantiated). Then, the EC can properly use 5x(8+2) parity for the entire file.