ignite-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From voze...@apache.org
Subject [1/3] ignite git commit: Optimizations.
Date Mon, 25 Apr 2016 09:40:19 GMT
Repository: ignite
Updated Branches:
  refs/heads/ignite-2523-1 5cffa794c -> 0f282b2e6


Optimizations.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/6a48b48f
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/6a48b48f
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/6a48b48f

Branch: refs/heads/ignite-2523-1
Commit: 6a48b48f6ca30a3447fe1beb0d1bb4ffd2fb0c84
Parents: 5cffa79
Author: vozerov-gridgain <vozerov@gridgain.com>
Authored: Mon Apr 25 12:15:19 2016 +0300
Committer: vozerov-gridgain <vozerov@gridgain.com>
Committed: Mon Apr 25 12:15:19 2016 +0300

----------------------------------------------------------------------
 .../dht/atomic/GridDhtAtomicCache.java          | 30 ++++++++++++++++----
 1 file changed, 24 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/6a48b48f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------
diff --git 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
index f412dfa..34533e9 100644
--- 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
@@ -1097,10 +1097,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K,
V> {
                 conflictRmvVer = ctx.versions().next(dcId);
         }
 
-        // TODO: Optimize - no array allocs!
-        CacheEntryPredicate[] filters = CU.filterArray(filter);
-
-        if (conflictPutVal == null && conflictRmvVer == null && !isFastMap(filters,
op)) {
+        if (conflictPutVal == null && conflictRmvVer == null && !isFastMap(filter,
op)) {
             return new GridNearAtomicSingleUpdateFuture(
                 ctx,
                 this,
@@ -1135,7 +1132,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K,
V> {
                 retval,
                 false,
                 opCtx != null ? opCtx.expiry() : null,
-                filters,
+                CU.filterArray(filter),
                 ctx.subjectIdPerCall(null, opCtx),
                 ctx.kernalContext().job().currentTaskNameHash(),
                 opCtx != null && opCtx.skipStore(),
@@ -1153,7 +1150,28 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K,
V> {
      * @return {@code True} if fast-map.
      */
     public boolean isFastMap(CacheEntryPredicate[] filters, GridCacheOperation op) {
-        return F.isEmpty(filters) && op != TRANSFORM && ctx.config().getWriteSynchronizationMode()
== FULL_SYNC &&
+        return F.isEmpty(filters) && isFastMap0(op);
+    }
+
+    /**
+     * Whether this is fast-map operation.
+     *
+     * @param filter Filter.
+     * @param op Operation.
+     * @return {@code True} if fast-map.
+     */
+    public boolean isFastMap(@Nullable CacheEntryPredicate filter, GridCacheOperation op)
{
+        return filter == null && isFastMap0(op);
+    }
+
+    /**
+     * Internal fast-map routine.
+     *
+     * @param op Operation.
+     * @return Result.
+     */
+    private boolean isFastMap0(GridCacheOperation op) {
+        return op != TRANSFORM && ctx.config().getWriteSynchronizationMode() == FULL_SYNC
&&
             ctx.config().getAtomicWriteOrderMode() == CLOCK &&
             !(ctx.writeThrough() && ctx.config().getInterceptor() != null);
     }


Mime
View raw message