You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by av...@apache.org on 2015/07/23 18:04:50 UTC

[17/20] incubator-ignite git commit: ignite-630

ignite-630


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

Branch: refs/heads/master
Commit: df0c9d56703a5068c4e312ac68a58a6f5f2aa02d
Parents: 79ba5a7
Author: Anton Vinogradov <av...@gridgain.com>
Authored: Fri Jul 17 20:14:40 2015 +0300
Committer: Anton Vinogradov <av...@gridgain.com>
Committed: Fri Jul 17 20:14:40 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheMapEntry.java     |   4 +-
 .../extras/GridCacheAttributesEntryExtras.java  |   2 +-
 .../GridCacheAttributesMvccEntryExtras.java     |   2 +-
 ...dCacheAttributesMvccObsoleteEntryExtras.java |   2 +-
 ...cheAttributesMvccObsoleteTtlEntryExtras.java |   2 +-
 .../GridCacheAttributesMvccTtlEntryExtras.java  |   2 +-
 .../GridCacheAttributesObsoleteEntryExtras.java |   2 +-
 ...idCacheAttributesObsoleteTtlEntryExtras.java |   2 +-
 .../GridCacheAttributesTtlEntryExtras.java      |   2 +-
 .../GridMetadataAwareAdapterLoadSelfTest.java   | 135 +++++++++++++++++++
 10 files changed, 145 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/df0c9d56/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------
diff --git 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
index 091659f..f85a18b 100644
--- 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
@@ -75,8 +75,8 @@ public abstract class GridCacheMapEntry extends GridMetadataAwareAdapter impleme
      * <li>Each nested object should be analyzed in the same way as above.</li>
      * </ul>
      */
-    // 7 * 8 /*references*/  + 2 * 8 /*long*/  + 1 * 4 /*int*/ + 1 * 1 /*byte*/ = 77
-    private static final int SIZE_OVERHEAD = 77 /*entry*/ + 32 /* version */ + 4 * 7 /* key + val */;
+    // 7 * 8 /*references*/  + 2 * 8 /*long*/  + 1 * 4 /*int*/ + 1 * 1 /*byte*/ + array at parent = 85
+    private static final int SIZE_OVERHEAD = 85 /*entry*/ + 32 /* version */ + 4 * 7 /* key + val */;
 
     /** Static logger to avoid re-creation. Made static for test purpose. */
     protected static final AtomicReference<IgniteLogger> logRef = new AtomicReference<>();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/df0c9d56/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesEntryExtras.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesEntryExtras.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesEntryExtras.java
index 911a1db..75ff973 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesEntryExtras.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesEntryExtras.java
@@ -49,7 +49,7 @@ public class GridCacheAttributesEntryExtras extends GridCacheEntryExtrasAdapter
 
     /** {@inheritDoc} */
     @Override public int size() {
-        return 8;
+        return 0;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/df0c9d56/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesMvccEntryExtras.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesMvccEntryExtras.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesMvccEntryExtras.java
index cb36999..0899c97 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesMvccEntryExtras.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesMvccEntryExtras.java
@@ -69,7 +69,7 @@ public class GridCacheAttributesMvccEntryExtras extends GridCacheEntryExtrasAdap
 
     /** {@inheritDoc} */
     @Override public int size() {
-        return 16;
+        return 8;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/df0c9d56/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesMvccObsoleteEntryExtras.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesMvccObsoleteEntryExtras.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesMvccObsoleteEntryExtras.java
index a0b9b25..80e0b0a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesMvccObsoleteEntryExtras.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesMvccObsoleteEntryExtras.java
@@ -87,7 +87,7 @@ public class GridCacheAttributesMvccObsoleteEntryExtras extends GridCacheEntryEx
 
     /** {@inheritDoc} */
     @Override public int size() {
-        return 24;
+        return 16;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/df0c9d56/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesMvccObsoleteTtlEntryExtras.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesMvccObsoleteTtlEntryExtras.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesMvccObsoleteTtlEntryExtras.java
index c7727c7..bc55fb1 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesMvccObsoleteTtlEntryExtras.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesMvccObsoleteTtlEntryExtras.java
@@ -114,7 +114,7 @@ public class GridCacheAttributesMvccObsoleteTtlEntryExtras extends GridCacheEntr
 
     /** {@inheritDoc} */
     @Override public int size() {
-        return 40;
+        return 32;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/df0c9d56/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesMvccTtlEntryExtras.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesMvccTtlEntryExtras.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesMvccTtlEntryExtras.java
index aa5df67..a49bd63 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesMvccTtlEntryExtras.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesMvccTtlEntryExtras.java
@@ -98,7 +98,7 @@ public class GridCacheAttributesMvccTtlEntryExtras extends GridCacheEntryExtrasA
 
     /** {@inheritDoc} */
     @Override public int size() {
-        return 32;
+        return 24;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/df0c9d56/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesObsoleteEntryExtras.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesObsoleteEntryExtras.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesObsoleteEntryExtras.java
index 47c46d2..a8e7b31 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesObsoleteEntryExtras.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesObsoleteEntryExtras.java
@@ -68,7 +68,7 @@ public class GridCacheAttributesObsoleteEntryExtras extends GridCacheEntryExtras
 
     /** {@inheritDoc} */
     @Override public int size() {
-        return 16;
+        return 8;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/df0c9d56/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesObsoleteTtlEntryExtras.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesObsoleteTtlEntryExtras.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesObsoleteTtlEntryExtras.java
index 42cff5d..7feb455 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesObsoleteTtlEntryExtras.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesObsoleteTtlEntryExtras.java
@@ -97,7 +97,7 @@ public class GridCacheAttributesObsoleteTtlEntryExtras extends GridCacheEntryExt
 
     /** {@inheritDoc} */
     @Override public int size() {
-        return 32;
+        return 24;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/df0c9d56/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesTtlEntryExtras.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesTtlEntryExtras.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesTtlEntryExtras.java
index cf2dc45..eebf986 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesTtlEntryExtras.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/extras/GridCacheAttributesTtlEntryExtras.java
@@ -79,7 +79,7 @@ public class GridCacheAttributesTtlEntryExtras extends GridCacheEntryExtrasAdapt
 
     /** {@inheritDoc} */
     @Override public int size() {
-        return 24;
+        return 16;
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/df0c9d56/modules/core/src/test/java/org/apache/ignite/lang/GridMetadataAwareAdapterLoadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/lang/GridMetadataAwareAdapterLoadSelfTest.java b/modules/core/src/test/java/org/apache/ignite/lang/GridMetadataAwareAdapterLoadSelfTest.java
new file mode 100644
index 0000000..aaebe1f
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/lang/GridMetadataAwareAdapterLoadSelfTest.java
@@ -0,0 +1,135 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.apache.ignite.lang;
+
+import org.apache.ignite.internal.*;
+import org.apache.ignite.internal.processors.cache.eviction.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.testframework.junits.common.*;
+
+import java.util.*;
+
+/**
+ * Check how much memory and time required to fill 1_000_000 entries with meta.
+ * Do not include this test to suits.
+ */
+public class GridMetadataAwareAdapterLoadSelfTest extends GridCommonAbstractTest {
+    /** Creates test. */
+    public GridMetadataAwareAdapterLoadSelfTest() {
+        super(/*start grid*/false);
+    }
+
+    private static final String KEY_VALUE = "test";
+
+    /**
+     * Junit.
+     *
+     * @throws Exception
+     */
+    public void test() throws Exception {
+        String[] dic = new String[1_000_000];
+
+        for (int i = 0; i < 1_000_000; i++)
+            dic[i] = String.valueOf(i);
+
+        doTest(-1, "all 10 keys     ", dic);
+        doTest(0, "all 3 keys      ", dic);
+        doTest(1, "first key only  ", dic);
+        doTest(2, "second key only ", dic);
+        doTest(3, "third key only  ", dic);
+        doTest(4, "tenth key only  ", dic);
+        doTest(5, "random (1-3) key", dic);
+        doTest(6, "no meta         ", dic);
+    }
+
+    public void doTest(int c, String message, String[] dic) throws IgniteInterruptedCheckedException {
+        UUID[] uuids = new UUID[10];
+
+        for (int j = 0; j < 10; j++)
+            uuids[j] = UUID.randomUUID();
+
+        for (int t = 0; t < 2; t++) {
+            long mTotal = 0;
+            long tTotal = 0;
+
+            for (int k = 0; k < 20; k++) {
+                System.gc();
+
+                U.sleep(500);
+
+                GridCacheMockEntry[] entries = new GridCacheMockEntry[1_000_000];
+
+                long mBefore = Runtime.getRuntime().freeMemory();
+                long tBefore = System.currentTimeMillis();
+
+                for (int i = 0; i < 1_000_000; i++) {
+                    GridCacheMockEntry<String, String> entry = new GridCacheMockEntry<>(KEY_VALUE);
+                    switch (c) {//commented lines for old API
+                        case -1:
+                            for (int j = 9; j >= 0; j--)
+                                //entry.addMeta(uuids[j], dic[i]);
+                            entry.addMeta(j, dic[i]);
+                            break;
+                        case 0:
+                            for (int j = 2; j >= 0; j--)
+                                //entry.addMeta(uuids[j], dic[i]);
+                            entry.addMeta(j, dic[i]);
+                            break;
+                        case 1:
+                            //entry.addMeta(uuids[0], dic[i]);
+                            entry.addMeta(0, dic[i]);
+                            break;
+                        case 2:
+                            //entry.addMeta(uuids[1], dic[i]);
+                            entry.addMeta(1, dic[i]);
+                            break;
+                        case 3:
+                            //entry.addMeta(uuids[2], dic[i]);
+                            entry.addMeta(2, dic[i]);
+                            break;
+                        case 4:
+                            //entry.addMeta(uuids[9], dic[i]);
+                            entry.addMeta(9, dic[i]);
+                            break;
+                        case 5:
+                            //entry.addMeta(uuids[i % 3], dic[i]);
+                            entry.addMeta(i % 3, dic[i]);
+                            break;
+                        case 6:
+
+                            break;
+                    }
+
+                    entries[i] = entry;
+                }
+
+                long mAfter = Runtime.getRuntime().freeMemory();
+                long tAfter = System.currentTimeMillis();
+
+                if (k >= 10) {
+                    mTotal += (mBefore - mAfter);
+                    tTotal += (tAfter - tBefore);
+                }
+            }
+
+            log.info(message + " [time=" + tTotal + " ms, memory=" + mTotal / 1_000_000_0 + "." + mTotal % 1_000_000_0 + " mb]");
+        }
+
+        log.info(" ");
+    }
+}