MultiverseSocial · /dev/tachyondb

TachyonDB status

Production-ready embedded + networked store: PBKDF2 auth, a checksummed write-ahead journal, real transactions, a single-process select() event loop, EXT ops and ORDER_BY. Benches below are fair, apples-to-apples against SQLite 3.46.1 — matched transport and durability, real runs only, whoever wins.

in-process TacyonMem wire tachyond · select() loop ChannelVault sticky · /pod/<user>/sticky

Capabilities

On-command probe

Click tachyondb_status.cgi for a live TCP probe of 127.0.0.1:7447 (override with Apache env TACHYON_HOST/TACHYON_PORT) and the in-process shm arena under /dev/shm.

This static page does not invent a “running” state. If the CGI reports no listener, start tachyond on the host first.

Fair benchmarks vs SQLite 3.46.1

Every row is labelled with transport and durability, and compares like with like. The networked rows use the identical client, wire framing, loopback and workload against both tachyond and a minimal single-process select() TCP server that wraps SQLite and speaks the same protocol — so only the engine differs. The in-process rows compare TacyonMem (engine linked in, arena in /dev/shm) with SQLite :memory:, both volatile. Keyed KV workload (put/get), 64-bit Linux build. All numbers are from real runs on one host; treat absolutes as representative, not a production SLA.

1 · In-process (no TCP) — volatile, single thread

SizeOpTacyonMem (ops/s)SQLite :memory: (ops/s)
16 BPUT4,427,654605,082
16 BGET5,025,6461,412,442
64 BPUT2,719,735346,596
64 BGET4,216,343952,603
4 KiBPUT243,682139,967
4 KiBGET948,093589,542
64 KiBPUT18,04017,522
64 KiBGET116,064130,233
1 MiBPUT1,021761
1 MiBGET6,8248,890

Small records favour TacyonMem (~3–7×); 64 KiB–1 MiB are memcpy-bound and roughly even.

2 · Networked, loopback TCP — durable, 1 client

Tachyon fsync=always vs SQLite synchronous=FULL + WAL.

SizeOpTachyon fsync=always (ops/s)SQLite FULL+WAL (ops/s)
16 BPUT1,5282,471
16 BGET3,58247,584
64 BPUT1,4011,189
64 BGET4,24044,188
4 KiBPUT1,4211,099
4 KiBGET3,85825,620
64 KiBPUT740711
64 KiBGET5,31213,768
1 MiBPUT178158
1 MiBGET1,7541,255

Durable writes are close and fsync-bound on both. Durable reads are SQLite's win here: its WAL lets readers proceed, while Tachyon's current single-thread journal/snapshot maintenance stalls the loop (p50 stays ~18–40 µs but the tail drags throughput). Noted as a known limitation.

3 · Networked, loopback TCP — volatile, 1 client

Tachyon fsync=off vs SQLite :memory:.

SizeOpTachyon fsync=off (ops/s)SQLite :memory: (ops/s)
16 BPUT46,42845,912
16 BGET60,26347,963
64 BPUT59,53445,877
64 BGET61,13544,210
4 KiBPUT48,90431,155
4 KiBGET51,07543,484
64 KiBPUT10,5479,189
64 KiBGET24,51520,433
1 MiBPUT896643
1 MiBGET2,4841,971

Non-durable over TCP: Tachyon leads at every size tested.

4 · Networked, loopback TCP — volatile, 128 clients

Tachyon fsync=off vs SQLite :memory:, 128 concurrent clients on the one select() loop.

SizeOpTachyon fsync=off (ops/s)SQLite :memory: (ops/s)
16 BPUT103,105114,657
16 BGET153,419127,312
64 BPUT157,266108,917
64 BGET172,593142,858
4 KiBPUT94,09071,231
4 KiBGET115,83499,049
64 KiBPUT16,97315,642
64 KiBGET34,50822,052
1 MiBPUT507494
1 MiBGET1,5141,253

5 · Networked, loopback TCP — durable, 128 clients

Tachyon fsync=always vs SQLite synchronous=FULL + WAL, 128 clients.

SizeOpTachyon fsync=always (ops/s)SQLite FULL+WAL (ops/s)
16 BPUT1,6822,754
16 BGET4,769122,724
64 BPUT1,7391,424
64 BGET4,087119,256
4 KiBPUT1,3721,179
4 KiBGET4,17634,040
64 KiBPUT927698
64 KiBGET5,25214,235
1 MiBPUT172136
1 MiBGET4011,056

How to read

ChannelVault sticky store

Operator — reproduce the fair benches

# Build (64-bit Linux, no libc) and run the full C test suite
cd /workspace/tachyon && bash build_linux.sh && bash tests/run_all.sh

# Fair, labelled benchmarks (networked + in-process, matched durability)
#   needs the SQLite 3.46.1 amalgamation in SQLITE_DIR
SQLITE_DIR=/path/to/sqlite-amalgamation-3460100 bash bench/run_fair.sh

Updated 2026-10-09 · Fair apples-to-apples benches vs SQLite 3.46.1 (matched transport + durability) · No invented numbers

Hits--