As part of the resync and/or recovery, it is would be useful to be able to recover the size of the file based only on the data and parity stripes, even if the OST stripe holding the highest offset byte is lost. With FLR, the SOM xattr will cache the file size and blocks on the MDT inode, but it would add a layer of redundancy to also encode the file size into the EC stripes in some manner.
If the EC component is sized exactly with the number of parity bytes written (not rounded to the next stripe boundary), then it would be possible to use this to compute the file size within M bytes of the actual size (rounded up). It would be further possible to mostly determine the file size by subtracting up to M-1 zero bytes in the last stripe, but this is not 100% robust if the file actually has zeroes at the end of the file. Having multiple parity stripes doesn't really help, since the number of parity bytes written to each stripe would be the same.
As part of the resync and/or recovery, it is would be useful to be able to recover the size of the file based only on the data and parity stripes, even if the OST stripe holding the highest offset byte is lost. With FLR, the SOM xattr will cache the file size and blocks on the MDT inode, but it would add a layer of redundancy to also encode the file size into the EC stripes in some manner.
If the EC component is sized exactly with the number of parity bytes written (not rounded to the next stripe boundary), then it would be possible to use this to compute the file size within M bytes of the actual size (rounded up). It would be further possible to mostly determine the file size by subtracting up to M-1 zero bytes in the last stripe, but this is not 100% robust if the file actually has zeroes at the end of the file. Having multiple parity stripes doesn't really help, since the number of parity bytes written to each stripe would be the same.