| Status | Benchmark | Category | Description | Iters | Mean | P50 | P95 | P99 | Min | Max | Ops/sec | Total | Verdict | vs Prev |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PASS | create_table | DDL | CREATE TABLE with 3 columns | 100 | 51.0ms | 50.1ms | 77.6ms | 80.4ms | 24.1ms | 80.9ms | 20 | 5.10s | 🟢 Excellent | ↓36% slower |
| PASS | drop_table | DDL | DROP TABLE on a previously created table | 100 | 49.9ms | 49.8ms | 55.4ms | 56.2ms | 43.2ms | 57.0ms | 20 | 4.99s | 🟢 Excellent | ↓18% slower |
| PASS | single_insert | Insert | INSERT a single row into a table | 100 | 280µs | 268µs | 387µs | 426µs | 231µs | 475µs | 3.6K | 28.0ms | 🟢 Excellent | ↓16% slower |
| PASS | bulk_insert | Insert | INSERT 50 rows in a single statement | 100 | 649µs | 613µs | 832µs | 954µs | 560µs | 956µs | 1.5K | 64.9ms | 🟢 Excellent | ↓9% slower |
| PASS | select_all | Select | SELECT * from a 200-row table | 100 | 1.1ms | 1.1ms | 1.4ms | 1.6ms | 1.0ms | 1.8ms | 872 | 114.7ms | 🟢 Excellent | ↓8% slower |
| PASS | select_by_filter | Select | SELECT with WHERE clause on a 200-row table | 100 | 466µs | 434µs | 639µs | 686µs | 403µs | 718µs | 2.1K | 46.6ms | 🟢 Excellent | ↓7% slower |
| PASS | select_count | Select | SELECT COUNT(*) on a 200-row table | 100 | 867µs | 823µs | 1.1ms | 1.2ms | 791µs | 1.2ms | 1.2K | 86.7ms | 🟢 Excellent | ↓6% slower |
| PASS | select_order_by_limit | Select | SELECT with ORDER BY + LIMIT 10 on a 200-row table | 100 | 1.1ms | 1.1ms | 1.4ms | 1.6ms | 1.0ms | 1.7ms | 882 | 113.4ms | 🟢 Excellent | ↓8% slower |
| PASS | single_update | Update | UPDATE a single row by filter condition | 100 | 545µs | 492µs | 814µs | 932µs | 453µs | 947µs | 1.8K | 54.5ms | 🟢 Excellent | ↓13% slower |
| PASS | single_delete | Delete | DELETE a single row by filter condition | 100 | 441µs | 411µs | 565µs | 753µs | 380µs | 842µs | 2.3K | 44.1ms | 🟢 Excellent | ~ 452µs prior |
| PASS | concurrent_insert | Concurrent | N concurrent INSERT operations in parallel (N = concurrency setting) | 100 | 615µs | 596µs | 660µs | 881µs | 524µs | 1.9ms | 1.6K | 61.5ms | 🟢 Excellent | ~ 615µs prior |
| PASS | concurrent_select | Concurrent | N concurrent SELECT operations in parallel (N = concurrency setting) | 100 | 923µs | 916µs | 1.0ms | 1.1ms | 793µs | 1.4ms | 1.1K | 92.3ms | 🟢 Excellent | ↑5% faster |
| PASS | point_lookup | Select | SELECT by primary key from a 10K-row table (single row lookup) | 100 | 436µs | 414µs | 553µs | 576µs | 371µs | 596µs | 2.3K | 43.6ms | 🟢 Excellent | ↑9% faster |
| PASS | aggregate_query | Select | GROUP BY + SUM/AVG/COUNT on a 10K-row table (analytical query performance) | 100 | 37.8ms | 37.3ms | 40.0ms | 54.2ms | 34.8ms | 70.0ms | 26 | 3.78s | 🔴 Slow | ~ 36665µs prior |
| PASS | multi_table_join | Select | SELECT with subquery across two tables (200 customers, 1000 orders) | 100 | 4.0ms | 3.9ms | 4.6ms | 4.8ms | 3.7ms | 4.9ms | 251 | 399.0ms | 🟢 Excellent | ↓6% slower |
| PASS | large_payload_insert | Insert | INSERT rows with ~4KB TEXT payloads (serialization + storage throughput) | 100 | 893µs | 868µs | 1.1ms | 1.2ms | 810µs | 1.2ms | 1.1K | 89.3ms | 🟢 Excellent | ↓6% slower |
| PASS | wide_column_insert | Insert | INSERT into a 20-column table (wide schema overhead) | 100 | 639µs | 609µs | 803µs | 848µs | 566µs | 978µs | 1.6K | 63.9ms | 🟢 Excellent | ↓8% slower |
| PASS | bulk_delete | Delete | DELETE 100 rows at once with a range filter (bulk deletion) | 100 | 176.3ms | 173.8ms | 193.3ms | 194.2ms | 151.7ms | 194.9ms | 6 | 17.63s | 🟡 Acceptable | ↓4% slower |
| PASS | sequential_crud | DML | INSERT → UPDATE → SELECT → DELETE full DML lifecycle per iteration | 100 | 1.9ms | 1.8ms | 2.4ms | 2.8ms | 1.6ms | 3.0ms | 518 | 193.1ms | 🟢 Excellent | ~ 1907µs prior |
| PASS | alter_table | DDL | ALTER TABLE ADD COLUMN + DROP COLUMN (schema evolution latency) | 100 | 2.0ms | 1.8ms | 2.3ms | 2.8ms | 1.5ms | 14.5ms | 510 | 196.1ms | 🟢 Excellent | ↑3% faster |
| PASS | concurrent_update | Concurrent | N concurrent UPDATE operations on the same table (write contention test) | 100 | 2.1ms | 2.0ms | 2.8ms | 3.3ms | 1.1ms | 5.7ms | 487 | 205.4ms | 🟢 Excellent | ~ 2003µs prior |
| PASS | concurrent_mixed_dml | Concurrent | Concurrent INSERT + UPDATE + DELETE on the same table (multi-op contention) | 100 | 3.8ms | 3.8ms | 4.7ms | 4.8ms | 2.7ms | 4.9ms | 262 | 381.3ms | 🟢 Excellent | ↓9% slower |
| PASS | namespace_isolation | Concurrent | Concurrent queries across 5 different namespaces (isolation test) | 100 | 2.1ms | 2.1ms | 2.3ms | 2.7ms | 1.7ms | 3.0ms | 482 | 207.4ms | 🟢 Excellent | ↓6% slower |
| PASS | subscribe_initial_load | Subscribe | Subscribe to a 1000-row user table and receive the full initial data batch | 100 | 10.8ms | 10.5ms | 14.8ms | 15.6ms | 9.4ms | 15.7ms | 93 | 1.08s | 🟢 Excellent | ↓10% slower |
| PASS | subscribe_change_latency | Subscribe | Latency from INSERT to subscriber receiving the change notification | 100 | 5.02s | 5.02s | 5.03s | 5.04s | 5.01s | 5.05s | 0 | 501.81s | 🔴 Slow | ~ 5014269µs prior |
| PASS | reconnect_subscribe | Subscribe | Disconnect and re-subscribe to a user table (reconnection overhead) | 100 | 16.4ms | 15.9ms | 20.5ms | 22.4ms | 13.6ms | 22.6ms | 61 | 1.64s | 🟢 Excellent | ↓23% slower |
| FAIL | flushed_parquet_query Warmup failed: Expected >= 200000 rows, got 0 | Storage | SELECT from a shared table with 20 flushed Parquet files (200K rows) | 0 | 0µs | 0µs | 0µs | 0µs | 0µs | 0µs | 0 | 0µs | ⛔ Failed | — |
| PASS | concurrent_subscribers | Load | N WebSocket live-query subscribers receiving changes from concurrent writes | 100 | 1.52s | 1.52s | 1.53s | 1.54s | 1.50s | 1.54s | 1 | 152.16s | 🟢 Excellent | ~ 1510244µs prior |
| PASS | concurrent_publishers | Load | N concurrent INSERTs into a topic-sourced table (measures publish overhead) | 100 | 759µs | 756µs | 863µs | 929µs | 588µs | 961µs | 1.3K | 75.9ms | 🟢 Excellent | ↑4% faster |
| PASS | concurrent_consumers | Load | N concurrent topic CONSUME calls pulling messages in parallel | 100 | 628µs | 626µs | 689µs | 723µs | 552µs | 760µs | 1.6K | 62.8ms | 🟢 Excellent | ↓7% slower |
| PASS | sql_1k_concurrent | Load | 1000 concurrent SQL SELECT queries at once (RPS degradation test) | 100 | 261.7ms | 249.1ms | 325.4ms | 372.6ms | 226.5ms | 474.8ms | 4 | 26.17s | 🟢 Excellent | ↓24% slower |
| PASS | create_user | Load | CREATE USER (auth subsystem stress test) | 100 | 1.7ms | 1.7ms | 2.0ms | 2.2ms | 1.5ms | 2.3ms | 585 | 170.9ms | 🟢 Excellent | ↓6% slower |
| PASS | drop_user | Load | DROP USER (auth subsystem teardown stress test) | 100 | 523µs | 500µs | 753µs | 908µs | 311µs | 1.3ms | 1.9K | 52.3ms | 🟢 Excellent | ↓14% slower |
| PASS | connection_storm | Load | N simultaneous login + SQL + cycles (connection setup overhead) | 100 | 4.8ms | 4.6ms | 5.4ms | 11.3ms | 3.6ms | 19.8ms | 209 | 478.8ms | 🟢 Excellent | ↓7% slower |
| PASS | mixed_read_write | Load | 50/50 concurrent reads + writes on same table (contention test) | 100 | 3.0ms | 3.0ms | 4.0ms | 4.5ms | 1.7ms | 5.7ms | 330 | 302.8ms | 🟢 Excellent | ↓5% slower |
| PASS | wide_fanout_query | Load | N concurrent large-result-set SELECTs (serialization + memory pressure) | 100 | 12.6ms | 12.2ms | 14.5ms | 15.8ms | 10.3ms | 28.1ms | 79 | 1.26s | 🟢 Excellent | ↓34% slower |
| FAIL | subscriber_scale Iteration 0 failed: Single WS target (ws://localhost:8080/v1/ws) is likely capped by local ephemeral ports near ~32K. Use --urls with multiple endpoints (example: --urls http://127.0.0.1:8080,http://127.0.0.2:8080,http://127.0.0.3:8080,http://127.0.0.4:8080), or set KALAMDB_ALLOW_SINGLE_WS_TARGET=1 to force this run. | Scale | Progressive subscriber scale test (up to --max-subscribers, default 100K) | 0 | 0µs | 0µs | 0µs | 0µs | 0µs | 0µs | 0 | 0µs | ⛔ Failed | — |