You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2017/05/29 07:56:32 UTC

[05/12] ignite git commit: ignite-gg-12163 fix concurrency lvl for rw lock by default

ignite-gg-12163 fix concurrency lvl for rw lock by default


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

Branch: refs/heads/ignite-5075-pds
Commit: 68ee06304209541a8a1fafaab8a149002d70022d
Parents: 59b88f5
Author: Dmitriy Govorukhin <dm...@gmail.com>
Authored: Fri May 26 11:35:31 2017 +0300
Committer: Dmitriy Govorukhin <dm...@gmail.com>
Committed: Fri May 26 11:35:31 2017 +0300

----------------------------------------------------------------------
 .../pagemem/impl/PageMemoryNoStoreImpl.java     |  3 ++-
 .../ignite/internal/util/IgniteUtils.java       | 23 ++++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/68ee0630/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java
index b205991..dc72482 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java
@@ -37,6 +37,7 @@ import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
 import org.apache.ignite.internal.processors.cache.database.MemoryMetricsImpl;
 import org.apache.ignite.internal.processors.cache.database.tree.io.PageIO;
 import org.apache.ignite.internal.util.GridUnsafe;
+import org.apache.ignite.internal.util.IgniteUtils;
 import org.apache.ignite.internal.util.OffheapReadWriteLock;
 import org.apache.ignite.internal.util.offheap.GridOffHeapOutOfMemoryException;
 import org.apache.ignite.internal.util.typedef.internal.U;
@@ -148,7 +149,7 @@ public class PageMemoryNoStoreImpl implements PageMemory {
     /** Concurrency lvl. */
     private final int lockConcLvl = IgniteSystemProperties.getInteger(
         IGNITE_OFFHEAP_LOCK_CONCURRENCY_LEVEL,
-        Runtime.getRuntime().availableProcessors() * 4
+        IgniteUtils.nearestPow2(Runtime.getRuntime().availableProcessors() * 4)
     );
 
     /** */

http://git-wip-us.apache.org/repos/asf/ignite/blob/68ee0630/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index d57c0f1..555238f 100755
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -10186,6 +10186,29 @@ public abstract class IgniteUtils {
     }
 
     /**
+     * @param x X.
+     */
+    public static int nearestPow2(int x) {
+        return nearestPow2(x, true);
+    }
+
+    /**
+     * @param x X.
+     * @param less Less.
+     */
+    public static int nearestPow2(int x, boolean less) {
+        int y = 1;
+
+        while (y < x)
+            y *= 2;
+
+        if (less)
+            y /= 2;
+
+        return y;
+    }
+
+    /**
      * @param lock Lock.
      */
     public static ReentrantReadWriteLockTracer lockTracer(ReadWriteLock lock) {