[systemd-devel] consider dropping defrag of journals on btrfs

Lennart Poettering lennart at poettering.net
Wed Feb 10 08:44:54 UTC 2021


On Di, 09.02.21 10:17, Phillip Susi (phill at thesusis.net) wrote:

>
> Chris Murphy writes:
>
> > And I agree 8MB isn't a big deal. Does anyone complain about journal
> > fragmentation on ext4 or xfs? If not, then we come full circle to my
> > second email in the thread which is don't defragment when nodatacow,
> > only defragment when datacow. Or use BTRFS_IOC_DEFRAG_RANGE and
> > specify 8MB length. That does seem to consistently no op on nodatacow
> > journals which have 8MB extents.
>
> Ok, I agree there.
>
> > The reason I'm dismissive is because the nodatacow fragment case is
> > the same as ext4 and XFS; the datacow fragment case is both
> > spectacular and non-deterministic. The workload will matter where
>
> Your argument seems to be that it's no worse than ext4 and so if we
> don't defrag there, why on btrfs?  Lennart seems to be arguing that the
> only reason systemd doesn't defrag on ext4 is because the ioctl is
> harder to use.

It's not just harder to use, it's uglier: you have to create a new
inode, and then donate the old blocks over. This means the inode nr
changes, which is something I don't like. Semantically it's only
marginally better than just creating a new file from scratch.

Lennart

--
Lennart Poettering, Berlin


More information about the systemd-devel mailing list