0

背景情報:

マスター/スレーブ パターンに基づく分散アプリケーションがあります。マスターは、次の形式の JSON ファイルを定期的に受け取ります。

[{'key' : 'a_hashed_unique_key', 'partner_name' : 'name1'}]

同じ*'partner_name'*を持つすべての JSON オブジェクトを集約してファイルに書き込みます。これにより、複数の JOB ファイルが作成されます (それぞれが partner_name に対応します)。

これらの生成されたファイルはすべて、 マスターとスレーブの間で共有されるネットワーク ストレージに書き込まれます。

電源を入れたスレーブ VM は JOB ファイルを要求し、マスターはネットワーク ストレージ上の JOB ファイルのパスを共有し、スレーブはその処理を開始します。

質問: ジョブと、ジョブ ファイルを処理しているスレーブ マシンを追跡する最善の方法は何ですか。

ハッシュベースのコレクション、つまり HashMap が適切に見えます。私はそれに同時にアクセスし、次のシナリオを考えることができます

  • スレーブ要求ジョブ ファイル。
  • 完了したジョブをコレクションから削除します。
  • 新しい入力ファイルを受信したときに、新しいジョブ ファイルを追加する。

ジョブレジストリをスレッド間でアトミックに読み取り/変更できるように、内部同期を使用した実装を希望します。

4

0 に答える 0