mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-22 12:26:37 +00:00
1.2 KiB
1.2 KiB
Performance Lens
- For added clones/allocations on request/object/block paths, quantify copied
data and frequency. Recommend borrowing, move,
Bytes/Arc,Cow, or capacity reservation only for a concrete repeated cost. - Route every new sync/flush through the durability-mode and bucket override
gates; mode
nonemust not pay the new fsync. - Keep blocking filesystem/CPU work off async runtime threads, but do not split
one small operation into many
spawn_blockinground trips. - Measure lock hold time across I/O and compare acquisition order for ABBA.
- Keep cleanup, extra stat/rename, and diagnostics out of the PUT commit critical section when they need not be there.
- Detect per-item serial I/O/RPC in batch APIs and accidental quadratic scans; use a gate or bounded concurrency when the concrete fan-out warrants it.
- Count buffer growth and byte copies in EC/bitrot paths; preserve pool gauge balance and avoid repeated metadata decode/fetch per object.
- Repetitive success logs stay at
trace; metrics/instrumentation on hot paths require an existing gate. - Claims of no impact on PUT/GET/commit/erasure paths need relevant benchmark or A/B evidence, especially for 4 KiB objects.