KalamDB Benchmark Report

Performance analysis — v0.4.3-rc.4
http://127.0.0.1:8080 2026-04-29T19:14:33.905989+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
33Faster
3Same
2Slower
against 2026-04-26T18:40:14.806927+00:00
237.400s
Measured Benchmark Time
270.288s
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
11.64 GiB
Used Memory
4.36 GiB
Memory Usage
27.3%
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
100406µs382µs514µs611µs347µs691µs2.5K40.6ms🟢 Excellent↑24% faster
PASSdrop_tableDDL
DROP TABLE on a previously created table
1004.62ms4.59ms5.71ms5.74ms3.34ms5.75ms216461.9ms🟢 Excellent↓8% slower
PASSsingle_insertInsert
INSERT a single row into a table
100263µs268µs313µs375µs211µs375µs3.8K26.3ms🟢 Excellent↑32% faster
PASSbulk_insertInsert
One INSERT statement with 50 rows (statement-scoped transaction)
100992µs974µs1.16ms1.24ms801µs1.41ms1.0K99.2ms🟢 Excellent↑23% faster
PASStransaction_multi_insertInsert
Explicit BEGIN/COMMIT with 50 single-row INSERT statements
1003.13ms3.06ms3.59ms3.90ms2.80ms3.92ms320312.6ms🟡 Acceptable↑26% faster
PASSselect_allSelect
SELECT * from a 200-row table
100782µs776µs848µs876µs747µs881µs1.3K78.2ms🟢 Excellent↑49% faster
PASSselect_by_filterSelect
SELECT with WHERE clause on a 200-row table
100397µs388µs470µs505µs312µs521µs2.5K39.7ms🟢 Excellent↑39% faster
PASSselect_countSelect
SELECT COUNT(*) on a 200-row table
100608µs602µs663µs690µs576µs762µs1.6K60.8ms🟢 Excellent↑39% faster
PASSselect_order_by_limitSelect
SELECT with ORDER BY + LIMIT 10 on a 200-row table
100831µs809µs992µs1.02ms762µs1.05ms1.2K83.1ms🟢 Excellent↑32% faster
PASSsingle_updateUpdate
UPDATE a single row by filter condition
100869µs873µs985µs1.06ms764µs1.07ms1.2K86.9ms🟢 Excellent↑44% faster
PASSsingle_deleteDelete
DELETE a single row by filter condition
1001.27ms1.25ms1.35ms1.49ms1.19ms1.61ms790126.5ms🟢 Excellent↑40% faster
PASSconcurrent_insertConcurrent
N concurrent INSERT operations in parallel (N = concurrency setting)
1001.34ms1.26ms1.58ms1.77ms1.14ms4.74ms744134.4ms🟢 Excellent↑21% faster
PASSconcurrent_selectConcurrent
N concurrent SELECT operations in parallel (N = concurrency setting)
1001.16ms1.20ms1.33ms1.43ms783µs1.46ms866115.5ms🟢 Excellent↑17% faster
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 = ?
100386µs380µs448µs502µs324µs520µs2.6K38.6ms🟢 Excellent↑35% faster
PASSaggregate_querySelect
GROUP BY + SUM/AVG/COUNT on a 10K-row table (analytical query performance)
10027.5ms27.6ms28.2ms29.1ms26.6ms29.3ms362.752s🔴 Slow↑21% faster
PASSmulti_table_joinSelect
SELECT with subquery across two tables (200 customers, 1000 orders)
1003.08ms3.06ms3.19ms3.35ms2.97ms3.63ms325307.6ms🟢 Excellent↑31% faster
PASSlarge_payload_insertInsert
INSERT rows with ~4KB TEXT payloads (serialization + storage throughput)
1001.66ms1.64ms1.88ms1.94ms1.46ms2.10ms604165.6ms🟢 Excellent↑20% faster
PASSwide_column_insertInsert
INSERT into a 20-column table (wide schema overhead)
100903µs880µs1.02ms1.07ms833µs1.08ms1.1K90.3ms🟢 Excellent↑22% faster
PASSbulk_deleteDelete
DELETE 100 rows at once with a range filter (bulk deletion)
10067.6ms66.9ms74.3ms75.3ms59.2ms85.5ms156.755s🟡 Acceptable↑17% faster
PASSsequential_crudDML
INSERT → UPDATE → SELECT → DELETE full DML lifecycle per iteration
1002.16ms2.01ms2.50ms3.88ms1.51ms9.38ms463215.9ms🟢 Excellent↑41% faster
PASSalter_tableDDL
ALTER TABLE ADD COLUMN + DROP COLUMN (schema evolution latency)
1001.19ms1.11ms1.56ms1.79ms1.04ms2.57ms839119.3ms🟢 Excellent↑39% faster
PASSconcurrent_updateConcurrent
N concurrent UPDATE operations on the same table (write contention test)
1003.37ms3.15ms4.38ms6.71ms2.11ms12.9ms297337.0ms🟢 Excellent↑21% faster
PASSconcurrent_mixed_dmlConcurrent
Concurrent INSERT + UPDATE + DELETE on the same table (multi-op contention)
1003.24ms3.18ms4.01ms4.34ms2.21ms7.30ms308324.4ms🟢 Excellent↑22% faster
PASSnamespace_isolationConcurrent
Concurrent queries across 5 different namespaces (isolation test)
1001.82ms1.82ms2.02ms2.19ms1.50ms2.36ms549182.2ms🟢 Excellent↑34% faster
PASSsubscribe_initial_loadSubscribe
Subscribe to a 1000-row user table and receive the full initial data batch
1006.33ms6.31ms6.41ms6.60ms6.26ms6.80ms158632.6ms🟢 Excellent↑28% faster
PASSsubscribe_change_latencySubscribe
Latency from INSERT to subscriber receiving the change notification
10051.4ms51.7ms54.1ms57.3ms42.5ms60.6ms195.138s🟡 Acceptable↓4% slower
PASSreconnect_subscribeSubscribe
Disconnect and re-subscribe to a user table (reconnection overhead)
10010.3ms10.5ms11.1ms11.2ms9.03ms11.2ms971.034s🟢 Excellent↑6% faster
PASSflushed_parquet_queryStorage
SELECT from a shared table with 20 flushed Parquet files (200K rows)
100152.1ms183.7ms244.8ms267.9ms23.9ms283.0ms715.215s🟡 Acceptable↑20% faster
PASSconcurrent_subscribersLoad
N WebSocket live-query subscribers receiving changes from concurrent writes
1001.556s1.556s1.583s1.585s1.520s1.591s12.59m🟢 Excellent~ 1567416µs prior
PASSconcurrent_publishersLoad
N concurrent INSERTs into a topic-sourced table (measures publish overhead)
1001.49ms1.43ms1.82ms1.94ms1.28ms2.51ms671149.1ms🟢 Excellent↑11% faster
PASSconcurrent_consumersLoad
N concurrent topic CONSUME calls pulling messages in parallel
100618µs619µs681µs706µs526µs781µs1.6K61.8ms🟢 Excellent↑7% faster
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.3ms152.1ms156.1ms157.6ms146.9ms159.6ms715.233s🟢 Excellent↑11% faster
PASScreate_userLoad
CREATE USER (auth subsystem stress test)
1001.22ms1.21ms1.34ms1.43ms1.16ms1.45ms819122.0ms🟢 Excellent↑12% faster
PASSdrop_userLoad
DROP USER (auth subsystem teardown stress test)
100273µs256µs363µs411µs233µs449µs3.7K27.3ms🟢 Excellent~ 280µs prior
PASSconnection_stormLoad
N simultaneous login + SQL + cycles (connection setup overhead)
100275.5ms272.5ms294.4ms320.4ms265.7ms320.6ms427.546s🟢 Excellent↑14% faster
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.11ms2.10ms2.61ms2.69ms1.37ms2.75ms475210.6ms🟢 Excellent↑13% faster
PASSwide_fanout_queryLoad
N concurrent large-result-set SELECTs (serialization + memory pressure)
1005.99ms5.86ms6.59ms8.62ms5.19ms9.16ms167599.1ms🟢 Excellent↑15% faster
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.855s2.855s2.855s2.855s2.855s2.855s02.855s🟢 Excellent~ 2836207µs prior
Whole Bench Totals237.400sWall clock 270.288s