OxiDB の中核をなすドキュメントエンジン。MongoDB スタイルのクエリとアグリゲーション、インデックスとプランナー、ディスクファーストのストレージ、WAL、OCC トランザクション、読み取りスナップショットを、実際のサーバーで動かした例とともに解説します。
$ ls tags/oxidb
#oxidb
12 件の記事
OxiDB の検索レイヤー:BM25 ランキング、18 言語の Snowball ステミングとトルコ語の例、ハイライト付きスニペット、PDF/DOCX/XLSX 内の検索、mmap される転置インデックス、HNSW による k-NN と実測の recall。
OxiDB のドキュメントエンジンに地理空間クエリとグラフステージを組み込んだ方法を、イスタンブールの実在の場所と小さな航空路線網で紹介します。寛大だが決して間違えない geohash インデックス、BFS、遅延ダイクストラ法。
OxiDB のドキュメントエンジンの隣に、独自の WAL とファイルを持つ SQL エンジンを追加しました。強制される制約、CTE、ウィンドウ関数、Cobra バイトコードのストアドプロシージャ、無改造の psql/psycopg と EF Core に対応します。
OxiDBの時系列エンジンoxidb-tsdbを徹底解説します。ビット単位のGorilla圧縮、型付きフィールド、ラインプロトコル、集約、ウォーターマーク付きの継続的ロールアップ、ロックの少ないバックアップ、そして自作センサーデータで測った実際の圧縮率です。
OxiDBにRESPを話すキーバリュー層を組み込みました。5つのデータ型、TTL、pub/sub、WATCH、Lua、スナップショット。redis-cliとredis-pyでの実際のセッション、Redis 8.6との比較測定、そして正直な限界を紹介します。
OxiDB の S3 レイヤーを紹介します。マルチパート、range 読み取りと条件付き読み取り、SSE-S3/SSE-C、SigV4 と presigned URL、ライフサイクル、blob のディスク上の配置、アップロードしたファイル内の全文検索。すべて実際のセッションで示します。
OxiDB に内蔵された MQTT 3.1.1 と AMQP 0-9-1 ブローカー。誠実な QoS 1/2、kill -9 を生き延びるセッションと永続キュー、MQTT からコレクションへのインジェスト、センサーの MQTT パブリッシュを消費する AMQP ワーカーを紹介します。
OxiDB のログエンジン:UDP 経由の GELF と MessagePack の受信、チャンク再構成、フィールドごとの動的インデックス、コレクション単位の保持期間、webhook 付きしきい値アラート、oxidb-tail。実際のパケットで検証し、見つかった欠陥も含めて紹介します。
取引所のジャーナル向けに書いた oxidb-ledger crate を紹介します。40 バイトの固定レコード、エンジンが割り当てるシーケンス、mmap されたセグメント、ファイル削除によるリテンション、ストリームごとの fsync。実測値と見つけた 2 つのバグも載せています。
OxiDB の 4 番目のエンジン oxidb-rec は、バスケットを届いた瞬間にカウンターに変え、「これを買った人はこれも買った」を Dunning の LLR でスコアリングします。時間バケット、LLR の手計算、ディスクレイアウト、1.2 万件の注文での実験。
このブログを自作のツールでどう構築したかを手短に紹介します。Rill で書いたサーバー、4つのエンジンを持つ OxiDB データベース、そして zap インターフェースです。










