💭

TsurugiDBの開発コードネーム

2021/12/08に公開

AsakusaFW & Tsurugi Advent Calendar 2021の8日目です。

次世代OLTPデータベースとして絶賛開発中のTsurugiですが、そのコンポーネントには地名に由来するコードネームが冠されたものが多くあります。今回はそのコードネームを紹介します。
下記リストはDB全体から見るとまだ一部ですが、こういった機能を開発しているという雰囲気を感じてもらえればと思います。

tsurugi -

プロジェクト名でありデータベース本体の名前です。剱岳はかつては修験者が修行のために登った険しい山だとか。

ogawayama - 小川山

tsurugiはPostgreSQLをフロントに持ちます。そのPostgreSQLとインターフェースするコンポーネントです。tateyama/jogasakiと通信してPostgreSQL経由のリクエストを処理します。
小川山は日本のクライミングの聖地だそうです。

tateyama - 立山

tsurugiのサーバーアプリケーション基盤です。この基盤上でSQL実行エンジン(jogasaki)やバルクローダーなどのサーバーアプリケーションが稼働し、tsurugiのサーバーを構成します。立山は劔岳のお隣の山です。

jogasaki - 城ヶ崎

SQL実行エンジンです。SQLコンパイラ(mizugaki/yugawara/takatori)によって内部表現に変換されたSQLを効率良く実行し結果をtsubakuroやogawayamaなど呼出側へ戻します。城ヶ崎は伊豆にある日本を代表する岩場です。

tsubakuro -

Javaベースの低レベルAPIをクライアントへ提供するコンポーネントです。IPCによって大量のデータを効率的にサーバープロセス(tateyama)と交換する仕組みを提供します。燕は北アルプスの山です。

takatori - 鷹取

SQLコンパイラが扱う中間表現(intermediate representation)を定義するコンポーネントです。鷹取は日本でもっとも古い岩場のひとつとのこと。

yugawara - 湯河原

SQLコンパイラが中間表現を取り扱うためのランゲージツールキットです。湯河原は伊豆の温泉で、幕岩というクライマーに有名な岩場があるそうです。

mizugaki - 瑞牆

SQLコンパイラのフロントエンドです。mizugakiはyugawaraを使用してSQLをコンパイルし、takatoriの表現形式で出力します。瑞牆もクライミング難易度の高い有名な岩場だそうです。

sharksfin - Shark's Fin

トランザクション実行エンジンをインターフェースする中間レイヤです。jogasakiはこれを経由してshirakamiなどトランザクション実行エンジンへ処理を要求します。なぜこのコンポーネントだけ海外の山なのか理由が思い出せないのですが、ヒマラヤ山脈にある有名な山頂の名前です。

shirakami - 白神

tsurugiのメインのトランザクション実行エンジンです。Siloベースの楽観並行制御によって高性能な書込み性能を実現するとともにバッチ処理のためのロングトランザクションへも対応します。

yakushima - 屋久島

tsurugiのインデックスを構成するkey-value storeで、masstreeによる実装です。shirakamiと連携してstate-of-the-artの並行制御を実現します。

Discussion