Thank you for your information.
I have sent the patches of the defragmentation for a extent-based
file on ext3 using your patches of the multi-block allocation.
I'm happy if you have a time to review my patches.
"[RFC][PATCH 0/3] Extent base online defrag"
And I'd like to start considering the defragmentation for ext4.
Do you have a plan to update your patches for ext4?
> I've been reworking mballoc with few new features:
> 1) in-core preallocation
> like existing reservation, but can preallocate few pieces for a file
> 2) locality groups
> to maintain groups of related files and flush them together.
> say, two users are unpacking kernel. with delayed allocation
> we've got bunch of files from the both in cache. then we flush
> first set (few MBs) of files from one user, then from another.
> this way write I/Os will be large enough to achieve good
> throughput and files are still quite localized to be used later
> at good read rate.
> 3) scalable reservation
> required for delayed allocation to avoid -ENOSPC at flush time.
> current version uses per-sb spinlock.
> probably we could add something for defragmentation?