F2FS

Log based file-system

ATGC

Age-Threshold based Garbage Collection uses age to optimized garbage collection calls[1]

History

6.11

FS_IOC_GETFSSYSFSPATH was added to F2FS, it was added to EXT4/bcachefs on 6.10 and created on 6.9. it exist to give a standard way to access the SYSFS path that in time should be added to all FS. made by Kent Overstreet.

enables #ATGC dynamically in some cases.[2]

6.12

More conversion to folios (in I/O Cod path) [3]

6.13

The F2FS filesystem has a new feature, called "device aliasing", that allows a portion of a block device to be set aside. "Essentially, this mechanism allows a portion of the f2fs area to be temporarily reserved and used by another filesystem or for different purposes. Once that external usage is complete, the device aliasing file can be deleted, releasing the reserved space back to F2FS for its own use."[4]

6.16

Large amount of folios conversion yielding perf gain. [5]

6.17

converted to the "New" mounting API

more folio conversion.[6]

6.18

F2FS now Enforces a hash-only lookup by default. We also have a new mount option: lookup_mode=[8]

It resolves a persistent issue with the checkpoint feature which could lead to a couple of second of pause.[7]

We also have some readahead for node blocks in F2FS_GET_BLOCK_PRECACHE mode

6.19

F2FS Brings More Performance Optimizations[9]

7.0

Large folio support for Immutable Non-Compressed files.

There is currently a push to get F2FS to have more Large Folio optimization.[10]

7.2

F2FS joins the club of the FS with Generic error reporting by using fserror.

For now, only XFS and EXT4 were in that group.

They also had some other optimisations... [11]

7.3

Flushes are now done in parallel when on multi-device.

Did you know that F2FS could span multiple device without raid since 4.10 (Feb 2017),

cool and makes sense for multiple chip that might have different driver...

Now flush, the act of ensuring the dirty buffers are written to non-volatile storage,

will be done in parallel instead of being done sequentially.[12] [13]

Sources: