1

私はakka/scalaを使って多くのアクターで分散システムを作成しています。ほとんどの「ワーカー」アクターは、大量のデータセットの異なるサブセットに対して基本的に同じ操作を実行します。共通のデータベースにデータを保存し、計算が必要なときにワーカーアクターにデータを配布するのではなく、データを作成するときにワーカーアクター間でデータを分割し、各ワーカーにデータの永続化を任せることを考えていました。運営する。

これは一般的なアーキテクチャであり、どのような状況で意味がありますか?各エージェントが作業するデータの永続化を担当するアーキテクチャを作成することの欠点は何ですか?

4

1 に答える 1

2

典型的な分割統治法のように聞こえます。

処理されたデータをワーカーに保存させることを検討する際に留意すべきことは、このプロセスは通常IOバウンドであるということです。データの保存方法によっては、保存してもメリットがない場合があります。

リモートアクターを使用していて、ワーカーが実行されるノードのローカルディスクにデータを保存している場合は問題ありません。クラスタ内に分散できるハードドライブに書き込むときにIOがバインドされるためです。すべてのワーカーが同じノードで実行されている場合、ボトルネックがディスクに書き込むため、それを実行しても何のメリットもありません。

お役に立てば幸いです。

于 2013-03-24T16:54:24.267 に答える