http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryEx.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryEx.java
index 3e509d8,d6d7335..044aeaa
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryEx.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryEx.java
@@@ -263,10 -273,18 +263,11 @@@ public interface GridCacheEntryEx 
      public boolean partitionValid();
  
      /**
+      * @param ver Cache version to set. The version will be used on updating 
entry instead of generated one.
       * @param tx Ongoing transaction (possibly null).
 -     * @param readSwap Flag indicating whether to check swap memory.
       * @param readThrough Flag indicating whether to read through.
 -     * @param failFast If {@code true}, then throw {@link 
GridCacheFilterFailedException} if
 -     *      filter didn't pass.
 -     * @param unmarshal Unmarshal flag.
       * @param updateMetrics If {@code true} then metrics should be updated.
       * @param evt Flag to signal event notification.
 -     * @param tmp If {@code true} can return temporary instance which is 
valid while entry lock is held,
 -     *        temporary object can used for filter evaluation or transform 
closure execution and
 -     *        should not be returned to user.
       * @param subjId Subject ID initiated this read.
       * @param transformClo Transform closure to record event.
       * @param taskName Task name.
@@@ -275,10 -294,15 +277,11 @@@
       * @throws IgniteCheckedException If loading value failed.
       * @throws GridCacheEntryRemovedException If entry was removed.
       */
-     @Nullable public CacheObject innerGet(@Nullable IgniteInternalTx tx,
+     @Nullable public CacheObject innerGet(@Nullable GridCacheVersion ver,
+         @Nullable IgniteInternalTx tx,
 -        boolean readSwap,
          boolean readThrough,
 -        boolean failFast,
 -        boolean unmarshal,
          boolean updateMetrics,
          boolean evt,
 -        boolean tmp,
          UUID subjId,
          Object transformClo,
          String taskName,
@@@ -287,7 -311,10 +290,8 @@@
          throws IgniteCheckedException, GridCacheEntryRemovedException;
  
      /**
+      * @param ver Cache version to set. The version will be used on updating 
entry instead of generated one.
       * @param tx Cache transaction.
 -     * @param readSwap Flag indicating whether to check swap memory.
 -     * @param unmarshal Unmarshal flag.
       * @param updateMetrics If {@code true} then metrics should be updated.
       * @param evt Flag to signal event notification.
       * @param subjId Subject ID initiated this read.
@@@ -299,7 -327,10 +304,8 @@@
       * @throws GridCacheEntryRemovedException If entry was removed.
       */
      @Nullable public T2<CacheObject, GridCacheVersion> innerGetVersioned(
+         @Nullable GridCacheVersion ver,
          IgniteInternalTx tx,
 -        boolean readSwap,
 -        boolean unmarshal,
          boolean updateMetrics,
          boolean evt,
          UUID subjId,
@@@ -893,9 -926,25 +900,9 @@@
       * @param ver Version.
       * @param ttl Time to live.
       */
-     public void updateTtl(@Nullable GridCacheVersion ver, long ttl);
+     public void updateTtl(@Nullable GridCacheVersion ver, long ttl) throws 
GridCacheEntryRemovedException;
  
      /**
 -     * Called when entry should be evicted from offheap.
 -     * <p>
 -     * If swap is enabled tries to do offheap -> swap eviction, otherwise 
evicted value should
 -     * be passed to query manager.
 -     *
 -     * @param entry Serialized swap entry.
 -     * @param evictVer Version when entry was selected for eviction.
 -     * @param obsoleteVer Obsolete version.
 -     * @throws IgniteCheckedException If failed.
 -     * @throws GridCacheEntryRemovedException If entry was removed.
 -     * @return {@code True} if entry was obsoleted and written to swap.
 -     */
 -    public boolean onOffheapEvict(byte[] entry, GridCacheVersion evictVer, 
GridCacheVersion obsoleteVer)
 -        throws IgniteCheckedException, GridCacheEntryRemovedException;
 -
 -    /**
       * @return Value.
       * @throws IgniteCheckedException If failed to read from swap storage.
       * @throws GridCacheEntryRemovedException If entry was removed.

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEvictionManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
index d9c81b6,735e20a..a60ca8e
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
@@@ -198,9 -209,9 +202,9 @@@ public abstract class GridCacheMapEntr
  
          // In case we deal with IGFS cache, count updated data
          if (cctx.cache().isIgfsDataCache() &&
-             
cctx.kernalContext().igfsHelper().isIgfsBlockKey(key.value(cctx.cacheObjectContext(),
 false))) {
+             
cctx.kernalContext().igfsHelper().isIgfsBlockKey(keyValue(false))) {
              int newSize = valueLength0(val, null);
 -            int oldSize = valueLength0(this.val, (this.val == null && 
hasOffHeapPointer()) ? valueBytes0() : null);
 +            int oldSize = valueLength0(this.val, null);
  
              int delta = newSize - oldSize;
  
@@@ -482,20 -668,29 +486,24 @@@
      }
  
      /** {@inheritDoc} */
-     @Nullable @Override public final CacheObject innerGet(@Nullable 
IgniteInternalTx tx,
 -    @Nullable @Override public final CacheObject innerGet(@Nullable 
GridCacheVersion ver,
++    @Nullable @Override public final CacheObject innerGet(
++        @Nullable GridCacheVersion ver,
+         @Nullable IgniteInternalTx tx,
 -        boolean readSwap,
          boolean readThrough,
 -        boolean failFast,
 -        boolean unmarshal,
          boolean updateMetrics,
          boolean evt,
 -        boolean tmp,
          UUID subjId,
          Object transformClo,
          String taskName,
          @Nullable IgniteCacheExpiryPolicy expirePlc,
          boolean keepBinary)
          throws IgniteCheckedException, GridCacheEntryRemovedException {
-         return (CacheObject)innerGet0(tx,
 -        return (CacheObject)innerGet0(ver,
++        return (CacheObject)innerGet0(
++            ver,
+             tx,
 -            readSwap,
              readThrough,
              evt,
 -            unmarshal,
              updateMetrics,
 -            tmp,
              subjId,
              transformClo,
              taskName,
@@@ -506,7 -701,10 +514,8 @@@
  
      /** {@inheritDoc} */
      @Nullable @Override public T2<CacheObject, GridCacheVersion> 
innerGetVersioned(
+         @Nullable GridCacheVersion ver,
          IgniteInternalTx tx,
 -        boolean readSwap,
 -        boolean unmarshal,
          boolean updateMetrics,
          boolean evt,
          UUID subjId,
@@@ -529,10 -731,15 +538,12 @@@
  
      /** {@inheritDoc} */
      @SuppressWarnings({"unchecked", "RedundantTypeArguments", 
"TooBroadScope"})
-     private Object innerGet0(IgniteInternalTx tx,
+     private Object innerGet0(
+         GridCacheVersion nextVer,
+         IgniteInternalTx tx,
 -        boolean readSwap,
          boolean readThrough,
          boolean evt,
 -        boolean unmarshal,
          boolean updateMetrics,
 -        boolean tmp,
          UUID subjId,
          Object transformClo,
          String taskName,
@@@ -723,17 -949,23 +737,16 @@@
                      // Detach value before index update.
                      ret = 
cctx.kernalContext().cacheObjects().prepareForCache(ret, cctx);
  
-                     GridCacheVersion nextVer = nextVersion();
+                     nextVer = nextVer != null ? nextVer : nextVersion();
  
 -                    CacheObject prevVal = rawGetOrUnmarshalUnlocked(false);
 -
                      long expTime = CU.toExpireTime(ttl);
  
                      if (loadedFromStore)
                          // Update indexes before actual write to entry.
 -                        updateIndex(ret, expTime, nextVer, prevVal);
 -
 -                    boolean hadValPtr = hasOffHeapPointer();
 +                        storeValue(ret, expTime, nextVer);
  
-                     // Don't change version for read-through.
-                     update(ret, expTime, ttl, nextVer);
+                     update(ret, expTime, ttl, nextVer, true);
  
 -                    if (hadValPtr && cctx.offheapTiered())
 -                        cctx.swap().removeOffheap(key);
 -
                      if (cctx.deferredDelete() && deletedUnlocked() && 
!isInternal() && !detached())
                          deletedUnlocked(false);
                  }
@@@ -904,7 -1139,7 +918,12 @@@
              // Load and remove from swap if it is new.
              boolean startVer = isStartVersion();
  
-             if (startVer && (retval || intercept))
 -            if (startVer)
++            boolean internal = isInternal() || !context().userCache();
++
++            Map<UUID, CacheContinuousQueryListener> lsnrCol =
++                notifyContinuousQueries(tx) ? 
cctx.continuousQueries().updateListeners(internal, false) : null;
++
++            if (startVer && (retval || intercept || lsnrCol != null))
                  unswap(retval);
  
              newVer = explicitVer != null ? explicitVer : tx == null ?
@@@ -1083,10 -1335,22 +1111,15 @@@
              assert tx == null || (!tx.local() && tx.onePhaseCommit()) || 
tx.ownsLock(this) :
                  "Transaction does not own lock for remove[entry=" + this + ", 
tx=" + tx + ']';
  
 -            boolean startVer = isStartVersion();
 -
 -            if (startVer) {
 -                // Release swap.
 -                releaseSwap();
 -            }
 -
              newVer = explicitVer != null ? explicitVer : tx == null ? 
nextVersion() : tx.writeVersion();
  
+             boolean internal = isInternal() || !context().userCache();
+ 
+             Map<UUID, CacheContinuousQueryListener> lsnrCol =
+                 notifyContinuousQueries(tx) ? 
cctx.continuousQueries().updateListeners(internal, false) : null;
+ 
 -            old = (retval || intercept || lsnrCol != null) ?
 -                rawGetOrUnmarshalUnlocked(!retval && !isOffHeapValuesOnly()) 
: val;
 +            // TODO GG-10884 need unswap?.
 +            old = val;
  
              if (intercept) {
                  entry0 = new CacheLazyEntry(cctx, key, old, keepBinary);
@@@ -1103,10 -1367,20 +1136,10 @@@
              if (old == null)
                  old = saveValueForIndexUnlocked();
  
 -            // Clear indexes inside of synchronization since indexes
 -            // can be updated without actually holding entry lock.
 -            clearIndex(old);
 -
 -            boolean hadValPtr = hasOffHeapPointer();
 +            removeValue(old, ver);
  
-             update(null, 0, 0, newVer);
+             update(null, 0, 0, newVer, true);
  
 -            if (cctx.offheapTiered() && hadValPtr) {
 -                boolean rmv = cctx.swap().removeOffheap(key);
 -
 -                assert rmv;
 -            }
 -
              if (cctx.deferredDelete() && !detached() && !isInternal()) {
                  if (!deletedUnlocked()) {
                      deletedUnlocked(true);
@@@ -1282,11 -1588,11 +1346,11 @@@
                  old = 
cctx.kernalContext().cacheObjects().prepareForCache(old, cctx);
  
                  if (old != null)
 -                    updateIndex(old, expireTime, ver, null);
 +                    storeValue(old, expireTime, ver);
                  else
 -                    clearIndex(null);
 +                    removeValue(null, ver);
  
-                 update(old, expireTime, ttl, ver);
+                 update(old, expireTime, ttl, ver, true);
              }
  
              // Apply metrics.
@@@ -1462,10 -1770,20 +1526,10 @@@
                  if (old == null)
                      old = saveValueForIndexUnlocked();
  
 -                // Update index inside synchronization since it can be updated
 -                // in load methods without actually holding entry lock.
 -                clearIndex(old);
 +                removeValue(old, this.ver);
  
-                 update(null, CU.TTL_ETERNAL, CU.EXPIRE_TIME_ETERNAL, ver);
+                 update(null, CU.TTL_ETERNAL, CU.EXPIRE_TIME_ETERNAL, ver, 
true);
  
 -                if (cctx.offheapTiered() && hasValPtr) {
 -                    boolean rmv = cctx.swap().removeOffheap(key);
 -
 -                    assert rmv;
 -                }
 -
                  if (evt) {
                      CacheObject evtOld = null;
  
@@@ -1596,9 -1923,10 +1669,10 @@@
  
                          EntryProcessor<Object, Object, ?> entryProcessor = 
(EntryProcessor<Object, Object, ?>)writeObj;
  
 -                        oldVal = rawGetOrUnmarshalUnlocked(true);
 +                        oldVal = this.val;
  
-                         CacheInvokeEntry<Object, Object> entry = new 
CacheInvokeEntry(cctx, key, oldVal, version(), keepBinary);
+                         CacheInvokeEntry<Object, Object> entry = new 
CacheInvokeEntry(key, oldVal, version(),
+                             keepBinary, this);
  
                          try {
                              Object computed = entryProcessor.process(entry, 
invokeArgs);
@@@ -1812,11 -2148,11 +1894,11 @@@
                  }
  
                  if (oldVal != null)
 -                    updateIndex(oldVal, initExpireTime, ver, null);
 +                    storeValue(oldVal, initExpireTime, ver);
                  else
 -                    clearIndex(null);
 +                    removeValue(null, ver);
  
-                 update(oldVal, initExpireTime, initTtl, ver);
+                 update(oldVal, initExpireTime, initTtl, ver, true);
  
                  if (deletedUnlocked() && oldVal != null && !isInternal())
                      deletedUnlocked(false);
@@@ -2026,9 -2362,11 +2108,9 @@@
  
                  updated = 
cctx.kernalContext().cacheObjects().prepareForCache(updated, cctx);
  
 -                // Update index inside synchronization since it can be updated
 -                // in load methods without actually holding entry lock.
 -                updateIndex(updated, newExpireTime, newVer, oldVal);
 +                storeValue(updated, newExpireTime, newVer);
  
-                 update(updated, newExpireTime, newTtl, newVer);
+                 update(updated, newExpireTime, newTtl, newVer, true);
  
                  updateCntr0 = nextPartCounter(topVer);
  
@@@ -2108,8 -2448,10 +2190,8 @@@
  
                  enqueueVer = newVer;
  
 -                boolean hasValPtr = hasOffHeapPointer();
 -
                  // Clear value on backup. Entry will be removed from cache 
when it got evicted from queue.
-                 update(null, CU.TTL_ETERNAL, CU.EXPIRE_TIME_ETERNAL, newVer);
+                 update(null, CU.TTL_ETERNAL, CU.EXPIRE_TIME_ETERNAL, newVer, 
true);
  
                  assert newSysTtl == CU.TTL_NOT_CHANGED;
                  assert newSysExpireTime == CU.EXPIRE_TIME_CALCULATE;
@@@ -2298,83 -2647,51 +2381,55 @@@
      }
  
      /** {@inheritDoc} */
-     @Override public boolean clear(GridCacheVersion ver, boolean readers,
-         @Nullable CacheEntryPredicate[] filter) throws IgniteCheckedException 
{
-         boolean ret;
-         boolean rmv;
-         boolean marked;
- 
-         while (true) {
-             ret = false;
-             rmv = false;
-             marked = false;
- 
-             // For optimistic check.
-             GridCacheVersion startVer = null;
- 
-             if (!F.isEmptyOrNulls(filter)) {
-                 synchronized (this) {
-                     startVer = this.ver;
-                 }
- 
-                 if (!cctx.isAll(this, filter))
-                     return false;
-             }
- 
-             synchronized (this) {
-                 if (startVer != null && !startVer.equals(this.ver))
-                     // Version has changed since filter checking.
-                     continue;
- 
-                 CacheObject val = saveValueForIndexUnlocked();
- 
-                 try {
-                     if ((!hasReaders() || readers)) {
-                         // markObsolete will clear the value.
-                         if (!(marked = markObsolete0(ver, true, null))) {
-                             if (log.isDebugEnabled())
-                                 log.debug("Entry could not be marked obsolete 
(it is still used): " + this);
+     @Override public boolean clear(GridCacheVersion ver, boolean readers) 
throws IgniteCheckedException {
+         synchronized (this) {
+             if (obsolete())
+                 return false;
  
-                             break;
-                         }
+             CacheObject val = saveValueForIndexUnlocked();
  
-                         clearReaders();
-                     }
-                     else {
+             try {
+                 if ((!hasReaders() || readers)) {
+                     // markObsolete will clear the value.
+                     if (!(markObsolete0(ver, true, null))) {
                          if (log.isDebugEnabled())
-                             log.debug("Entry could not be marked obsolete (it 
still has readers): " + this);
+                             log.debug("Entry could not be marked obsolete (it 
is still used): " + this);
  
-                         break;
+                         return false;
                      }
+ 
+                     clearReaders();
                  }
-                 catch (GridCacheEntryRemovedException ignore) {
+                 else {
                      if (log.isDebugEnabled())
-                         log.debug("Got removed entry when clearing (will 
simply return): " + this);
- 
-                     ret = true;
+                         log.debug("Entry could not be marked obsolete (it 
still has readers): " + this);
  
-                     break;
+                     return false;
                  }
+             }
+             catch (GridCacheEntryRemovedException ignore) {
+                 assert false;
  
-                 if (log.isDebugEnabled())
-                     log.debug("Entry has been marked obsolete: " + this);
+                 return false;
+             }
+ 
+             if (log.isDebugEnabled())
+                 log.debug("Entry has been marked obsolete: " + this);
  
 -            clearIndex(val);
 +                removeValue(val, ver);
 +
 +                ret = true;
 +                rmv = true;
  
 -            releaseSwap();
 +                break;
 +            }
          }
  
-         if (marked)
-             onMarkedObsolete();
+         onMarkedObsolete();
  
-         if (rmv)
-             cctx.cache().removeEntry(this); // Clear cache.
+         cctx.cache().removeEntry(this); // Clear cache.
  
-         return ret;
+         return true;
      }
  
      /** {@inheritDoc} */
@@@ -2913,10 -3266,10 +2963,10 @@@
                  val = 
cctx.kernalContext().cacheObjects().prepareForCache(val, cctx);
  
                  if (val != null)
 -                    updateIndex(val, expTime, ver, null);
 +                    storeValue(val, expTime, ver);
  
                  // Version does not change for load ops.
-                 update(val, expTime, ttl, ver);
+                 update(val, expTime, ttl, ver, true);
  
                  boolean skipQryNtf = false;
  
@@@ -3008,10 -3370,10 +3067,10 @@@
          throws IgniteCheckedException, GridCacheEntryRemovedException {
          boolean isNew = isStartVersion();
  
 -        CacheObject val = isNew ? unswap(true) : 
rawGetOrUnmarshalUnlocked(false);
 +        CacheObject val = isNew ? unswap(true) : this.val;
  
-         return new 
GridCachePlainVersionedEntry<>(key.value(cctx.cacheObjectContext(), true),
-             CU.value(val, cctx, true),
+         return new 
GridCachePlainVersionedEntry<>(cctx.unwrapBinaryIfNeeded(key, keepBinary, true),
+             cctx.unwrapBinaryIfNeeded(val, keepBinary, true),
              ttlExtras(),
              expireTimeExtras(),
              ver.conflictVersion(),
@@@ -3489,12 -3871,12 +3550,12 @@@
              CacheObject val;
  
              if (tx != null) {
-                 GridTuple<CacheObject> peek = tx.peek(cctx, false, key, null);
+                 GridTuple<CacheObject> peek = tx.peek(cctx, false, key);
  
 -                val = peek == null ? rawGetOrUnmarshal(false) : peek.get();
 +                val = peek == null ? rawGet() : peek.get();
              }
              else
 -                val = rawGetOrUnmarshal(false);
 +                val = rawGet();
  
              return new 
CacheEntryImpl<>(key.<K>value(cctx.cacheObjectContext(), false),
                  CU.<V>value(val, cctx, false), ver);

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 97acf19,5214078..0ca9b21
mode 100644,100755..100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@@ -140,7 -139,7 +141,8 @@@ import static org.apache.ignite.configu
  import static org.apache.ignite.configuration.DeploymentMode.ISOLATED;
  import static org.apache.ignite.configuration.DeploymentMode.PRIVATE;
  import static org.apache.ignite.configuration.DeploymentMode.SHARED;
 +import static org.apache.ignite.internal.IgniteComponentType.INDEXING;
+ import static org.apache.ignite.events.EventType.EVT_NODE_JOINED;
  import static org.apache.ignite.internal.IgniteComponentType.JTA;
  import static 
org.apache.ignite.internal.IgniteNodeAttributes.ATTR_CONSISTENCY_CHECK_SKIPPED;
  import static org.apache.ignite.internal.IgniteNodeAttributes.ATTR_TX_CONFIG;
@@@ -1298,12 -1300,10 +1321,14 @@@ public class GridCacheProcessor extend
          GridCacheDrManager drMgr = 
pluginMgr.createComponent(GridCacheDrManager.class);
          CacheStoreManager storeMgr = 
pluginMgr.createComponent(CacheStoreManager.class);
  
 +        boolean cacheIndexingEnabled = INDEXING.inClassPath() && 
GridQueryProcessor.isEnabled(cfg);
 +
 +        IgniteCacheOffheapManager offheapMgr = new 
IgniteCacheOffheapManager(cacheIndexingEnabled);
 +
          storeMgr.initialize(cfgStore, sesHolders);
  
+         boolean affNode = CU.affinityNode(ctx.discovery().localNode(), 
cfg.getNodeFilter());
+ 
          GridCacheContext<?, ?> cacheCtx = new GridCacheContext(
              ctx,
              sharedCtx,
@@@ -1811,10 -1831,8 +1858,11 @@@
          GridCacheVersionManager verMgr = new GridCacheVersionManager();
          GridCacheDeploymentManager depMgr = new GridCacheDeploymentManager();
          GridCachePartitionExchangeManager exchMgr = new 
GridCachePartitionExchangeManager();
 +        IgniteCacheDatabaseSharedManager dbMgr = new 
IgniteCacheDatabaseSharedManager();
 +        IgnitePageStoreManager pageStoreMgr = 
ctx.plugins().createComponent(IgnitePageStoreManager.class);
 +
          GridCacheIoManager ioMgr = new GridCacheIoManager();
+         CacheAffinitySharedManager topMgr = new CacheAffinitySharedManager();
  
          CacheJtaManagerAdapter jta = JTA.createOptional();
  
@@@ -1823,10 -1841,9 +1871,11 @@@
              tm,
              verMgr,
              mvccMgr,
 +            dbMgr,
 +            pageStoreMgr,
              depMgr,
              exchMgr,
+             topMgr,
              ioMgr,
              jta,
              storeSesLsnrs

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProxyImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
index 0136b82,01ca9f7..30db9dd
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
@@@ -87,12 -85,9 +87,15 @@@ public class GridCacheSharedContext<K, 
      /** Deployment manager. */
      private GridCacheDeploymentManager<K, V> depMgr;
  
 +    /** Database manager. */
 +    private IgniteCacheDatabaseSharedManager dbMgr;
 +
 +    /** Page store manager. */
 +    private IgnitePageStoreManager pageStoreMgr;
 +
+     /** Affinity manager. */
+     private CacheAffinitySharedManager affMgr;
+ 
      /** Cache contexts map. */
      private ConcurrentMap<Integer, GridCacheContext<K, V>> ctxMap;
  
@@@ -118,17 -114,16 +122,18 @@@
          IgniteTxManager txMgr,
          GridCacheVersionManager verMgr,
          GridCacheMvccManager mvccMgr,
 +        IgniteCacheDatabaseSharedManager dbMgr,
 +        IgnitePageStoreManager pageStoreMgr,
          GridCacheDeploymentManager<K, V> depMgr,
          GridCachePartitionExchangeManager<K, V> exchMgr,
+         CacheAffinitySharedManager<K, V> affMgr,
          GridCacheIoManager ioMgr,
          CacheJtaManagerAdapter jtaMgr,
          Collection<CacheStoreSessionListener> storeSesLsnrs
      ) {
          this.kernalCtx = kernalCtx;
  
-         setManagers(mgrs, txMgr, jtaMgr, verMgr, mvccMgr, dbMgr, 
pageStoreMgr, depMgr, exchMgr, ioMgr);
 -        setManagers(mgrs, txMgr, jtaMgr, verMgr, mvccMgr, depMgr, exchMgr, 
affMgr, ioMgr);
++        setManagers(mgrs, txMgr, jtaMgr, verMgr, mvccMgr, dbMgr, 
pageStoreMgr, depMgr, exchMgr, affMgr, ioMgr);
  
          this.storeSesLsnrs = storeSesLsnrs;
  
@@@ -170,10 -165,9 +175,11 @@@
              jtaMgr,
              verMgr,
              mvccMgr,
 +            dbMgr,
 +            pageStoreMgr,
              new GridCacheDeploymentManager<K, V>(),
              new GridCachePartitionExchangeManager<K, V>(),
+             affMgr,
              ioMgr);
  
          this.mgrs = mgrs;
@@@ -210,10 -205,9 +217,11 @@@
          CacheJtaManagerAdapter jtaMgr,
          GridCacheVersionManager verMgr,
          GridCacheMvccManager mvccMgr,
 +        IgniteCacheDatabaseSharedManager dbMgr,
 +        IgnitePageStoreManager pageStoreMgr,
          GridCacheDeploymentManager<K, V> depMgr,
          GridCachePartitionExchangeManager<K, V> exchMgr,
+         CacheAffinitySharedManager affMgr,
          GridCacheIoManager ioMgr) {
          this.mvccMgr = add(mgrs, mvccMgr);
          this.verMgr = add(mgrs, verMgr);

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java
index 8907a9a,7901105..fded406
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java
@@@ -32,8 -32,10 +32,9 @@@ import java.util.concurrent.ConcurrentM
  import javax.cache.Cache;
  import org.apache.ignite.IgniteCheckedException;
  import org.apache.ignite.IgniteException;
+ import org.apache.ignite.cache.CacheMemoryMode;
  import org.apache.ignite.internal.managers.swapspace.GridSwapSpaceManager;
  import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 -import 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtInvalidPartitionException;
  import 
org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager;
  import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
  import 
org.apache.ignite.internal.processors.cache.version.GridCacheVersionAware;

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteInternalCache.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteInternalCache.java
index 489d2de,5294f6a..188eec0
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteInternalCache.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteInternalCache.java
@@@ -1536,16 -1548,46 +1537,38 @@@ public interface IgniteInternalCache<K
       *
       * @return Cache metrics.
       */
-     public CacheMetrics metrics();
+     public CacheMetrics clusterMetrics();
  
      /**
-      * Gets metrics (statistics) for this cache.
+      * Gets cluster group metrics (statistics) for this cache.
       *
+      * @param grp Cluster group.
       * @return Cache metrics.
       */
-     public CacheMetricsMXBean mxBean();
+     public CacheMetrics clusterMetrics(ClusterGroup grp);
+ 
+     /**
+      * Gets local metrics (statistics) for this cache.
+      *
+      * @return Cache metrics.
+      */
+     public CacheMetrics localMetrics();
+ 
+     /**
+      * Gets whole cluster metrics (statistics) for this cache.
+      *
+      * @return Cache metrics.
+      */
+     public CacheMetricsMXBean clusterMxBean();
+ 
+     /**
+      * Gets local metrics (statistics) for this cache.
+      *
+      * @return Cache metrics.
+      */
+     public CacheMetricsMXBean localMxBean();
  
      /**
 -     * Gets size (in bytes) of all entries swapped to disk.
 -     *
 -     * @return Size (in bytes) of all entries swapped to disk.
 -     * @throws IgniteCheckedException In case of error.
 -     */
 -    public long overflowSize() throws IgniteCheckedException;
 -
 -    /**
       * Gets number of cache entries stored in off-heap memory.
       *
       * @return Number of cache entries stored in off-heap memory.

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java
index ddb8072,faa980e..c6f773b
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java
@@@ -997,9 -1031,13 +1018,15 @@@ public abstract class GridDhtCacheAdapt
                              if (log.isDebugEnabled())
                                  log.debug("Got removed entry: " + entry);
                          }
+                         catch (GridDhtInvalidPartitionException e) {
+                             if (log.isDebugEnabled())
+                                 log.debug("Got 
GridDhtInvalidPartitionException: " + e);
+ 
+                             break;
+                         }
                      }
 +
 +                    entry.updateTtl(vers.get(i), ttl);
                  }
                  finally {
                      if (entry != null)

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheEntry.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheEntry.java
index 56a8501,ab51bdb..f29568f
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheEntry.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheEntry.java
@@@ -577,11 -577,18 +577,11 @@@ public class GridDhtCacheEntry extends 
                  if (log.isDebugEnabled())
                      log.debug("Entry has been marked obsolete: " + this);
  
 -                clearIndex(prev);
 +                removeValue(prev, ver);
  
                  // Give to GC.
-                 update(null, 0L, 0L, ver);
+                 update(null, 0L, 0L, ver, true);
  
 -                if (swap) {
 -                    releaseSwap();
 -
 -                    if (log.isDebugEnabled())
 -                        log.debug("Entry has been cleared from swap storage: 
" + this);
 -                }
 -
                  if (cctx.store().isLocal())
                      cctx.store().remove(null, key);
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
index 4384b27,f0ce6d1..7087ec6
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java
@@@ -29,9 -29,7 +29,8 @@@ import java.util.Map
  import java.util.Set;
  import java.util.UUID;
  import java.util.concurrent.ConcurrentMap;
- import java.util.concurrent.locks.ReentrantReadWriteLock;
  import org.apache.ignite.IgniteCheckedException;
 +import org.apache.ignite.IgniteException;
  import org.apache.ignite.IgniteLogger;
  import org.apache.ignite.cluster.ClusterNode;
  import org.apache.ignite.events.DiscoveryEvent;

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxLocalAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
index ca3b799,b8fee2d..3a93026
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
@@@ -360,11 -360,18 +360,14 @@@ public final class GridDhtTxPrepareFutu
                      if (evt && txEntry.op() == TRANSFORM)
                          entryProc = F.first(txEntry.entryProcessors()).get1();
  
+                     final boolean keepBinary = txEntry.keepBinary();
+ 
                      CacheObject val = cached.innerGet(
+                         null,
                          tx,
 -                        /*swap*/true,
                          readThrough,
 -                        /*fail fast*/false,
 -                        /*unmarshal*/true,
                          /*metrics*/retVal,
                          /*event*/evt,
 -                        /*tmp*/false,
                          tx.subjectId(),
                          entryProc,
                          tx.resolveTaskName(),

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedSingleGetFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
index 6326c18,013184b..ee3b7da
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
@@@ -1626,10 -1781,15 +1770,11 @@@ public class GridDhtAtomicCache<K, V> e
                      EntryProcessor<Object, Object, Object> entryProcessor = 
req.entryProcessor(i);
  
                      CacheObject old = entry.innerGet(
+                         ver,
                          null,
 -                        /*read swap*/true,
                          /*read through*/true,
 -                        /*fail fast*/false,
 -                        /*unmarshal*/true,
                          /*metrics*/true,
                          /*event*/true,
 -                        /*temporary*/true,
                          req.subjectId(),
                          entryProcessor,
                          taskName,

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionSupplier.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPreloader.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheEntry.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxRemote.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCacheEntry.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
index 205dec6,8bcf564..f283723
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
@@@ -996,7 -881,11 +903,7 @@@ public abstract class GridCacheQueryMan
  
                  iters.add(heapIt);
  
-                 //iters.add(offheapIterator(qry, backups));
 -                if (cctx.isOffHeapEnabled())
 -                    iters.add(offheapIterator(qry, topVer, backups, plc));
 -
 -                if (cctx.swap().swapEnabled())
 -                    iters.add(swapIterator(qry, topVer, backups, plc));
++                iters.add(offheapIterator(qry, topVer, backups, plc));
  
                  it = new CompoundIterator<>(iters);
              }

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheStoreManagerAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
index 3a837e5,17bed0b..57359cf
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
@@@ -1260,11 -1242,19 +1242,13 @@@ public abstract class IgniteTxAdapter e
  
              boolean recordEvt = 
cctx.gridEvents().isRecordable(EVT_CACHE_OBJECT_READ);
  
+             final boolean keepBinary = txEntry.keepBinary();
+ 
              CacheObject cacheVal = txEntry.hasValue() ? txEntry.value() :
 -                txEntry.cached().innerGet(
 -                    null,
 -                    this,
 -                    /*swap*/false,
 +                txEntry.cached().innerGet(this,
                      /*read through*/false,
 -                    /*fail fast*/true,
 -                    /*unmarshal*/true,
                      /*metrics*/metrics,
                      /*event*/recordEvt,
 -                    /*temporary*/true,
                      /*subjId*/subjId,
                      /**closure name */recordEvt ? 
F.first(txEntry.entryProcessors()).get1() : null,
                      resolveTaskName(),

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
index 776f770,71f74a8..76b2b71
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
@@@ -1455,7 -1445,10 +1441,8 @@@ public abstract class IgniteTxLocalAdap
  
                              if (needVer) {
                                  T2<CacheObject, GridCacheVersion> res = 
txEntry.cached().innerGetVersioned(
+                                     null,
                                      this,
 -                                    /*swap*/true,
 -                                    /*unmarshal*/true,
                                      /*update-metrics*/true,
                                      /*event*/!skipVals,
                                      CU.subjectId(this, cctx),
@@@ -1863,7 -1874,10 +1852,8 @@@
  
                                      if (needVer) {
                                          T2<CacheObject, GridCacheVersion> res 
= cached.innerGetVersioned(
+                                             null,
                                              IgniteTxLocalAdapter.this,
 -                                            
/*swap*/cacheCtx.isSwapOrOffheapEnabled(),
 -                                            /*unmarshal*/true,
                                              /**update-metrics*/true,
                                              /*event*/!skipVals,
                                              
CU.subjectId(IgniteTxLocalAdapter.this, cctx),
@@@ -2497,11 -2565,10 +2535,11 @@@
          // First time access.
          if (txEntry == null) {
              while (true) {
-                 GridCacheEntryEx entry = entryEx(cacheCtx, txKey, 
topologyVersion());
+                 GridCacheEntryEx entry = entryEx(cacheCtx, txKey, entryTopVer 
!= null ? entryTopVer : topologyVersion());
  
                  try {
 -                    entry.unswap(false);
 +                    if (retval || transform || hasFilters || (optimistic() && 
serializable()))
 +                        entry.unswap(false);
  
                      // Check if lock is being explicitly acquired by the same 
thread.
                      if (!implicit && 
cctx.kernalContext().config().isCacheSanityCheckEnabled() &&

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/cacheobject/IgniteCacheObjectProcessorImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/test/java/org/apache/ignite/internal/GridAffinityNoCacheSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
index ced9c2f,6e404b4..0a36820
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
@@@ -421,10 -426,16 +421,12 @@@ public class GridCacheTestEntryEx exten
      }
  
      /** @inheritDoc */
-     @Override public CacheObject innerGet(@Nullable IgniteInternalTx tx,
+     @Override public CacheObject innerGet(
+         @Nullable GridCacheVersion ver,
+         @Nullable IgniteInternalTx tx,
 -        boolean readSwap,
          boolean readThrough,
 -        boolean failFast,
 -        boolean unmarshal,
          boolean updateMetrics,
          boolean evt,
 -        boolean tmp,
          UUID subjId,
          Object transformClo,
          String taskName,
@@@ -435,7 -446,10 +437,8 @@@
  
      /** @inheritDoc */
      @Nullable @Override public T2<CacheObject, GridCacheVersion> 
innerGetVersioned(
+         @Nullable GridCacheVersion ver,
          IgniteInternalTx tx,
 -        boolean readSwap,
 -        boolean unmarshal,
          boolean updateMetrics,
          boolean evt,
          UUID subjId,

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearMultiNodeSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
index 5474f57,fb82e20..0bfb759
--- 
a/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
@@@ -64,10 -64,9 +65,11 @@@ public class GridCacheTestContext<K, V
                  new IgniteTxManager(),
                  new GridCacheVersionManager(),
                  new GridCacheMvccManager(),
 +                new IgniteCacheDatabaseSharedManager(),
 +                null,
                  new GridCacheDeploymentManager<K, V>(),
                  new GridCachePartitionExchangeManager<K, V>(),
+                 new CacheAffinitySharedManager<K, V>(),
                  new GridCacheIoManager(),
                  new CacheNoopJtaManager(),
                  null

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteKernalSelfTestSuite.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexingSpiAbstractSelfTest.java
----------------------------------------------------------------------
diff --cc 
modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexingSpiAbstractSelfTest.java
index 7a0e256,0da71c8..c6a8921
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexingSpiAbstractSelfTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexingSpiAbstractSelfTest.java
@@@ -229,11 -226,30 +228,30 @@@ public abstract class GridIndexingSpiAb
          assertFalse(spi.query(typeAB.space(), "select * from A.B", 
Collections.emptySet(), typeAB, null).hasNext());
          assertFalse(spi.query(typeBA.space(), "select * from B.A", 
Collections.emptySet(), typeBA, null).hasNext());
  
+         assertFalse(spi.query(typeBA.space(), "select * from B.A, A.B, A.A",
+             Collections.emptySet(), typeBA, null).hasNext());
+ 
+         try {
+             spi.query(typeBA.space(), "select aa.*, ab.*, ba.* from A.A aa, 
A.B ab, B.A ba",
+                 Collections.emptySet(), typeBA, null).hasNext();
+ 
+             fail("Enumerations of aliases in select block must be 
prohibited");
+         }
+         catch (IgniteCheckedException e) {
+             // all fine
+         }
+ 
+         assertFalse(spi.query(typeAB.space(), "select ab.* from A.B ab",
+             Collections.emptySet(), typeAB, null).hasNext());
+ 
+         assertFalse(spi.query(typeBA.space(), "select   ba.*   from B.A  as 
ba",
+             Collections.emptySet(), typeBA, null).hasNext());
+ 
          // Nothing to remove.
 -        spi.remove("A", key(1), aa(1, "", 10));
 -        spi.remove("B", key(1), ba(1, "", 10, true));
 +        spi.remove("A", key(1), 0, aa(1, "", 10), null);
 +        spi.remove("B", key(1), 0, ba(1, "", 10, true), null);
  
 -        spi.store(typeAA.space(), typeAA, key(1), aa(1, "Vasya", 10), 
"v1".getBytes(), 0);
 +        spi.store(typeAA.space(), typeAA, key(1), 0, aa(1, "Vasya", 10), new 
GridCacheVersion(), 0);
  
          assertEquals(1, spi.size(typeAA.space(), typeAA, null));
          assertEquals(0, spi.size(typeAB.space(), typeAB, null));

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/modules/zookeeper/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/1643a7cc/pom.xml
----------------------------------------------------------------------
diff --cc pom.xml
index e2ae0e5,3a4a268..cbc5320
--- a/pom.xml
+++ b/pom.xml
@@@ -429,8 -431,8 +431,9 @@@
          <profile>
              <id>benchmarks</id>
              <modules>
+                 <module>modules/benchmarks</module>
                  <module>modules/yardstick</module>
 +                <module>modules/benchmarks</module>
              </modules>
          </profile>
  

Reply via email to