Re: [PATCH] ext4: rralloc - (former rotalloc) improved round-robin allocation policy
From: Mario Lohajner
Date: Tue Mar 03 2026 - 08:51:18 EST
On 03. 03. 2026. 02:33, Theodore Tso wrote:
On Mon, Mar 02, 2026 at 09:04:44PM +0100, Mario Lohajner wrote:
RRALLOC spreads allocation starting points across block groups to avoid
repeated concentration under parallel load.
There are already other ways in which we spread allocations across
block groups. You need to tell explain a specific workload where this
actually makes a difference.
Also note that in most use cases, files are written once, and read
multiple times. So spreading blocks across different block groups is
can often be actively harmful.
In high-concurrency testing, performance is consistently comparable to
or occasionally better than the regular allocator. No regressions have
been observed across tested configurations.
No regressions, and only "occasionally better" not enough of a justifiation.
What is your real life workload which is motivating your efforts?
- Ted
RRALLOC targets sustained parallel overwrite-heavy workloads such as
scratch disks, rendering outputs, database storage and VM image storage.
It introduces a round-robin allocation policy across block groups to
reduce short-term allocation concentration under high concurrency.
It is not intended to improve write-once/read-many workloads and remains
disabled by default.
I do understand that without clearly measurable workload-specific improvement, this is likely not sufficient justification for upstream inclusion.
I will continue evaluating and refining the allocator out-of-tree.
If I am able to demonstrate concrete and reproducible benefits beyond
allocation geometry and occasional contention-related effects,
I will revisit the discussion with additional data.
Thank you for the review and valuable feedback.
Regards,
Mario Lohajner