皆さん、私が取り組んでいるプロジェクトを共有したいと思います:
Volga — リアルタイムAI/ML用のオープンソースデータエンジン。要約すると、AI/MLパイプライン向けに特化した Flink/Spark/Arroyo の代替で、Chronon や OpenMLDB のようなシステムに近い。
最近、システムを全面的に書き直し、Python+Ray のプロトタイプからネイティブな Rust コアへ移行しました。目標は、従来の JVM ベースのスタックが課す「インフラ課金」を排除した、真にスタンドアロンのランタイムを構築することです。
Volga は Apache DataFusion と Arrow を用いて構築され、AI/ML データパイプラインに特化したストリーミング、バッチ、リクエスト時の計算のための統一されたスタンドアロン実行環境を提供します。複雑なシステム連携を実質的に排除します(Flink + Spark + Redis + カスタムサービス)。
主要なアーキテクチャ機能:
- SQLベースのパイプライン: Apache DataFusion(分散ストリーミングのためにプランナーを拡張)により駆動します。
- リモート状態ストレージ: SlateDB を介した S3 上の LSM-Tree による真の計算-ストレージ分離。これによりローカル状態エンジンと比較してほぼ即時のリスケーリングと安価なチェックポイントが可能です。
- 統一されたストリーミングとバッチ: Apache Arrow を介したリアルタイムおよびバックフィルのための一貫した watermark ベースの実行。
- リクエストモード: 時点で正確 なクエリ可能な状態をデータフロー内で直接機能として提供(外部の KV/提供ワーカーは不要)。
- ML特化の集約:
topk、_cate、_where関数をネイティブにサポート。 - 長期ウィンドウのタイル化: 数週間または数か月にわたる最適化されたスライディングウィンドウ。
Rust への移行、ストリーミング拡張のための DataFusion の拡張、およびこの分野の既存システムとの比較について、詳細なアーキテクチャの深堀りを書きました:
技術的な深掘り: https://volgaai.substack.com/p/volga-a-rust-rewrite-of-a-real-time
GitHub: https://github.com/volga-project/volga
[リンク] [コメント]