public enum CacheAtomicityMode extends Enum<CacheAtomicityMode>
ATOMICmode is used whenever transactions and explicit locking are not needed. Note that in
ATOMICmode cache will still maintain full data consistency across all cache nodes.
Cache atomicity may be set via
|Enum Constant and Description|
Specifies atomic-only cache behaviour.
|Modifier and Type||Method and Description|
Efficiently gets enumerated value from its ordinal.
Returns the enum constant of this type with the specified name.
Returns an array containing the constants of this enum type, in the order they are declared.
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
public static final CacheAtomicityMode TRANSACTIONAL
ACID-compliant transactional cache behavior. See
Transactionfor more information about transactions.
public static final CacheAtomicityMode ATOMIC
In addition to transactions and locking, one of the main differences in
is that bulk writes, such as
methods, become simple batch operations which can partially fail. In case of partial
CachePartialUpdateException will be thrown
which will contain a list of keys for which the update failed. It is recommended that bulk writes are used
whenever multiple keys need to be inserted or updated in cache, as they reduce number of network trips and
provide better performance.
Note that even without locking and transactions,
ATOMIC mode makes best effort to provide
full consistency guarantees across all cache nodes. However, in following scenarios (but not limited to)
full consistency is not possible and
TRANSACTIONAL mode should be used or custom defined recovery
logic should be applied to restore data consistency:
removeAll(Set<K>)all copies of partitions will come to a consistent state.
EntryProcessoris used and processor is not idempotent then failure of primary node may result in applying the same processor on next chosen primary which may have already been updated within current operation. If processor is not idempotent it is recommended to disable automatic retries and manually restore consistency between key-value copies in case of update failure.
replace(K, V, V)and
remove(K, V)return value on primary node crash may be incorrect because of the automatic retries. It is recommended to disable retries with
IgniteCache.withNoRetries()and manually restore primary-backup consistency in case of update failure.
Also note that all data modifications in
ATOMIC mode are guaranteed to be atomic
and consistent with writes to the underlying persistent store, if one is configured.
Note! Consistency behavior of atomic cache will be improved in future releases.
public static CacheAtomicityMode values()
for (CacheAtomicityMode c : CacheAtomicityMode.values()) System.out.println(c);
public static CacheAtomicityMode valueOf(String name)
@Nullable public static CacheAtomicityMode fromOrdinal(int ord)
ord- Ordinal value.
nullif ordinal out of range.