Bit late - but that could be explored in future. The main downside I see with "automatic" redundancy/optimisation is the complexity it introduces. Likely this would be best served with user-space tools.

On 11/03/13 02:21, Roger Binns wrote:
On 10/03/13 15:04, Hugo Mills wrote:
Given that this is going to end up rewriting *all* of the data on the
FS,
Why does all data have to be rewritten?  Why does every piece of data have
to have exactly the same storage parameters in terms of
non-redundancy/performance/striping options?
This is a good point. You don't necessarily have to rewrite everything all at once so the performance penalty is not necessarily that bad. More importantly, some "restripe" operations actually don't need much change on-disk (in theory).

Let's say we have disks with 3c chunk allocation and this needs to be reallocated into 2c chunks.

In practice at present what would actually happen is that it would first create a *new* 2c chunk and migrate the data over from the 3c chunk. Once the data is moved across we finally mark the space taken up by the original 3c chunk as available for use. Rinse; Repeat.

In theory we can skip this rebalance/migration step by "thinning" out the chunks in-place: relabel the chunk as 2c and mark the unneeded copies as available diskspace.

A similar situation applies to other types of "conversions" in that they could be converted in-place with much less I/O or that the I/O could be optimised (for example sequential I/O between disks with minimal buffering needed vs moving data between two locations on the same disk). I'm sure there are other possibilities for "in-place" conversions too, such as moving from 4c to 2c2s or 2c to 2s.

xC -> (x-1)C
xCmS -> (x/2)C(m*2)S

The complexity of the different types of conversions hasn't escaped me, and I do see another downside as well. With the 3C->2C conversion there is the inevitability of "macro" fragmentation. Again, there could be long-term performance implication or it might even be negligible.

--
__________
Brendan Hide
http://swiftspirit.co.za/
http://www.webafrica.co.za/?AFF1E97

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to