summaryrefslogtreecommitdiff
path: root/IoTunables.mdwn
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-09-11 17:34:02 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2023-09-11 17:34:02 -0400
commit33c260c596d5b33b7f752c9458380658f7ed26d4 (patch)
tree77aaa3a18686589cfdb41cd3b674444e218fc7bb /IoTunables.mdwn
parent2a2219526e2243d95dd283da73f01d6de2b62a77 (diff)
More cleanup
improve doc links, delete stale garbage Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'IoTunables.mdwn')
-rw-r--r--IoTunables.mdwn99
1 files changed, 0 insertions, 99 deletions
diff --git a/IoTunables.mdwn b/IoTunables.mdwn
deleted file mode 100644
index 3228fc4..0000000
--- a/IoTunables.mdwn
+++ /dev/null
@@ -1,99 +0,0 @@
-IO Tunables, Options, and Knobs
-
-## What there is
-
-These IO tunables can be set on a per-filesystem basis in
-`/sys/fs/bcache/<FSUUID>`. Some can be overridden on a per-inode basis via
-extended attributes; the xattr name will be listed in such cases.
-
-### Metadata tunables
-
-- `metadata_checksum`
- - What checksum algorithm to use for metadata
- - Default: `crc32c`
- - Valid values: `none`, `crc32c`, `crc64`
-- `metadata_replicas`
- - The number of replicas to keep for metadata
- - Default: `1`
-- `metadata_replicas_required`
- - The minimum number of replicas to tolerate for metadata
- - Mount-only (not in sysfs)
- - Default: `1`
-- `str_hash`
- - The hash algorithm to use for dentries and xattrs
- - Default: `siphash`
- - Valid values: `crc32c`, `crc64`, `siphash`
-
-### Data tunables
-
-- `data_checksum`
- - What checksum algorithm to use for data
- - Extended attribute: `bcachefs.data_checksum`
- - Default: `crc32c`
- - Valid values: `none`, `crc32c`, `crc64`
-- `data_replicas`
- - The number of replicas to keep for data
- - Extended attribute: `bcachefs.data_replicas`
- - Default: `1`
-- `data_replicas_required`
- - The minimum number of replicas to tolerate for data
- - Mount-only (not in sysfs)
- - Default: `1`
-
-### Foreground tunables
-
-- `compression`
- - What compression algorithm to use for foreground writes
- - Extended attribute: `bcachefs.compression`
- - Default: `none`
- - Valid values: `none`, `lz4`, `gzip`, `zstd`
-- `foreground_target`
- - Extended attribute: `bcachefs.foreground_target`
- - What disk group foreground writes should prefer (may use other disks if
- sufficient replicas are not available in-group)
-
-### Background tunables
-
-- `background_compression`
- - What compression algorithm to recompress to in the background
- - Extended attribute: `bcachefs.background_compression`
- - Default: `none`
- - Valid values: `none`, `lz4`, `gzip`, `zstd`
-- `background_target`
- - Extended attribute: `bcachefs.background_target`
- - What disk group data should be written back to in the background (may
- use other disks if sufficient replicas are not available in-group)
-
-### Promote (cache) tunables
-
-- `promote_target`
- - What disk group data should be copied to when frequently accessed
- - Extended attribute: `bcachefs.promote_target`
-
-## What would be nice
-
-- Different replication(/raid) settings between FG, BG, and promote
- - For example, replicated foreground across all SSDs (durability with low
- latency), RAID-6 background (sufficient durability, optimal space
- overhead per durability), and RAID-0/single promote (maximum performance,
- minimum cache footprint)
-
-- Different compression for promote
- - For example, uncompressed foreground (minimize latency), zstd background
- (minimize size), and lz4 promote (save cache space, but prioritize speed)
-
-- Fine-grained tuning of stripes vs. replicas vs. parity?
- - Would allow configuring N stripes + M parity, so trading off throughput
- (more stripes) vs. durability (more parity or replicas) vs. space
- efficiency (fewer replicas, higher stripes/parity ratio)
- - Well defined: (N stripes, R replicas, P parity) = (N * R + P) total
- chunks, with each stripe replicated R times, and P parity chunks to
- recover from if those are insufficient.
- - Can be implemented with P <= 2 for now, possibly extended later using
- Andrea Mazzoleni's compatible approach (see [[Todo]], wishlist section)
-
-- Writethrough caching
- - Does this basically obviate 'foreground' as a category, and instead
- write directly into background and promote?
- - What constraints does this place on (say) parity, given the plan for
- it seems to be to restripe and pack as a migration action?