KalamDB Benchmark Report

Performance analysis — v0.4.2-rc1
http://127.0.0.1:8080 2026-04-11T16:19:37.175014+00:00 100 iters 5 warmup 10 concurrency
38
Total Benchmarks
38
Passed
0
Failed
298.54s
Total Duration
System Information
Hostname
MacBookPro.home
Machine Model
MacBookPro18,3
CPU Model
Apple M1 Pro
CPU Cores
10 logical / 10 physical
Total Memory
16.00 GiB
Available Memory
6.31 GiB
Used Memory
9.69 GiB
Memory Usage
60.6%
OS
Darwin macOS 26.4
Kernel
25.4.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_tableDDLCREATE TABLE with 3 columns10036.5ms35.1ms57.4ms59.2ms11.3ms63.3ms273.65s🟢 Excellent↑5% faster
PASSdrop_tableDDLDROP TABLE on a previously created table100101.8ms105.8ms171.1ms177.7ms25.6ms238.3ms1010.18s🟡 Acceptable↑6% faster
PASSsingle_insertInsertINSERT a single row into a table100440µs382µs669µs712µs321µs814µs2.3K44.0ms🟢 Excellent↑6% faster
PASSbulk_insertInsertOne INSERT statement with 50 rows (statement-scoped transaction)1001.4ms1.4ms1.6ms1.7ms1.2ms2.0ms725137.8ms🟢 Excellent↓26% slower
PASStransaction_multi_insertInsertExplicit BEGIN/COMMIT with 50 single-row INSERT statements1003.0ms3.0ms3.4ms3.7ms2.7ms3.7ms329303.9ms🟡 Acceptable
PASSselect_allSelectSELECT * from a 200-row table100804µs794µs895µs1.0ms758µs1.0ms1.2K80.4ms🟢 Excellent↑51% faster
PASSselect_by_filterSelectSELECT with WHERE clause on a 200-row table100448µs437µs534µs630µs365µs723µs2.2K44.8ms🟢 Excellent↑37% faster
PASSselect_countSelectSELECT COUNT(*) on a 200-row table100632µs614µs753µs831µs586µs898µs1.6K63.2ms🟢 Excellent↑51% faster
PASSselect_order_by_limitSelectSELECT with ORDER BY + LIMIT 10 on a 200-row table100827µs811µs978µs1.0ms778µs1.0ms1.2K82.7ms🟢 Excellent↑46% faster
PASSsingle_updateUpdateUPDATE a single row by filter condition100453µs448µs625µs659µs389µs675µs2.2K45.3ms🟢 Excellent↑55% faster
PASSsingle_deleteDeleteDELETE a single row by filter condition100396µs398µs498µs581µs330µs658µs2.5K39.6ms🟢 Excellent↑53% faster
PASSconcurrent_insertConcurrentN concurrent INSERT operations in parallel (N = concurrency setting)1001.2ms1.3ms1.4ms1.5ms901µs3.1ms805124.2ms🟢 Excellent↑43% faster
PASSconcurrent_selectConcurrentN concurrent SELECT operations in parallel (N = concurrency setting)1001.3ms1.3ms1.5ms1.6ms955µs1.7ms773129.4ms🟢 Excellent↑18% faster
PASSpoint_lookupSelectSELECT by primary key from a 10K-row table (single row lookup)100435µs426µs513µs550µs358µs560µs2.3K43.5ms🟢 Excellent↑37% faster
PASSaggregate_querySelectGROUP BY + SUM/AVG/COUNT on a 10K-row table (analytical query performance)10028.6ms28.2ms33.7ms36.1ms26.7ms36.9ms352.86s🔴 Slow↑30% faster
PASSmulti_table_joinSelectSELECT with subquery across two tables (200 customers, 1000 orders)1002.9ms2.9ms3.2ms3.3ms2.7ms3.5ms345289.8ms🟢 Excellent↑38% faster
PASSlarge_payload_insertInsertINSERT rows with ~4KB TEXT payloads (serialization + storage throughput)1001.3ms1.2ms1.4ms1.7ms1.1ms4.0ms796125.6ms🟢 Excellent↑43% faster
PASSwide_column_insertInsertINSERT into a 20-column table (wide schema overhead)1001.8ms1.7ms2.1ms4.3ms1.6ms7.2ms544183.8ms🟢 Excellent↓73% slower
PASSbulk_deleteDeleteDELETE 100 rows at once with a range filter (bulk deletion)100139.4ms136.5ms163.9ms207.9ms115.4ms281.5ms713.94s🟡 Acceptable↑24% faster
PASSsequential_crudDMLINSERT → UPDATE → SELECT → DELETE full DML lifecycle per iteration1002.2ms2.1ms3.0ms3.5ms1.7ms6.5ms451221.8ms🟢 Excellent↑26% faster
PASSalter_tableDDLALTER TABLE ADD COLUMN + DROP COLUMN (schema evolution latency)1001.4ms1.3ms1.8ms2.5ms1.1ms5.2ms696143.7ms🟢 Excellent↑55% faster
PASSconcurrent_updateConcurrentN concurrent UPDATE operations on the same table (write contention test)1001.7ms1.6ms1.9ms2.1ms1.4ms2.2ms605165.4ms🟢 Excellent↑60% faster
PASSconcurrent_mixed_dmlConcurrentConcurrent INSERT + UPDATE + DELETE on the same table (multi-op contention)1003.0ms3.0ms3.7ms4.2ms2.2ms5.9ms330303.0ms🟢 Excellent↑37% faster
PASSnamespace_isolationConcurrentConcurrent queries across 5 different namespaces (isolation test)1001.9ms1.8ms2.2ms3.1ms1.5ms3.1ms533187.5ms🟢 Excellent↑57% faster
PASSsubscribe_initial_loadSubscribeSubscribe to a 1000-row user table and receive the full initial data batch1007.4ms7.2ms8.7ms13.8ms6.7ms14.8ms135742.9ms🟢 Excellent↑33% faster
PASSsubscribe_change_latencySubscribeLatency from INSERT to subscriber receiving the change notification10050.7ms50.5ms56.1ms59.2ms40.8ms62.3ms205.07s🟡 Acceptable↑99% faster
PASSreconnect_subscribeSubscribeDisconnect and re-subscribe to a user table (reconnection overhead)10010.1ms10.3ms10.8ms11.6ms8.3ms11.7ms991.01s🟢 Excellent↑16% faster
PASSflushed_parquet_queryStorageSELECT from a shared table with 20 flushed Parquet files (200K rows)100150.4ms173.6ms246.1ms261.7ms37.7ms282.7ms715.04s🟡 Acceptable↑42% faster
PASSconcurrent_subscribersLoadN WebSocket live-query subscribers receiving changes from concurrent writes1001.56s1.57s1.59s1.60s1.53s1.60s1156.39s🟢 Excellent~ 1577599µs prior
PASSconcurrent_publishersLoadN concurrent INSERTs into a topic-sourced table (measures publish overhead)1001.3ms1.3ms1.7ms2.2ms956µs2.8ms744134.4ms🟢 Excellent↑38% faster
PASSconcurrent_consumersLoadN concurrent topic CONSUME calls pulling messages in parallel100644µs643µs696µs730µs563µs814µs1.6K64.4ms🟢 Excellent↓4% slower
PASSsql_1k_concurrentLoad1000 concurrent SQL SELECT queries at once (RPS degradation test)100164.7ms162.2ms180.2ms194.1ms153.5ms214.9ms616.47s🟢 Excellent↑62% faster
PASScreate_userLoadCREATE USER (auth subsystem stress test)1001.2ms1.2ms1.3ms1.4ms1.2ms1.5ms822121.6ms🟢 Excellent↑35% faster
PASSdrop_userLoadDROP USER (auth subsystem teardown stress test)100296µs283µs395µs493µs239µs548µs3.4K29.6ms🟢 Excellent↑46% faster
PASSconnection_stormLoadN simultaneous login + SQL + cycles (connection setup overhead)100303.5ms291.6ms345.6ms506.8ms270.1ms631.0ms330.35s🟢 Excellent↓4811% slower
PASSmixed_read_writeLoad50/50 concurrent reads + writes on same table (contention test)1002.7ms2.6ms3.7ms6.0ms1.9ms6.1ms366273.3ms🟢 Excellent↑29% faster
PASSwide_fanout_queryLoadN concurrent large-result-set SELECTs (serialization + memory pressure)1006.3ms6.1ms7.5ms9.0ms5.6ms12.1ms158632.8ms🟢 Excellent↑67% faster
PASSsubscriber_scaleScaleProgressive subscriber scale test (up to --max-subscribers, default 100K)138.82s38.82s38.82s38.82s38.82s38.82s038.82s🟢 Excellent↓275% slower