Hi!

The no-unsafe-io workaround in dpkg was needed for 2005-era ext2fs
issues, where a power-cut in the middle of filesystem metadata
operation (which dpkg does a lot) might result in in unconsistent
filesystem state.  This workaround slowed down dpkg operations
quite significantly (and has been criticised due to that a lot,
the difference is really significant).

The workaround is to issue fsync() after almost every filesystem
operation, instead of after each transaction as dpkg did before.

Once again: dpkg has always been doing "safe io", the workaround
was needed for ext2fs only, - it was the filesystem which was
broken, not dpkg.

Today, doing an fsync() really hurts, - with SSDs/flash it reduces
the lifetime of the storage, for many modern filesystems it is a
costly operation which bloats the metadata tree significantly,
resulting in all further operations becomes inefficient.

How about turning this option - force-unsafe-io - to on by default
in 2025?  That would be a great present for 2025 New Year! :)

Thanks,

/mjt

Reply via email to