13.2. 分離レベル
Data Grid は、READ_COMMITTED および REPEATABLE_READ の 2 つの分離レベルを提供します。
これらの分離レベルは、リーダーが同時書き込みを確認するタイミングを決定し、MVCCEntry
の異なるサブクラスを使用して内部的に実装されます。MVCCEntry では、状態がデータコンテナーにコミットされる方法が異なります。
以下は、Data Grid のコンテキストの READ_COMMITTED
および REPEATABLE_READ
の違いを理解する上で役立つ詳細な例です。READ_COMMITTED
の場合、同じキーで連続して 2 つの読み取り呼び出しを行うと、キーが別のトランザクションによって更新され、2 つ目の読み取りによって新しい更新値が返されることがあります。
REPEATABLE_READ
では、最終 get は引き続き v
を返します。そのため、トランザクション内で同じキーを複数回取得する場合は、REPEATABLE_READ
を使用する必要があります。
ただし、読み取りロックが REPEATABLE_READ
に対しても取得されないため、この現象が発生する可能性があります。