このプロジェクトについて
RetractorDBは、リアルタイムで規則的な時系列データを処理および記録するためのエッジシグナル処理エンジンです。連続データストリーム、シグナル処理、テレメトリ、IoT監視を対象としており、作者はこれを進行中のプロジェクトと説明しています。このシステムはC++で記述されており、Linux上でx64およびARM64でテストされ、macOS版はAppleシリコン上でのみテストされています。
READMEに記載されている設計特性には、リアルタイム動作、逐次決定的処理スレッド、宣言からシステム終了まで実行される連続クエリ、プロセス間通信のための共有メモリ、および規則的な時系列のためのカスタム代数が含まれます。
このプロジェクトは、連携して動作する3つのプログラムで構成されています:
- **xretractor** - エンジン。.rqlクエリセットをコンパイルし、連続クエリプランを実行します。オプションでsystemdサービスとしてリアルタイムスケジューリングで動作します。
- **xqry** - クライアント。共有メモリを介して実行中のエンジンから結果を読み取り、複数の出力モード(Graphite、InfluxDB、gnuplotなど)とアドホッククエリモードを提供します。
- **xtrdb** - バイナリストレージアーティファクトとメタデータを読み取るための検査ツールです。
インストール方法は2つ提供されています。プリビルドパッケージはGitHub Releasesで公開されており、x86-64向けのDebian/Ubuntu .deb(バイナリを/usr/binにインストールし、systemdサービスを設定)と、x86-64およびAArch64向けのポータブルtar.gzアーカイブがあります。また、ウェブサイトインストーラは選択したアセットのSHA-256ダイジェストを検証し、~/.localまたは/usr/localにインストールし、オプションでサービス設定を行います。ソースからのビルドには、Conan 2、CMake、Ninjaが必要です。LinuxではC++23機能のためにGCC 14以上が必要で、macOSではmacOS 14.4以上のデプロイメントターゲットを持つXcode 16.3以上のコマンドラインツールが必要です。ヘルパースクリプト(scripts/buildrdb.sh、scripts/macos-build.sh)がツールチェーンをブートストラップし、configure、build、install、testの各ステップを実行します。ローカルパッケージングターゲットは、Dockerエミュレーションを介したARM64ビルドを含む、.debおよびポータブルアーカイブを生成します。
設定はオプションのTOMLで、階層的に読み込まれます。/etc/retractorのシステムファイル、XDG設定ディレクトリのユーザーファイル、または--configで明示的に渡されたファイル(その場合、そのファイルのみが読み込まれます)。READMEには、設定ファイルがないことも有効な状態であると記載されています。ストレージの場所は主にRQLファイル内の:STORAGEディレクティブで制御され、storage.dir設定キーはデフォルトとしてのみ機能します。
最初のクエリは、/dev/urandomから読み取る入力ストリームを宣言する.rqlファイルを使用してデモンストレーションされ、xretractor -cで検証用にコンパイルされた後、継続的に実行されます。xqryクライアントはアクティブなストリームを一覧表示し、名前付きストリームの結果を表示します。エンジンはxqry --killで停止することもできます。クエリセットは、.rqlファイルを指定してxretractorを起動することで、既に実行中のサービスに配信できます。これによりクエリが検証され、サービスクエリファイルが置き換えられ、ユニットが再起動されます。
いくつかのCMakeオプションにより、独立したクエリプランの最適化(同一サブストレートの重複排除、同等のSELECT計算の共有、可換加算処理、マッチドハッシュタイムムーブプランの因数分解)が公開されています。すべてデフォルトでONになっており、READMEでは別のビルドディレクトリでアブレーション変種を設定する方法が文書化されています。別の測定プローブオプションも存在しますが、プロダクションリリースおよびパッケージングビルドでは強制的にオフになります。
研究資料は独立したリポジトリrdb-experimentにあり、実ハードウェアでのパフォーマンスキャンペーンと、独立したオラクルに対するセマンティック検証実験が含まれています。これはビルド、テスト、パッケージング、CIには不要であり、実験データが単調増加し、再現可能に保たれなければならないため、別に管理されています。
このプロジェクトはMITライセンスで、Michal Wideraによってメンテナンスされています。ドキュメントはプロジェクトウェブサイトで入手可能で、ポーランド語による包括的なドキュメントも提供されています。
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.