You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2017/05/29 07:46:15 UTC
[05/11] 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-5267
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) {