Benchmark · AWS validation
TemporalStore + MatrixObject: shared-storage performance on AWS.
Early results from running the Rust TemporalStore engine on the Rust MatrixObject shared object store, in shared-storage mode with compute/storage disaggregation. The focus is concurrent read + write throughput and latency on AWS, and how serving scales as stateless datanodes are added over one durable copy.
Setup
| Dimension | Value |
|---|---|
| Engine | Rust TemporalStore (append-structured block store; no LSM write amplification) |
| Shared store | Rust MatrixObject object store — one durable copy; compute/storage disaggregation |
| Mode | Shared-storage; stateless datanodes serve over the shared object store |
| Workload | Concurrent reads + writes (per-shard pipelines running ingest and query together) |
| Environment | AWS us-west-2; c7i.large validation workers and MatrixObject node |
| Comparison | AWS EFS shared storage vs Rust MatrixObject shared object store |
| Validation run | 8,000 shared-store operations, 256-way concurrency, three samples per backend |
| Code version | TemporalStore / MatrixObject commit 79afda8 |
What we measure
- Concurrent throughput — sustained writes/sec and reads/sec under mixed load.
- Latency — p50 / p95 / p99 for reads and writes while the other side is active.
- Horizontal scaling — throughput as stateless datanodes are added over the shared store, with no data movement.
- Durability — no data loss under the shared-store write policy (sync vs async).
AWS results: MatrixObject vs EFS
The table below reports three-run averages from the latest AWS validation. Lower is better for latency and wall-clock rows; higher is better for throughput. Replay lag stayed at zero for both backends.
| Metric | EFS shared storage | MatrixObject shared store | Result |
|---|---|---|---|
| Sync storage write p99 | 16.41 ms | 6.07 ms | 63.0% lower latency |
| Async durable write p99 | 10.25 ms | 0.36 ms | 96.5% lower latency |
| Async flush batch p99 | 205.02 ms | 7.20 ms | 96.5% lower latency |
| Concurrent sync write p99 | 3,492.65 ms | 130.47 ms | 96.3% lower latency |
| Concurrent sync write throughput | 118.10 ops/s | 140.66 ops/s | 19.1% higher throughput |
| Concurrent sync read p99 | 1.57 ms | 1.56 ms | effectively tied |
| Concurrent sync lag after replay | 0 ops | 0 ops | consistent replay |
| Wall clock | 2,138.64 s | 351.62 s | 83.6% lower elapsed time |
Latest AWS report generated on 2026-08-10 at 18:48 Pacific for image matrixobject-rust:opt-79afda8-20260810-1802.
Why shared storage + MatrixObject
In shared-storage mode the durable data lives once in MatrixObject, so datanodes become stateless compute: add or remove them to scale serving without moving bytes, and replace a failed node instantly. Combined with TemporalStore’s append-structured block store (batched WAL, deferred fsync), that is what lets concurrent read + write throughput stay high on AWS.