Show the method.
Numbers are useful when the conditions travel with them. Local measurements, raw samples, and a command to repeat the experiment.
The cost of more positions.
| Virtual nodes | Throughput (ops/s) | p50 (ms) | p95 (ms) | p99 (ms) | Timed batches |
|---|---|---|---|---|---|
| 1 | 35,535 | 0.0253 | 0.0434 | 0.0575 | 50 |
| 8 | 30,498 | 0.0323 | 0.0373 | 0.0383 | 50 |
| 32 | 14,626 | 0.0629 | 0.1018 | 0.1225 | 50 |
Percentiles describe per-operation batch averages, not individual request tail latencies. Each sample averages 100 operations. Do not compare these numbers directly to production p99 latency.
Hash placement / 1 virtual node / environment & method
- Measured at
- 2026-11-12T18:20:45.921Z
- Hardware
- 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz / x64 / 31.7 GiB system memory
- Operating system
- win32 10.0.26300
- Runtime / compiler
- Node v24.22.2 / V8 13.6.233.17-node.63 JIT; no native compiler
- Build configuration
- TypeScript stripped by Node; unbundled source, single process, default runtime options
- Method
- 50 timed batches of 100 complete ring-build-and-place operations, after 1,000 warmups. Each operation places 256 keys. Percentiles use nearest rank over per-operation batch averages, not individual request latencies. Throughput uses completed operations divided by total wall time including timing overhead.
- Limitations
- Local shared machine, uncontrolled background load, no CPU pinning, no confidence intervals. These are JavaScript teaching-engine measurements, not C++ or distributed-service benchmarks.
- Source SHA-256
- c35e106cd960982d75e1065bfb3381221206b6fd819541579e907ad72de90ea5
Hash placement / 8 virtual nodes / environment & method
- Measured at
- 2026-11-12T18:20:46.122Z
- Hardware
- 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz / x64 / 31.7 GiB system memory
- Operating system
- win32 10.0.26300
- Runtime / compiler
- Node v24.22.2 / V8 13.6.233.17-node.63 JIT; no native compiler
- Build configuration
- TypeScript stripped by Node; unbundled source, single process, default runtime options
- Method
- 50 timed batches of 100 complete ring-build-and-place operations, after 1,000 warmups. Each operation places 256 keys. Percentiles use nearest rank over per-operation batch averages, not individual request latencies. Throughput uses completed operations divided by total wall time including timing overhead.
- Limitations
- Local shared machine, uncontrolled background load, no CPU pinning, no confidence intervals. These are JavaScript teaching-engine measurements, not C++ or distributed-service benchmarks.
- Source SHA-256
- c35e106cd960982d75e1065bfb3381221206b6fd819541579e907ad72de90ea5
Hash placement / 32 virtual nodes / environment & method
- Measured at
- 2026-11-12T18:20:46.530Z
- Hardware
- 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz / x64 / 31.7 GiB system memory
- Operating system
- win32 10.0.26300
- Runtime / compiler
- Node v24.22.2 / V8 13.6.233.17-node.63 JIT; no native compiler
- Build configuration
- TypeScript stripped by Node; unbundled source, single process, default runtime options
- Method
- 50 timed batches of 100 complete ring-build-and-place operations, after 1,000 warmups. Each operation places 256 keys. Percentiles use nearest rank over per-operation batch averages, not individual request latencies. Throughput uses completed operations divided by total wall time including timing overhead.
- Limitations
- Local shared machine, uncontrolled background load, no CPU pinning, no confidence intervals. These are JavaScript teaching-engine measurements, not C++ or distributed-service benchmarks.
- Source SHA-256
- c35e106cd960982d75e1065bfb3381221206b6fd819541579e907ad72de90ea5
Reproduce, then question.
npm ci
npm run benchmark
npm run buildThe benchmark records hardware, OS, runtime, warmup, sample count, raw timings, and a source hash. It uses no network requests and records no host name or user name.
Expect variation on a shared machine. There are no confidence intervals, affinity controls, or claims of statistically significant differences.
What do virtual nodes change? →
Inspect distribution and key movement in the lab before drawing a conclusion from a timing chart.