Ruby でリアルタイム データ分析タスクのアルゴリズムを開発しています。データセットが非常に大きいため、ボトルネックは CPU です。したがって、必要なパフォーマンスを達成するには、おそらく別のマシンで、より多くのコアを並行して使用する必要があります。
私の質問は、次の機能を提供する既存の Ruby ライブラリがあるかどうかです。
- クラスター管理、理想的にはマスターレス、動的再構成 (ノードの参加と離脱) およびある程度の耐障害性
- (アクティブな) ノードへの計算ジョブの分散、エラー処理 (ジョブの再試行など)
- リアルタイム機能を確保するための高速 (直接?) 通信
私がすでに見たもの:
- DRb: レベルが低すぎる、手動でノードを処理する、耐障害性がない?
- DCell: 成熟した?自動クラスター管理?
- Resque/Sidekiq: いいけど遅すぎる (Redis のポーリング、ワーカーのスリープ、...)
- Riak Map/Reduce: 便利ですが、リアルタイム クエリにはお勧めしません
- Spark : 複雑なもの、エンタープライズ?
最後の手段: Ruby 以外のプラットフォームでは解決策がないのではないでしょうか? おそらく Java (そう、JRuby!) または node.js です。