mitdbg / treeline

An update-in-place key-value store for modern storage.
MIT License
132 stars 18 forks source link

Exclude startup I/O from physical I/O measurements #33

Closed geoffxy closed 2 years ago

geoffxy commented 2 years ago

This PR modifies our evaluation scripts to start iostat after the DB is opened and finishes initialization. This helps simplify our physical I/O analysis since we won't need to manually exclude the startup I/O.

The way this is implemented is that the benchmark runner sends a signal (SIGUSR1) to its parent process when initialization finishes. The parent process is the run.sh script that coordinates the evaluation. So the script starts iostat only after receiving that signal.

One caveat is that RocksDB always tries to schedule background work (e.g., compaction) after it is opened. This change does not let us avoid counting that I/O. But I suppose it's reasonable to consider that I/O as part of RocksDB's overall read/write amplification.

cc @mmarkakis @andreaskipf