You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2015/12/26 12:18:28 UTC

ignite git commit: IGNITE-2234: Implemented.

Repository: ignite
Updated Branches:
  refs/heads/ignite-2234 [created] b09b4a333


IGNITE-2234: Implemented.


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

Branch: refs/heads/ignite-2234
Commit: b09b4a333c9debd1997ede10333c8aa2ce436314
Parents: 18c413c
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Sat Dec 26 14:19:02 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Sat Dec 26 14:19:02 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheMvccManager.java  | 27 +++++++++++---------
 1 file changed, 15 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/b09b4a33/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java
index dbc6992..e2d23e1 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java
@@ -76,12 +76,12 @@ public class GridCacheMvccManager extends GridCacheSharedManagerAdapter {
     private static final int MAX_REMOVED_LOCKS = 10240;
 
     /** Pending locks per thread. */
-    private final ThreadLocal<LinkedList<GridCacheMvccCandidate>> pending =
-        new ThreadLocal<LinkedList<GridCacheMvccCandidate>>() {
-            @Override protected LinkedList<GridCacheMvccCandidate> initialValue() {
-                return new LinkedList<>();
-            }
-        };
+    private final ThreadLocal<ArrayList<GridCacheMvccCandidate>> pending =
+        new ThreadLocal<ArrayList<GridCacheMvccCandidate>>() {
+        @Override protected ArrayList<GridCacheMvccCandidate> initialValue() {
+            return new ArrayList<>();
+        }
+    };
 
     /** Pending near local locks and topology version per thread. */
     private ConcurrentMap<Long, GridCacheExplicitLockSpan> pendingExplicit;
@@ -126,7 +126,7 @@ public class GridCacheMvccManager extends GridCacheSharedManagerAdapter {
     @GridToStringExclude
     private final GridCacheMvccCallback cb = new GridCacheMvccCallback() {
         /** {@inheritDoc} */
-        @SuppressWarnings({"unchecked"})
+        @SuppressWarnings({"unchecked", "SynchronizationOnLocalVariableOrMethodParameter"})
         @Override public void onOwnerChanged(GridCacheEntryEx entry, GridCacheMvccCandidate prev,
             GridCacheMvccCandidate owner) {
             assert entry != null;
@@ -263,6 +263,7 @@ public class GridCacheMvccManager extends GridCacheSharedManagerAdapter {
     /**
      * @return Collection of active futures.
      */
+    @SuppressWarnings("SynchronizationOnLocalVariableOrMethodParameter")
     public Collection<GridCacheFuture<?>> activeFutures() {
         ArrayList<GridCacheFuture<?>> col = new ArrayList<>();
 
@@ -598,7 +599,7 @@ public class GridCacheMvccManager extends GridCacheSharedManagerAdapter {
      * @param futId Future ID.
      * @return Future.
      */
-    @SuppressWarnings({"unchecked"})
+    @SuppressWarnings({"unchecked", "SynchronizationOnLocalVariableOrMethodParameter"})
     @Nullable public GridCacheMvccFuture<?> mvccFuture(GridCacheVersion ver, IgniteUuid futId) {
         Collection<GridCacheMvccFuture<?>> futs = this.mvccFuts.get(ver);
 
@@ -725,12 +726,14 @@ public class GridCacheMvccManager extends GridCacheSharedManagerAdapter {
         if (cacheCtx.isNear() || cand.singleImplicit())
             return true;
 
-        LinkedList<GridCacheMvccCandidate> queue = pending.get();
+        ArrayList<GridCacheMvccCandidate> queue = pending.get();
 
         GridCacheMvccCandidate prev = null;
 
-        if (!queue.isEmpty())
-            prev = queue.getLast();
+        int queueSize = queue.size();
+
+        if (queueSize > 0)
+            prev = queue.get(queueSize - 1);
 
         queue.add(cand);
 
@@ -750,7 +753,7 @@ public class GridCacheMvccManager extends GridCacheSharedManagerAdapter {
      * Reset MVCC context.
      */
     public void contextReset() {
-        pending.set(new LinkedList<GridCacheMvccCandidate>());
+        pending.get().clear();
     }
 
     /**