Ktema SystemsDemo CenterMeasurementsEnquiry Demo

Measurements

Ktema

The engine measured on one host at 1,000, 10,000 and 100,000 records. Each volume is built once; every number is the median of 51 samples. These are the format's own costs, not a comparison against a database; the note below says which workload each is the right tool for.

Bytes written per recordThe format's per-record write cost is flat across two orders of magnitude.
bytes01252503755001k10k100k
Volume sizeThe log grows linearly with the records, as a log does.
MB0.0132538501k10k100k
OpenThe engine over the log as it stands. The growth is hydration, not an index rebuild.
µs0.0501001502001k10k100k
Point readOne framing read, which is what a replay pays per record.
µs0.001.252.503.755.001k10k100k
Box queryA box over a tenth of an axis, answering 101, 1,001, 10,008 records. This is the scan path; the structural index is not enabled in this build.
ms0.111010010001k10k100k

Where this engine fits

Ktema is a record engine for an append-only, addressable history, not a general-purpose database. The format's per-record write cost is flat, and the structural index is constant in record count. Mount and hydration are linear: opening a volume walks the log and the host build keeps the record maps it hydrates. The total memory is therefore not constant, and this page does not claim it is. What stays constant is the index, not the engine's whole working set.

KtemaA relational database
PurposeAn addressable history of what happenedRows a program queries and changes
WriteFlat per record: 482 to 484 bytesRow plus index maintenance
IndexConstant in record count, linear in distinct axis valuesGrows with rows
MountLinear in the log, because the record maps hydrateFast, because the index is already on disk
HostA service, or no OS at all on the device tierAn OS and a filesystem
QueryAddressed reads and bounded boxesSQL, joins, ad-hoc predicates
Right tool whenThe history is the product and the host is constrainedThe data is mutable and the questions are open

benches/run.sh 1000 10000 100000 · commit 19be5aa · 2026-11-06 · median of 51 samples. The host's seconds and the medium's bytes answer different questions; each chart carries one unit.