From fb3696bc72ce7bcbf17a5188b7fec1c5b690ad23 Mon Sep 17 00:00:00 2001 From: "Brian S. O'Neill" Date: Mon, 2 Oct 2006 06:08:44 +0000 Subject: Add support SNAPSHOT isolation level. --- src/main/java/com/amazon/carbonado/IsolationLevel.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/main/java/com/amazon/carbonado/IsolationLevel.java') diff --git a/src/main/java/com/amazon/carbonado/IsolationLevel.java b/src/main/java/com/amazon/carbonado/IsolationLevel.java index 5f963b2..7571205 100644 --- a/src/main/java/com/amazon/carbonado/IsolationLevel.java +++ b/src/main/java/com/amazon/carbonado/IsolationLevel.java @@ -26,6 +26,7 @@ package com.amazon.carbonado; *
  • {@link #READ_UNCOMMITTED} *
  • {@link #READ_COMMITTED} *
  • {@link #REPEATABLE_READ} + *
  • {@link #SNAPSHOT} *
  • {@link #SERIALIZABLE} * * @@ -35,6 +36,11 @@ package com.amazon.carbonado; * iteration. It releases locks during iteration rather than holding on to them * until the transaction exits. * + *

    {@code SNAPSHOT} isolation is special in that it uses multiversion + * concurrency control (MVCC). A commit may fail with an {@link + * OptimisticLockException}. Few repositories are expected to support this + * level, however. + * * @author Brian S O'Neill * @see Repository#enterTransaction(IsolationLevel) * @see Transaction @@ -71,6 +77,13 @@ public enum IsolationLevel { */ REPEATABLE_READ, + /** + * Indicates that dirty reads, non-repeatable reads and phantom reads are + * prevented. Commits can still fail however, as snapshot isolation avoids + * using locks. + */ + SNAPSHOT, + /** * Indicates that dirty reads, non-repeatable reads and phantom reads are * prevented. Phantoms are records returned as a result of a search, but -- cgit v1.2.3