私は、私のEmployeeエンティティをアクターとして表現しています。私は俳優としてもモデル化された2つのサービスを持っています。両方とも、メッセージを送信することによって受け取った従業員の俳優の状態を操作します。さて、両方のサービスが同じ俳優を処理しているとしましょう。今ではこれで結構です従業員の俳優は、2つのサービスAから以下の順に状態変化するメッセージを受け取ることは完全に可能であるとBアクターモデルでMVCCを実現する方法
Employee <- |a1|a2|a3|b1|b2|b3|
。しかし、時にはそれはない
Employee <- |a1|b1|a2|b2|a3|b3|
たぶんa2
がa1
によって変更状態に依存していたが、我々は単一のスナップショット/バージョンで動作できるようにb1
は、データベースと同様に
それを変更し、我々は取引を持っていますトランザクションのライフタイムを通じてデータの
必須のモデルでは、従業員オブジェクト全体をロックし、データベースの状態と同様の状態を更新します。
アクターは、アトミックな一連のメッセージとして処理される大量のメッセージを受信できる可能性がありますか?それとも、データ自体のモデリングに欠陥がありますか?
。トランザクションブロック内に書いた変更があれば、そのメッセージを1つのメッセージで完全に実行するメッセージを作成しました。ありがとう! –