murrdb/murr - ML/AIワークロード向けサブミリ秒キャッシュ
(github.com/murrdb)- AI推論ワークロードを対象にしたRocksDBベースのNVMe/S3キャッシュで、Redisの代替が可能
- バッチ処理方式の低レイテンシなゼロコピー読み書きに最適化
- バッチデータパイプラインと推論アプリの間に位置するデータサービング層として、Parquet入力、Arrow-Flight出力
- ホットデータはメモリ、コールドデータはディスクに置き、S3ベースのレプリケーションを適用した階層型ストレージ(tiered storage)
- バッチ入力・バッチ出力方式により、カラム指向ストレージ上で行単位のオーバーヘッドなしに動作し、1GBのParquet/ArrowファイルをIngestion APIにそのまま投入可能
- ゼロコピーのワイヤプロトコルにより、API応答からnp.ndarray/pd.DataFrame/pt.Tensorを変換なしで構成可能
- **ステートレス(stateless)**設計で、すべての状態をS3に保持し、ブロックストレージから自己ブートストラップするため、ノード退避時でも復旧可能
- First-classなPythonサポートにより、Numpy/Pandas/Polars/Pytorch配列とゼロコピーでマッピングでき、Sparse columnsはデータのないカラムが0バイトを占有
- Murrが適しているケース
- データが重く表形式(tabular)である場合。S3上の大容量Parquetダンプなど
- 読み取りがバッチで行われる場合。1000件のドキュメントにまたがる100カラムを取得するような処理
- コスト重視の状況では、ディスク/S3へのオフロードが大容量メモリのRedisより運用上シンプルで安価
- 競合技術に対する強み
- Redis比: S3ベースの永続性を提供し、コールドデータをローカルNVMeへオフロード可能
- 組み込み型RocksDB比: プロデューサーと推論ノード間のデータ同期を自前で構築する必要がなく、最初から分散設計
- DynamoDB比: クエリ課金ではなくCPU/RAMのみに課金されるため、約10倍安価
- ベンチマークではpacked-blob読み取りでRedis比約3倍、FeastスタイルのHSETで約12倍高速で、HSET比で約3分の1少ないRAM使用量
- 汎用DBではないため、OLTPにはPostgres、分析にはClickhouse/BigQuery/Snowflake、汎用キャッシュにはRedisを推奨
- Apache 2.0ライセンス
まだコメントはありません。