Closed avikivity closed 1 year ago
@avikivity is there are reference to the change in scylla that started doing this preallocation ? (i'm guess it getting blocked by CI failing in some way)
I think someone complained on something similar - https://groups.google.com/g/scylladb-dev/c/HJSc6RIIQw0/m/yOADFTuKAwAJ?utm_medium=email&utm_source=footer ?
scylladb/scylladb@1e37e1d40c78cb3c86ff5ce33d3a58dce5670b1f
Commitlog O_DSYNC is intended to make Raft and schema writes durable in the face of power loss. To make O_DSYNC performant, we preallocate the commitlog segments, so that the commitlog writes only change file data and not file metadata (which would require the filesystem to commit its own log).
However, in tests, this causes each ScyllaDB instance to write 384MB of commitlog segments. This overloads the disks and slows everything down.
Fix this by disabling O_DSYNC (and therefore preallocation) during the tests. They can't survive power loss, and run with --unsafe-bypass-fsync anyway.