KalamDB Benchmark Report

Performance analysis — v0.4.3-rc.4
http://127.0.0.1:2900 2026-05-05T14:50:41.736143+00:00 100 iters 5 warmup 10 concurrency 100.0K max subs
38
Total Benchmarks
38
Passed
0
Failed
Verdict Mix
33Excellent
4Acceptable
1Slow
successful benchmarks only
Compared To Previous
1Faster
29Same
8Slower
against 2026-04-29T19:14:33.905313+00:00
237.663s
Measured Benchmark Time
271.290s
Wall Clock Duration
System Information
Hostname
Jamals-MacBook-Pro.local
Machine Model
MacBookPro18,3
CPU Model
Apple M1 Pro
CPU Cores
10 logical / 10 physical
Total Memory
16.00 GiB
Available Memory
10.74 GiB
Used Memory
5.26 GiB
Memory Usage
32.9%
OS
Darwin macOS 26.5
Kernel
25.5.0
Architecture
aarch64

Latency by Operation (µs)

Throughput (ops/sec)

Avg Latency by Category (µs)

Detailed Results
Status Benchmark Category Description Iters Mean P50 P95 P99 Min Max Ops/sec Total Verdict vs Prev
PASScreate_tableDDL
CREATE TABLE with 3 columns
100402µs384µs508µs589µs351µs603µs2.5K40.2ms🟢 Excellent~ 406µs prior
PASSdrop_tableDDL
DROP TABLE on a previously created table
1004.73ms4.74ms5.81ms5.89ms3.34ms6.70ms212472.7ms🟢 Excellent~ 4619µs prior
PASSsingle_insertInsert
INSERT a single row into a table
100270µs269µs319µs416µs211µs451µs3.7K27.1ms🟢 Excellent~ 263µs prior
PASSbulk_insertInsert
One INSERT statement with 50 rows (statement-scoped transaction)
100986µs966µs1.16ms1.20ms827µs1.33ms1.0K98.6ms🟢 Excellent~ 992µs prior
PASStransaction_multi_insertInsert
Explicit BEGIN/COMMIT with 50 single-row INSERT statements
1003.16ms3.13ms3.60ms3.98ms2.82ms4.00ms316316.1ms🟡 Acceptable~ 3126µs prior
PASSselect_allSelect
SELECT * from a 200-row table
100796µs774µs889µs1.03ms753µs1.04ms1.3K79.6ms🟢 Excellent~ 782µs prior
PASSselect_by_filterSelect
SELECT with WHERE clause on a 200-row table
100405µs400µs497µs558µs321µs563µs2.5K40.5ms🟢 Excellent~ 397µs prior
PASSselect_countSelect
SELECT COUNT(*) on a 200-row table
100628µs616µs728µs750µs580µs813µs1.6K62.8ms🟢 Excellent↓3% slower
PASSselect_order_by_limitSelect
SELECT with ORDER BY + LIMIT 10 on a 200-row table
100809µs794µs947µs1.12ms761µs1.15ms1.2K80.9ms🟢 Excellent~ 831µs prior
PASSsingle_updateUpdate
UPDATE a single row by filter condition
100907µs889µs1.09ms1.25ms818µs1.32ms1.1K90.7ms🟢 Excellent↓4% slower
PASSsingle_deleteDelete
DELETE a single row by filter condition
1001.32ms1.30ms1.53ms1.63ms1.21ms1.68ms756132.3ms🟢 Excellent↓5% slower
PASSconcurrent_insertConcurrent
N concurrent INSERT operations in parallel (N = concurrency setting)
1001.37ms1.28ms1.68ms1.91ms1.13ms4.86ms729137.1ms🟢 Excellent~ 1344µs prior
PASSconcurrent_selectConcurrent
N concurrent SELECT operations in parallel (N = concurrency setting)
1001.20ms1.21ms1.39ms1.43ms885µs1.47ms833120.0ms🟢 Excellent↓4% slower
PASSpoint_lookupSelect
SELECT by primary key from a 10K-row table (single row lookup)
Baselinephase-0 performanceQuery Classprimary-key lookupDataset10000 seeded rowsQuery ShapeSELECT * FROM <ns>.point_lookup WHERE id = ?
100392µs394µs452µs514µs322µs536µs2.5K39.2ms🟢 Excellent~ 386µs prior
PASSaggregate_querySelect
GROUP BY + SUM/AVG/COUNT on a 10K-row table (analytical query performance)
10028.3ms28.2ms29.8ms31.1ms27.0ms31.7ms352.835s🔴 Slow↓3% slower
PASSmulti_table_joinSelect
SELECT with subquery across two tables (200 customers, 1000 orders)
1003.14ms3.10ms3.45ms3.72ms3.01ms3.83ms318314.3ms🟢 Excellent~ 3076µs prior
PASSlarge_payload_insertInsert
INSERT rows with ~4KB TEXT payloads (serialization + storage throughput)
1001.66ms1.65ms1.88ms2.05ms1.46ms2.14ms604165.7ms🟢 Excellent~ 1656µs prior
PASSwide_column_insertInsert
INSERT into a 20-column table (wide schema overhead)
100919µs890µs1.08ms1.24ms818µs1.26ms1.1K91.9ms🟢 Excellent~ 903µs prior
PASSbulk_deleteDelete
DELETE 100 rows at once with a range filter (bulk deletion)
10069.1ms69.3ms75.5ms76.8ms61.2ms80.5ms146.905s🟡 Acceptable~ 67553µs prior
PASSsequential_crudDML
INSERT → UPDATE → SELECT → DELETE full DML lifecycle per iteration
1002.28ms2.21ms2.72ms3.24ms1.57ms10.3ms439228.0ms🟢 Excellent↓6% slower
PASSalter_tableDDL
ALTER TABLE ADD COLUMN + DROP COLUMN (schema evolution latency)
1001.23ms1.14ms1.59ms2.32ms1.07ms2.45ms812123.2ms🟢 Excellent↓3% slower
PASSconcurrent_updateConcurrent
N concurrent UPDATE operations on the same table (write contention test)
1003.24ms3.21ms4.29ms5.14ms2.12ms5.47ms309324.0ms🟢 Excellent↑4% faster
PASSconcurrent_mixed_dmlConcurrent
Concurrent INSERT + UPDATE + DELETE on the same table (multi-op contention)
1003.27ms3.26ms4.07ms4.39ms2.31ms4.65ms306326.8ms🟢 Excellent~ 3244µs prior
PASSnamespace_isolationConcurrent
Concurrent queries across 5 different namespaces (isolation test)
1001.82ms1.81ms2.12ms2.23ms1.51ms2.41ms551181.7ms🟢 Excellent~ 1822µs prior
PASSsubscribe_initial_loadSubscribe
Subscribe to a 1000-row user table and receive the full initial data batch
1006.41ms6.33ms6.73ms7.12ms6.25ms7.52ms156640.6ms🟢 Excellent~ 6326µs prior
PASSsubscribe_change_latencySubscribe
Latency from INSERT to subscriber receiving the change notification
10051.9ms50.6ms60.2ms75.0ms46.2ms76.1ms195.188s🟡 Acceptable~ 51379µs prior
PASSreconnect_subscribeSubscribe
Disconnect and re-subscribe to a user table (reconnection overhead)
10010.1ms10.3ms11.1ms11.2ms8.82ms11.4ms991.005s🟢 Excellent~ 10342µs prior
PASSflushed_parquet_queryStorage
SELECT from a shared table with 20 flushed Parquet files (200K rows)
100153.2ms184.6ms246.6ms255.1ms24.2ms257.8ms715.325s🟡 Acceptable~ 152145µs prior
PASSconcurrent_subscribersLoad
N WebSocket live-query subscribers receiving changes from concurrent writes
1001.555s1.555s1.577s1.580s1.524s1.622s12.59m🟢 Excellent~ 1556231µs prior
PASSconcurrent_publishersLoad
N concurrent INSERTs into a topic-sourced table (measures publish overhead)
1001.46ms1.41ms1.81ms1.90ms1.26ms2.07ms683146.5ms🟢 Excellent~ 1491µs prior
PASSconcurrent_consumersLoad
N concurrent topic CONSUME calls pulling messages in parallel
100614µs610µs688µs714µs530µs734µs1.6K61.4ms🟢 Excellent~ 618µs prior
PASSsql_1k_concurrentLoad
1000 concurrent SQL SELECT queries at once (RPS degradation test)
Baselinephase-0 performanceQuery Classconcurrent read burstDataset500 seeded rowsBurst1000 concurrent SQL queriesQuery Mixpk lookup, count, selective order-by limit, narrow projection
100152.3ms151.5ms158.0ms161.5ms145.5ms173.2ms715.229s🟢 Excellent~ 152325µs prior
PASScreate_userLoad
CREATE USER (auth subsystem stress test)
1001.24ms1.21ms1.39ms1.51ms1.16ms1.55ms808123.7ms🟢 Excellent~ 1220µs prior
PASSdrop_userLoad
DROP USER (auth subsystem teardown stress test)
100278µs252µs368µs431µs230µs544µs3.6K27.8ms🟢 Excellent~ 273µs prior
PASSconnection_stormLoad
N simultaneous login + SQL + cycles (connection setup overhead)
100275.4ms274.3ms285.0ms300.6ms266.0ms317.7ms427.541s🟢 Excellent~ 275462µs prior
PASSmixed_read_writeLoad
50/50 concurrent reads + writes on same table (contention test)
Baselinephase-0 performanceQuery Classmixed concurrent read/writeDataset200 seeded rowsMix5 reads / 5 writesRead Shapesrange filter, count-star, order-by desc limit
1002.22ms2.20ms2.83ms3.75ms1.45ms5.77ms451221.7ms🟢 Excellent↓5% slower
PASSwide_fanout_queryLoad
N concurrent large-result-set SELECTs (serialization + memory pressure)
1005.95ms5.92ms6.48ms7.13ms5.33ms7.89ms168595.2ms🟢 Excellent~ 5991µs prior
PASSsubscriber_scaleScale
Progressive live-query subscriber scale and insert fanout verification up to 100.0K
Max100.0KTiers10 checkpoints to 100.0KBatch/Wave1.0K / 500Pause/Timeout0ms / 30.0sShared WS1.0K conns @ 100 subs/ws across 1 targetDelivery Checksall tiers to 10.0K + 25.0K/50.0K/100.0K
12.840s2.840s2.840s2.840s2.840s2.840s02.840s🟢 Excellent~ 2855095µs prior
Whole Bench Totals237.663sWall clock 271.290s