influxdb/workspace-hack
Dom Dwyer 1bb4c08067
perf: use half of logical cores for persist exec
Changes the default ingester configuration to assign half the logical
cores to datafusion for persist execution. Prior to this commit,
datafusion always used 4 threads by default.

In situations where the ingesters are configured with 4 logical cores or
less, the periodic persist can start enough persist jobs to keep the 4
threads assigned to datafusion busy. Because there are enough threads to
saturate all CPU cores, these CPU-heavy persist threads can impact write
latency by stealing CPU time from the tokio runtime threads.

This change assigns exactly half the threads to DF by default, ensuring
there's always N/2 cores to service I/O heavy API requests.
2023-09-14 17:54:33 +02:00
..
src chore: Regenerate workspace hack crate contents 2023-02-27 11:55:20 +01:00
.gitattributes feat: Results of using cargo hakari init workspace-hack 2021-11-19 09:20:35 -05:00
Cargo.toml perf: use half of logical cores for persist exec 2023-09-14 17:54:33 +02:00
README.md feat: Add CI jobs and documentation for the workspace-hack crate 2021-11-19 11:05:34 -05:00
build.rs feat: Results of using cargo hakari init workspace-hack 2021-11-19 09:20:35 -05:00

README.md

workspace-hack

This crate is a "workspace hack" crate managed by cargo hakari.

Its purpose is to unify the features used by all crates in the workspace so that the crates share more dependencies and rebuild crates less. There are more details in hakari's documentation.

CI failures

If the workspace_hack_checks CI job is failing, there are two possible reasons and solutions:

  • If cargo hakari generate --diff fails, that means a crate has started or stopped using a feature of some crate and that feature isn't up-to-date in the workspace-hack crate. To fix this, run cargo hakari generate and commit the changes.
  • If cargo hakari manage-deps --dry-run fails, that means a crate in the workspace isn't depending on the workspace-hack crate. To fix this, run cargo hakari manage-deps and commit the changes.