mirror of
https://github.com/koverstreet/bcachefs-tools.git
synced 2025-02-24 00:00:19 +03:00
18 lines
882 B
ReStructuredText
18 lines
882 B
ReStructuredText
Checksumming
|
|
~~~~~~~~~~~~
|
|
|
|
bcachefs supports both metadata and data checksumming - crc32c by
|
|
default, but stronger checksums are available as well. Enabling data
|
|
checksumming incurs some performance overhead - besides the checksum
|
|
calculation, writes have to be bounced for checksum stability (Linux
|
|
generally cannot guarantee that the buffer being written is not modified
|
|
in flight), but reads generally do not have to be bounced.
|
|
|
|
Checksum granularity in bcachefs is at the level of individual extents,
|
|
which results in smaller metadata but means we have to read entire
|
|
extents in order to verify the checksum. By default, checksummed and
|
|
compressed extents are capped at 64k. For most applications and usage
|
|
scenarios this is an ideal trade off, but small random ``O_DIRECT``
|
|
reads will incur significant overhead. In the future, checksum
|
|
granularity will be a per-inode option.
|