と の 2 つのシステムがA
ありB
ます。システム B は、書き込みおよび読み取り要求を送信し、A は、A の既存のエンジン E_current を使用してすべての読み取り要求に対して応答を返します。各書き込み要求は、既存のエンジン E_current の変更を引き起こします。
E_current は定期的に E_new に置き換えられます。更新手続き中のため、E_new はまだ使用できません。この更新プロセス中に発生する Read リクエストの一部は、更新プロセスの開始後に発生した Write リクエストに依存しています。新しいエンジン E_new は、更新プロセス中に発生し、 によって既に処理された各書き込み要求に対して、それ自体にも変更を加える必要があります。
更新プロセスの完了後、E_current は削除され、E_new は E_current になります。
要件:
- リクエストは完全に同時実行されます。たとえば、読み取り要求の処理中に書き込み要求が来ることがあります。
- エンジン E で複数の変更を行うと、状態の一貫性が失われる可能性があるため、状態の一貫性を維持する必要があります。
ダイアグラム: