第12章 操作の順序の実行

目次

順序エラー
順序の作成
順序の実行

操作対象のがすべて同じシャード・キーを共有する場合、書込み操作の順序を1つの原子的単位として実行できます。原子的単位とは、すべての操作が正常に実行されるか、いずれも実行されないということです。

また、順序は単独で実行されます。つまり、非常に長い順序を実行するスレッドがある場合、その順序で使用されているデータに、別のスレッドが割り込めないということです。長時間実行されている順序が完了するまで、順序で行われた変更を別のスレッドが確認することはできません。長時間実行されている順序で使用されているデータを、別のスレッドが変更することもできません。

順序では書込み操作のみサポートされることに注意してください。順序を使用する場合、格納と削除は実行できますが、データは取得できません。

操作の順序を使用する場合、次のようになります。

この章の後半で、TableOperationFactoryおよびTableAPI.execute()を使用して操作の順序を作成し、実行する方法を示します。

順序エラー

順序内の操作でエラーが起きた場合、操作全体が中止されます。この場合、エラーが発生するまでに順序がどこまで実行されたかに関係なく、データは、順序が実行されなかった場合と同じ状態になります。

基本的には、順序が中止される原因は2つあります。

  1. 内部操作で、エラーとみなされる例外が発生します。たとえば、操作はDurabilityExceptionをスローします。また、メッセージの配信またはネットワーク・エラーによる内部エラーがあります。

  2. 各操作から正常に復帰しますが、特定の操作で定義されている不成功です。(たとえば、存在しないを削除しようとするなどです)。これが起こり、TableOperationFactoryを使用して操作を作成したときにabortIfUnsuccessfulパラメータにtrueを指定していた場合、OperationExecutionExceptionがスローされます。この例外には、失敗した操作に関する情報が含まれています。