The document engine at the core of OxiDB: MongoDB-style queries and aggregation, indexes and the planner, disk-first storage, the WAL, OCC transactions and read snapshots, with every example run against a real server.
$ ls tags/oxidb
#oxidb
12 posts
OxiDB's search layer: BM25 ranking, Snowball stemming in 18 languages with Turkish examples, highlighted snippets, searching inside PDF/DOCX/XLSX files, an mmap'd inverted index, k-NN with HNSW and measured recall.
How I built geospatial queries and graph stages into OxiDB's document engine, shown with real places in Istanbul and a small flight network: a geohash index that is generous but never wrong, BFS, and lazy Dijkstra.
I added a second engine to OxiDB next to the document engine, with its own WAL and files: enforced constraints, CTEs, window functions, stored procedures in Cobra bytecode, unmodified psql/psycopg and EF Core.
A deep dive into oxidb-tsdb, OxiDB's time series engine: Gorilla compression bit by bit, typed fields, line protocol, aggregations, continuous rollups with a watermark, low-lock backup and real compression ratios measured on my own sensor data.
I built a RESP-speaking key-value layer into OxiDB: five data types, TTLs, pub/sub, WATCH, Lua and snapshots. Real redis-cli and redis-py sessions, benchmarks against Redis 8.6, and the honest limits.
OxiDB's S3 layer: multipart, range and conditional reads, SSE-S3/SSE-C, SigV4 and presigned URLs, lifecycle expiry, how blobs sit on disk and full-text search inside uploaded files. All with real sessions.
The MQTT 3.1.1 and AMQP 0-9-1 brokers inside OxiDB: honest QoS 1/2, sessions and durable queues that survive kill -9, MQTT-to-collection ingest, and an AMQP worker consuming a sensor's MQTT publishes.
OxiDB's log engine: GELF and MessagePack ingestion over UDP, chunk reassembly, dynamic per-field indexing, per-collection retention, threshold alerts with webhooks, and oxidb-tail. Tested with real packets, defects included.
The oxidb-ledger crate I wrote for exchange journals: 40-byte fixed records, engine-assigned sequences, mmapped segments, retention by deleting files and per-stream fsync. With real measurements and two bugs I found.
oxidb-rec, OxiDB's fourth engine: it turns baskets into counters as they arrive and scores "customers who bought this also bought" with Dunning's LLR. Time buckets, LLR by hand, the on-disk layout and experiments with 12k orders on a real server.
A short look at how this blog is built with my own tools: a server written in Rill, the four-engine OxiDB database and the zap interface.










