堅固動作モードでは、ストリーム オペレータは発行された各リクエストに対して再起動ログ テーブルに1行書き込みます。再起動ログ テーブルでのこの行の集まりは、リクエスト ログと呼ばれることがあります。リクエストは完全に終了するか完全にロールバックするかのいずれかであることがデータベースによって保証されているため、リクエスト ログにはロード操作の完了ステータスが常に正確に反映されます。したがって、再起動ロジックに関するリクエスト ログのオーバーヘッドは、リクエストごとにパックされるステートメントの数が多いほど減少します。チェックポイント プロセス内で、ストリーム オペレータはデータベースに対する保留状態のすべての変更内容を書き込みを内部記憶装置から消去し、リクエスト ログ行も削除します。チェックポイントの間隔が大きいほど、リクエスト ログが大きくなります。堅固動作モードの再始動の場合、ストリーム オペレータはこのリクエスト ログを使用して、データベース変更内容の誤った再適用を回避します。
単純(非堅固動作)モードでは、Streamオペレータは基本チェックポイント操作を提供します。 再始動が発生すると、一部のリクエストはほとんど再処理されます。 一部の状況のもとでは、これで十分な保護になります。 操作の結果が変わることなく繰り返せるようなDML文であれば、単純ロジックで十分です。
単純ではないステートメントの例を以下に示します。
- 重複行を許可する複数のテーブルへの挿入(multisetテーブル)。
- 次のような自己参照型のDML文。 "UPDATE FOO SET A=A+1..."、または"UPDATE FOO SET A = 3 WHERE A=4"