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/11/18 14:40:03 UTC

[29/50] [abbrv] ignite git commit: IGNITE-1917: Simplifying schema.

IGNITE-1917: Simplifying schema.


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

Branch: refs/heads/ignite-1917
Commit: 8200031066621ab9ea6c83d3b5631fcb9a966845
Parents: acb33a5
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Nov 17 18:02:53 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Nov 17 18:02:53 2015 +0300

----------------------------------------------------------------------
 .../internal/portable/PortableSchema.java       | 35 ++++++--------------
 .../portable/PortableSchemaIntIntMap.java       | 13 +++-----
 2 files changed, 16 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/82000310/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableSchema.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableSchema.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableSchema.java
index b163fea..f970290 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableSchema.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableSchema.java
@@ -17,14 +17,11 @@
 
 package org.apache.ignite.internal.portable;
 
-import org.apache.ignite.internal.util.typedef.internal.U;
-
 import java.io.Externalizable;
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 
@@ -44,12 +41,12 @@ public class PortableSchema implements Externalizable {
     /** Inline flag. */
     private boolean inline;
 
-    /** Map form field ID to order. */
-    private PortableSchemaIntIntMap fastIdToOrder;
-
     /** IDs depending on order. */
     private int[] ids;
 
+    /** Map form field ID to order. */
+    private PortableSchemaIntIntMap idToOrder;
+
     /** ID 1. */
     private int id0;
 
@@ -107,7 +104,7 @@ public class PortableSchema implements Externalizable {
             id6 = iter.hasNext() ? iter.next() : 0;
             id7 = iter.hasNext() ? iter.next() : 0;
 
-            fastIdToOrder = null;
+            idToOrder = null;
         }
         else {
             inline = false;
@@ -115,16 +112,11 @@ public class PortableSchema implements Externalizable {
             id0 = id1 = id2 = id3 = id4 = id5 = id6 = id7 = 0;
 
             ids = new int[fieldIds.size()];
-            HashMap<Integer, Integer> idToOrder = new HashMap<>();
 
-            for (int i = 0; i < fieldIds.size(); i++) {
-                int fieldId = fieldIds.get(i);
+            for (int i = 0; i < fieldIds.size(); i++)
+                ids[i] = fieldIds.get(i);
 
-                ids[i] = fieldId;
-                idToOrder.put(fieldId, i);
-            }
-
-            fastIdToOrder = new PortableSchemaIntIntMap(idToOrder);
+            idToOrder = new PortableSchemaIntIntMap(ids);
         }
     }
 
@@ -213,7 +205,7 @@ public class PortableSchema implements Externalizable {
             return ORDER_NOT_FOUND;
         }
         else
-            return fastIdToOrder.get(id);
+            return idToOrder.get(id);
     }
 
     /** {@inheritDoc} */
@@ -274,16 +266,11 @@ public class PortableSchema implements Externalizable {
             int size = in.readInt();
 
             ids = new int[size];
-            HashMap<Integer, Integer>idToOrder = U.newHashMap(size);
 
-            for (int i = 0; i < size; i++) {
-                int fieldId = in.readInt();
-
-                ids[i] = fieldId;
-                idToOrder.put(fieldId, i);
-            }
+            for (int i = 0; i < size; i++)
+                ids[i] = in.readInt();
 
-            fastIdToOrder = new PortableSchemaIntIntMap(idToOrder);
+            idToOrder = new PortableSchemaIntIntMap(ids);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/82000310/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableSchemaIntIntMap.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableSchemaIntIntMap.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableSchemaIntIntMap.java
index f554b30..8b8f7cf 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableSchemaIntIntMap.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableSchemaIntIntMap.java
@@ -17,8 +17,6 @@
 
 package org.apache.ignite.internal.portable;
 
-import java.util.Map;
-
 /**
  * Map for fast access to field order by ID.
  */
@@ -41,8 +39,8 @@ public class PortableSchemaIntIntMap {
      *
      * @param vals Values.
      */
-    public PortableSchemaIntIntMap(Map<Integer, Integer> vals) {
-        int size = Math.max(nextPowerOfTwo(vals.size()) << 2, MIN_SIZE);
+    public PortableSchemaIntIntMap(int[] vals) {
+        int size = Math.max(nextPowerOfTwo(vals.length) << 2, MIN_SIZE);
 
         assert size > 0;
 
@@ -108,7 +106,7 @@ public class PortableSchemaIntIntMap {
      * @param size Proposed result size.
      * @return Parse result.
      */
-    private static ParseResult parse(Map<Integer, Integer> vals, int size) {
+    private static ParseResult parse(int[] vals, int size) {
         int mask = maskForPowerOfTwo(size);
 
         int totalSize = size * 2;
@@ -116,9 +114,8 @@ public class PortableSchemaIntIntMap {
         int[] data = new int[totalSize];
         int collisions = 0;
 
-        for (Map.Entry<Integer, Integer> val : vals.entrySet()) {
-            int id = val.getKey();
-            int order = val.getValue();
+        for (int order = 0; order < vals.length; order++) {
+            int id = vals[order];
 
             assert id != 0;