org.apache.ignite.internal.processors.cache.distributed

## Class GridDistributedCacheAdapter<K,V>

- java.lang.Object
- - org.apache.ignite.internal.processors.cache.GridCacheAdapter<K,V>
  - - org.apache.ignite.internal.processors.cache.distributed.GridDistributedCacheAdapter<K,V>

All Implemented Interfaces:
  Externalizable, Serializable, Iterable<javax.cache.Cache.Entry<K,V>>, IgniteInternalCache<K,V>

Direct Known Subclasses:
  GridDhtCacheAdapter, GridNearCacheAdapter

    public abstract class GridDistributedCacheAdapter<K,V>
    extends GridCacheAdapter<K,V>

Distributed cache implementation.

See Also:
  Serialized Form

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.ignite.internal.processors.cache.GridCacheAdapter

`GridCacheAdapter.AsyncOp<T>, GridCacheAdapter.CacheExpiryPolicy, GridCacheAdapter.FutureHolder, GridCacheAdapter.PeekModes, GridCacheAdapter.TopologyVersionAwareJob, GridCacheAdapter.UpdateGetTimeStatClosure<T>, GridCacheAdapter.UpdatePutAndGetTimeStatClosure<T>, GridCacheAdapter.UpdatePutTimeStatClosure<T>, GridCacheAdapter.UpdateRemoveTimeStatClosure<T>, GridCacheAdapter.UpdateTimeStatClosure<T>`

### Field Summary

### Fields inherited from class org.apache.ignite.internal.processors.cache.GridCacheAdapter

`cacheCfg, CLEAR_ALL_SPLIT_THRESHOLD, ctx, DFLT_START_CACHE_SIZE, keyCheck, lastFut, locNodeId, log, map, MAX_RETRIES, metrics, RET2NULL, txLockMsgLog`

### Constructor Summary

Constructors
`protected` `GridDistributedCacheAdapter()` Empty constructor required by `Externalizable`.
`protected` `GridDistributedCacheAdapter(GridCacheContext<K,V> ctx)`
`protected` `GridDistributedCacheAdapter(GridCacheContext<K,V> ctx, GridCacheConcurrentMap map)`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`long` `localSizeLong(CachePeekMode[] peekModes)`
`long` `localSizeLong(int part, CachePeekMode[] peekModes)`
`IgniteInternalFuture<Boolean>` `lockAllAsync(Collection<? extends K> keys, long timeout)` All or nothing synchronous lock for passed in keys.
`protected abstract IgniteInternalFuture<Boolean>` `lockAllAsync(Collection<KeyCacheObject> keys, long timeout, IgniteTxLocalEx tx, boolean isInvalidate, boolean isRead, boolean retval, TransactionIsolation isolation, long createTtl, long accessTtl)`
`void` `removeAll()` Removes mappings from cache.
`IgniteInternalFuture<?>` `removeAllAsync()`
`void` `removeVersionedEntry(KeyCacheObject key, GridCacheVersion ver)`
`String` `toString()`
`IgniteInternalFuture<Boolean>` `txLockAsync(Collection<KeyCacheObject> keys, long timeout, IgniteTxLocalEx tx, boolean isRead, boolean retval, TransactionIsolation isolation, boolean isInvalidate, long createTtl, long accessTtl)`

### Methods inherited from class org.apache.ignite.internal.processors.cache.GridCacheAdapter

`active, active, affinity, allEntries, asyncOp, asyncOpAcquire, asyncOpRelease, awaitLastFut, cache, checkJta, clear, clear, clearAll, clearAllAsync, clearAsync, clearAsync, clearLocally, clearLocally, clearLocally, clearLocallyAll, clusterMetrics, clusterMetrics, clusterMxBean, configuration, containsKey, containsKeyAsync, containsKeys, containsKeysAsync, context, decrementSize, entries, entryEx, entryEx, entryEx, entrySet, entrySet, evict, evictAll, expiry, expiryPolicy, forceKeyCheck, forSubjectId, get, get, get0, getAll, getAll0, getAllAsync, getAllAsync, getAllAsync, getAllAsync, getAllAsync0, getAllOutTx, getAllOutTxAsync, getAndPut, getAndPut, getAndPut0, getAndPutAsync, getAndPutAsync, getAndPutAsync0, getAndPutIfAbsent, getAndPutIfAbsentAsync, getAndRemove, getAndRemove0, getAndRemoveAsync, getAndRemoveAsync0, getAndReplace, getAndReplaceAsync, getAsync, getAsync, getAsync, getEntries, getEntriesAsync, getEntry, getEntryAsync, getForcePrimary, getForcePrimaryAsync, igfsDataSpaceUsed, igniteIterator, igniteIterator, incrementSize, init, invoke, invoke, invokeAll, invokeAll, invokeAllAsync, invokeAllAsync, invokeAsync, isColocated, isDht, isDhtAtomic, isEmpty, isIgfsDataCache, isLocal, isLocked, isLockedByThread, isMongoDataCache, isMongoMetaCache, isNear, iterator, iterator, keepBinary, keySet, loadAll, localEntries, localLoad, localLoadCache, localLoadCacheAsync, localMetrics, localMxBean, localPeek, localSize, lock, lockAll, lockAsync, log, lostPartitions, map, metrics0, name, nearSize, offHeapAllocatedSize, offHeapEntriesCount, onDeferredDelete, onIgfsDataSizeChanged, onKernalStart, onKernalStop, onReconnected, onUndeploy, parsePeekModes, peekEx, peekEx, preloader, primarySize, primarySizeLong, printMemoryStats, put, put, put0, putAll, putAll0, putAllAsync, putAllAsync0, putAllConflict, putAllConflictAsync, putAsync, putAsync, putAsync0, putIfAbsent, putIfAbsentAsync, readExternal, readResolve, rebalance, remove, remove, remove, remove0, removeAll, removeAll0, removeAllAsync, removeAllAsync0, removeAllConflict, removeAllConflictAsync, removeAsync, removeAsync, removeAsync, removeAsync0, removeEntry, removeIfObsolete, replace, replace, replaceAsync, replaceAsync, saveFuture, scanIterator, setSkipStore, size, size, sizeAsync, sizeLong, sizeLong, sizeLong, sizeLongAsync, sizeLongAsync, skipStore, splitClearLocally, start, startInfo, stop, stopInfo, tx, txStart, txStart, txStartEx, unlock, validateCacheKey, validateCacheKeys, withExpiryPolicy, withNoRetries, writeExternal`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.apache.ignite.internal.processors.cache.IgniteInternalCache

`unlockAll`

### Methods inherited from interface java.lang.Iterable

`forEach, spliterator`

### Constructor Detail

#### GridDistributedCacheAdapter

    protected GridDistributedCacheAdapter()

Empty constructor required by `Externalizable`.

#### GridDistributedCacheAdapter

    protected GridDistributedCacheAdapter(GridCacheContext<K,V> ctx)

Parameters:
  `ctx` - Cache registry.

#### GridDistributedCacheAdapter

    protected GridDistributedCacheAdapter(GridCacheContext<K,V> ctx,
                                          GridCacheConcurrentMap map)

Parameters:
  `ctx` - Cache context.
  `map` - Cache map.

### Method Detail

#### txLockAsync

    public IgniteInternalFuture<Boolean> txLockAsync(Collection<KeyCacheObject> keys,
                                                     long timeout,
                                                     IgniteTxLocalEx tx,
                                                     boolean isRead,
                                                     boolean retval,
                                                     TransactionIsolation isolation,
                                                     boolean isInvalidate,
                                                     long createTtl,
                                                     long accessTtl)

Specified by:
  `txLockAsync` in class `GridCacheAdapter<K,V>`
Parameters:
  `keys` - Keys to lock.
  `timeout` - Lock timeout.
  `tx` - Transaction.
  `isRead` - `True` for read operations.
  `retval` - Flag to return value.
  `isolation` - Transaction isolation.
  `isInvalidate` - Invalidate flag.
  `createTtl` - TTL for create operation.
  `accessTtl` - TTL for read operation.
Returns:
  Locks future.

#### lockAllAsync

    public IgniteInternalFuture<Boolean> lockAllAsync(Collection<? extends K> keys,
                                                      long timeout)

All or nothing synchronous lock for passed in keys. This method together with filter check will be executed as one atomic operation. If at least one filter validation failed, no locks will be acquired.

## Transactions

Locks are not transactional and should not be used from within transactions. If you do need explicit locking within transaction, then you should use `TransactionConcurrency.PESSIMISTIC` concurrency control for transaction which will acquire explicit locks for relevant cache operations.

Parameters:
  `keys` - Keys to lock.
  `timeout` - Timeout in milliseconds to wait for lock to be acquired (`'0'` for no expiration).
Returns:
  Future for the collection of locks. The future will return `true` if all filters passed and locks were acquired before timeout has expired, `false` otherwise.

#### lockAllAsync

    protected abstract IgniteInternalFuture<Boolean> lockAllAsync(Collection<KeyCacheObject> keys,
                                                                  long timeout,
                                                                  @Nullable
                                                                  IgniteTxLocalEx tx,
                                                                  boolean isInvalidate,
                                                                  boolean isRead,
                                                                  boolean retval,
                                                                  @Nullable
                                                                  TransactionIsolation isolation,
                                                                  long createTtl,
                                                                  long accessTtl)

Parameters:
  `keys` - Keys to lock.
  `timeout` - Timeout.
  `tx` - Transaction
  `isInvalidate` - Invalidation flag.
  `isRead` - Indicates whether value is read or written.
  `retval` - Flag to return value.
  `isolation` - Transaction isolation.
  `createTtl` - TTL for create operation.
  `accessTtl` - TTL for read operation.
Returns:
  Future for locks.

#### removeVersionedEntry

    public void removeVersionedEntry(KeyCacheObject key,
                                     GridCacheVersion ver)

Parameters:
  `key` - Key to remove.
  `ver` - Version to remove.

#### removeAll

    public void removeAll()
                   throws IgniteCheckedException

Removes mappings from cache.

USE WITH CARE - if your cache has many entries then transaction will quickly become very heavy and slow.

If write-through is enabled, the values will be removed from `CacheStore` via `IgniteDataStreamer`.

## Transactions

This method is not transactional.

Specified by:
  `removeAll` in interface `IgniteInternalCache<K,V>`
Overrides:
  `removeAll` in class `GridCacheAdapter<K,V>`
Throws:
  `IgniteCheckedException` - If remove failed.

#### removeAllAsync

    public IgniteInternalFuture<?> removeAllAsync()

Returns:
  Remove future.

#### localSizeLong

    public long localSizeLong(CachePeekMode[] peekModes)
                       throws IgniteCheckedException

Parameters:
  `peekModes` - Peek modes.
Returns:
  Local cache size as a long value.
Throws:
  `IgniteCheckedException` - If failed.

#### localSizeLong

    public long localSizeLong(int part,
                              CachePeekMode[] peekModes)
                       throws IgniteCheckedException

Parameters:
  `part` - partition.
  `peekModes` - Peek modes.
Returns:
  Local cache size as a long value.
Throws:
  `IgniteCheckedException` - If failed.

#### toString

    public String toString()

Overrides:
  `toString` in class `GridCacheAdapter<K,V>`

2018 Copyright © Apache Software Foundation

Follow @ApacheIgnite

Ignite Fabric | : ver. 2.4.0
Release Date | : March 5 2018