GalaxDB Cloud·Coming soon.
Join waitlist// BENCHMARKS
Real numbers. Real hardware.
Every number on this page was measured on real hardware with --release builds. Random-vector benchmarks are not reported. Commands to reproduce every result are shown inline.
HNSW Vector Search: SIFT-1M
Dataset: SIFT-1M: 1,000,000 x 128-dim float32 vectors, 10,000 queries, pre-computed ground truth. Source: ftp://ftp.irisa.fr/local/texmex/corpus/sift.tar.gz
SHA256: 92f1270c5e3a0cb46b89983e72b0511e4df065c31a9fa0276d8c9b1fca5bc81a
| ef_search | recall@10 | mean latency | p99 latency |
|---|---|---|---|
| 10 | 0.756 | 57.7 µs | 105 µs |
| 50 | 0.959 | 156.7 µs | 229 µs |
| 100 | 0.983 | 266.7 µs | 364 µs |
| 200 | 0.990 | 458.9 µs | 612 µs |
Storage Engine: durable write path
GalaxDB and PostgreSQL 16.14 run on the same instance-store NVMe (PostgreSQL's data directory relocated to the NVMe), fsync=on, both using prepared statements. An apples-to-apples comparison.
Concurrent INSERT vs PostgreSQL 16
| Clients | GalaxDB | PostgreSQL 16 |
|---|---|---|
| 1 | 10,450 rows/s | 11,891 rows/s |
| 4 | 30,468 rows/s | 34,298 rows/s |
| 8 | 36,632 rows/s | 54,432 rows/s |
| 16 | 37,448 rows/s | 84,747 rows/s |
GalaxDB is competitive at low concurrency (0.88x PostgreSQL at 1 client, 0.89x at 4); PostgreSQL's mature process-per-connection model scales better past 8 concurrent clients (0.44x at 16). The remaining gap is the async server's per-query thread hand-off, not the storage engine itself.
Bulk load and engine write path
| Path | Throughput | What it measures |
|---|---|---|
| COPY FROM STDIN (wire) | 190,287 rows/s | bulk ingest, chunked group commit (25.97x vs row INSERT) |
| single-row INSERT (wire) | ~8,525 rows/s | per-row roundtrip over the PostgreSQL protocol |
| put_sync (engine, 1 fsync/row) | ~26,500 rows/s | strict per-row durability |
| put_batch_sync (engine, amortized) | ~1.4 to 2.1M rows/s | in-memory path, fsync amortized over a batch |
Encryption
Measured with cargo bench -p galaxdb-crypto on the same hardware.
| Operation | Latency | Throughput |
|---|---|---|
| AEGIS-256 decrypt 1 MB | 151 µs | 6.63 GB/s |
| AEGIS-256 encrypt 64 KB | 9.75 µs | 6.56 GB/s |
| AES-256-GCM decrypt 1 MB | 701 µs | 1.43 GB/s |
| XXH3-64 checksum 1 MB | -- | 34.1 GB/s |
| ART lookup (1M keys) | 168 ns/op | -- |
Crash Safety
All 7 chaos scenarios pass in under 30s total.
| Scenario | Result | Time |
|---|---|---|
| Kill mid-flush: WAL replay | 1,000 rows recovered, zero loss | 8.79s |
| Kill mid-compaction: old blocks intact | 4,000 keys readable | 0.02s |
| Corrupt WAL record: replay stops at corruption | Partial recovery, no corrupt data returned | 1.81s |
| Disk full: clean checkpoint, writes blocked | Reserve file freed, reads continue | 0.01s |
| Kill sidecar: backlog preserved, no data loss | 50 requests queued, drained on recovery | 0.00s |
| 100 concurrent writers | 100K writes, 0 duplicates, 0 missing | 0.13s |
| OLAP scan during OLTP | 0 HotSet evictions, OLTP p99 unaffected | 0.15s |
| Total | 7 passed / 0 failed | 10.91s |
Test Suite
Methodology
- -All numbers measured on AWS c6id.4xlarge (Intel Xeon Platinum 8375C, 16 vCPU, 32 GiB RAM, 884 GB NVMe), Ubuntu 24.04.
- -All builds use
cargo build --release. Debug builds are never published. - -Random-vector HNSW benchmarks are not reported. SIFT-1M only.
- -Full reproduction guide and raw provenance JSON: BENCHMARKS.md