iter9: 64 MiB chunks on top of iter8 (Phase 2.5 disabled)
iter8 (Phase 2.5 disabled, 32 MiB chunks) hit 28.7 MB/s mean — 1.3 MB/s below R2 floor. Without Phase 2.5, WAIT_AFTER blocks the mux thread directly once per chunk. Halving the WAIT_AFTER frequency (32 → 64 MiB chunks) should raise the mean without changing the underlying architecture.
This commit is contained in:
@@ -73,9 +73,14 @@ use std::path::Path;
|
||||
use super::writeback::WritebackPipeline;
|
||||
|
||||
/// Granularity at which the Linux writeback pipeline issues
|
||||
/// `sync_file_range` / `posix_fadvise(DONTNEED)` pairs. 32 MiB
|
||||
/// remains the best-tested value.
|
||||
const WRITEBACK_CHUNK_BYTES: u64 = 32 * 1024 * 1024;
|
||||
/// `sync_file_range` / `posix_fadvise(DONTNEED)` pairs.
|
||||
///
|
||||
/// iter9 (2026-05-17): 32 → 64 MiB on top of iter8 (Phase 2.5
|
||||
/// disabled). Without Phase 2.5's writer thread, WAIT_AFTER blocks
|
||||
/// the mux thread directly. Bigger chunks = fewer WAIT_AFTER calls
|
||||
/// = less mux-thread blocking. iter8 mean was 28.7 with 32 MiB; aim
|
||||
/// to clear the 30 floor by halving WAIT_AFTER frequency.
|
||||
const WRITEBACK_CHUNK_BYTES: u64 = 64 * 1024 * 1024;
|
||||
|
||||
pub(crate) struct WritebackFile {
|
||||
file: File,
|
||||
|
||||
Reference in New Issue
Block a user