You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "abdullah alamoudi (Code Review)" <do...@asterixdb.incubator.apache.org> on 2016/12/05 16:52:25 UTC

Change in asterixdb[master]: Add Linear Hashing Experiment

abdullah alamoudi has uploaded a new change for review.

  https://asterix-gerrit.ics.uci.edu/1375

Change subject: Add Linear Hashing Experiment
......................................................................

Add Linear Hashing Experiment

Change-Id: Iffc251dd5f8825de6543d8118bf9fef76282a1d2
---
M asterixdb/asterix-app/src/test/java/org/apache/asterix/app/data/gen/AInt32FieldValueGenerator.java
M asterixdb/asterix-tools/pom.xml
A asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/DistributionRunner.java
A asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/DistributionSimulator.java
A asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/FieldLinearHashPartitionComputerFactory.java
A asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/SingleTupleFrameAcessor.java
6 files changed, 400 insertions(+), 1 deletion(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/75/1375/1

diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/data/gen/AInt32FieldValueGenerator.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/data/gen/AInt32FieldValueGenerator.java
index 7c6556b..1e1dbe2 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/data/gen/AInt32FieldValueGenerator.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/data/gen/AInt32FieldValueGenerator.java
@@ -132,7 +132,7 @@
     }
 
     @Override
-    public Integer next() throws IOException {
+    public Integer next() {
         generate();
         return value;
     }
@@ -145,6 +145,13 @@
         out.writeInt(value);
     }
 
+    public void write(int value, DataOutput out) throws IOException {
+        if (tagged) {
+            out.writeByte(ATypeTag.SERIALIZED_INT32_TYPE_TAG);
+        }
+        out.writeInt(value);
+    }
+
     @Override
     public Integer get() throws IOException {
         return value;
diff --git a/asterixdb/asterix-tools/pom.xml b/asterixdb/asterix-tools/pom.xml
index c039c48..08988d0 100644
--- a/asterixdb/asterix-tools/pom.xml
+++ b/asterixdb/asterix-tools/pom.xml
@@ -69,6 +69,12 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.asterix</groupId>
+      <artifactId>asterix-app</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.asterix</groupId>
       <artifactId>asterix-lang-aql</artifactId>
       <version>${project.version}</version>
       <scope>test</scope>
diff --git a/asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/DistributionRunner.java b/asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/DistributionRunner.java
new file mode 100644
index 0000000..c746637
--- /dev/null
+++ b/asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/DistributionRunner.java
@@ -0,0 +1,108 @@
+/*
+ * 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.asterix.tools.distribution;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.zip.CRC32;
+
+import org.apache.asterix.formats.nontagged.BinaryHashFunctionFactoryProvider;
+import org.apache.hyracks.algebricks.common.utils.Pair;
+import org.apache.hyracks.api.comm.IFrameTupleAccessor;
+import org.apache.hyracks.api.dataflow.value.IBinaryHashFunctionFactory;
+import org.apache.hyracks.api.dataflow.value.ITuplePartitionComputer;
+import org.apache.hyracks.dataflow.common.data.partition.FieldHashPartitionComputerFactory;
+
+/**
+ * Entry point for the distribution simulation
+ */
+public class DistributionRunner {
+    // 10 millions
+    private static final int NUM_RECORDS = 10000000;
+    // Variable Number of Storage Partitions
+    private static final int[] NUM_PARTITIONS = { 2, 3, 4, 5, 6, 8, 10, 16, 25, 32, 40, 50, 64, 70, 80, 90, 100, 120,
+            128, 150, 200, 256, 300, 400, 512, 600, 700, 800, 900, 1024, 1050, 1200, 1400, 1600, 1800, 2000, 2048 };
+
+    private DistributionRunner() {
+    }
+
+    public static void main(String[] args) throws IOException {
+        Pair<String, ITuplePartitionComputer>[] partitioners = partitioners();
+        DistributionSimulator simulator = new DistributionSimulator(NUM_RECORDS, NUM_PARTITIONS, partitioners);
+        PrintStream os = new PrintStream(new File("target" + File.separator + "distribution.txt"));
+        simulator.simulate(os);
+    }
+
+    @SuppressWarnings("unchecked")
+    private static Pair<String, ITuplePartitionComputer>[] partitioners() {
+        List<Pair<String, ITuplePartitionComputer>> partitioners = new ArrayList<>();
+        /*
+         * Hash MOD P with MurMur
+         */
+        FieldHashPartitionComputerFactory partiionerFactory = new FieldHashPartitionComputerFactory(new int[] { 0 },
+                new IBinaryHashFunctionFactory[] { BinaryHashFunctionFactoryProvider.INTEGER_POINTABLE_INSTANCE });
+        partitioners.add(new Pair<>("MurMur Hash MOD P", partiionerFactory.createPartitioner()));
+        /*
+         *  Hash MOD P with CRC32
+         */
+        final CRC32 crc32 = new CRC32();
+        ITuplePartitionComputer crc32Partitioner = (IFrameTupleAccessor accessor, int tIndex, int nParts) -> {
+            return crc32(crc32, accessor.getBuffer().array(), accessor.getFieldStartOffset(0, 0) + 1, accessor
+                    .getFieldLength(0, 0) - 1) % nParts;
+        };
+        partitioners.add(new Pair<>("CRC32 Hash MOD P", crc32Partitioner));
+        /*
+         *  MurMur with Linear Hashing
+         */
+        FieldLinearHashPartitionComputerFactory linearPartitionerFactory = new FieldLinearHashPartitionComputerFactory(
+                new int[] { 0 },
+                new IBinaryHashFunctionFactory[] { BinaryHashFunctionFactoryProvider.INTEGER_POINTABLE_INSTANCE });
+        partitioners.add(new Pair<>("MurMur with Linear Hashing", linearPartitionerFactory.createPartitioner()));
+        /*
+         * CRC32 with Linear Hashing
+         */
+        ITuplePartitionComputer cpLinearHashing = (IFrameTupleAccessor accessor, int tIndex, int nParts) -> {
+            int partition = 0;
+            int h = crc32(crc32, accessor.getBuffer().array(), accessor.getFieldStartOffset(0, 0) + 1, accessor
+                    .getFieldLength(
+                            0, 0) - 1);
+            int level = (int) Math.floor(Math.log(nParts) / Math.log(2));
+            int base = (int) Math.pow(2, level);
+            int next = nParts - base;
+            partition = h % base;
+            if (partition < next) {
+                int nextBase = (int) Math.pow(2, level + 1.0);
+                partition = h % nextBase;
+            }
+            return partition;
+        };
+        partitioners.add(new Pair<>("CRC32 with Linear Hashing", cpLinearHashing));
+        return partitioners.toArray(new Pair[partitioners.size()]);
+    }
+
+    private static int crc32(CRC32 crc32, byte[] key, int offset, int length) {
+        crc32.reset();
+        crc32.update(key, offset, length);
+        long rv = (crc32.getValue() >> 16) & 0x7fff;
+        return (int) rv;
+    }
+}
diff --git a/asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/DistributionSimulator.java b/asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/DistributionSimulator.java
new file mode 100644
index 0000000..252aae6
--- /dev/null
+++ b/asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/DistributionSimulator.java
@@ -0,0 +1,112 @@
+/*
+ * 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.asterix.tools.distribution;
+
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.Arrays;
+import java.util.HashSet;
+
+import org.apache.asterix.app.data.gen.AInt32FieldValueGenerator;
+import org.apache.asterix.app.data.gen.TupleGenerator.GenerationFunction;
+import org.apache.asterix.test.common.TestTupleReference;
+import org.apache.commons.math.stat.descriptive.SummaryStatistics;
+import org.apache.hyracks.algebricks.common.utils.Pair;
+import org.apache.hyracks.api.dataflow.value.ITuplePartitionComputer;
+
+/**
+ * A class that simulate the load balancing effect of a distribution function on a clauster of different partition sizes
+ * It tests the function with linear hashing expansion and with uniform distribution
+ */
+public class DistributionSimulator {
+    private final int numRecords;
+    private final int[] numPartitions;
+    private final Pair<String, ITuplePartitionComputer>[] tuplePartitionComputers;
+    private final AInt32FieldValueGenerator keyGenerator;
+    private final HashSet<Integer> keys;
+    private final TestTupleReference tuple;
+    private final SingleTupleFrameAcessor accessor;
+
+    public DistributionSimulator(int numRecords, int[] numPartitions,
+            Pair<String, ITuplePartitionComputer>[] tuplePartitionComputers) {
+        this.numRecords = numRecords;
+        this.numPartitions = numPartitions;
+        this.tuplePartitionComputers = tuplePartitionComputers;
+        keyGenerator = new AInt32FieldValueGenerator(GenerationFunction.RANDOM, false, true);
+        keys = new HashSet<>();
+        tuple = new TestTupleReference(1);
+        accessor = new SingleTupleFrameAcessor(tuple, 5);
+    }
+
+    public void simulate(PrintStream out) throws IOException {
+        for (int i = 0; i < numRecords; i++) {
+            Integer key = keyGenerator.next();
+            while (keys.contains(key)) {
+                key = keyGenerator.next();
+            }
+            keys.add(key);
+        }
+        for (int p : numPartitions) {
+            int[][] partitions = new int[tuplePartitionComputers.length][p];
+            for (int key : keys) {
+                tuple.reset();
+                keyGenerator.write(key, tuple.getFields()[0].getDataOutput());
+                accessor.refresh();
+                for (int j = 0; j < tuplePartitionComputers.length; j++) {
+                    int partition = tuplePartitionComputers[j].second.partition(accessor, 0, p);
+                    partitions[j][partition]++;
+                }
+            }
+            print(out, partitions);
+        }
+    }
+
+    private void print(PrintStream out, int[][] partitions) {
+        out.println("=================================================================");
+        out.println("Number of records: " + numRecords);
+        out.println("Number of partitions: " + partitions[0].length);
+        for (int i = 0; i < partitions.length; i++) {
+            out.println((i + 1) + ". " + tuplePartitionComputers[i].first);
+            SummaryStatistics stats = stats(partitions[i]);
+            out.println(stats);
+            out.println("Sorted Distribution");
+            Arrays.sort(partitions[i]);
+            for (int j = partitions[i].length - 1; j >= 0; j--) {
+                out.print(partitions[i][j]);
+                if (j > 0) {
+                    out.print(", ");
+                }
+            }
+            out.println();
+            if (i + 1 < partitions.length) {
+                out.println("####################");
+                out.println("####################");
+            }
+        }
+        out.println("=================================================================");
+    }
+
+    private SummaryStatistics stats(int[] values) {
+        SummaryStatistics stats = new SummaryStatistics();
+        for (int i : values) {
+            stats.addValue(i);
+        }
+        return stats;
+    }
+}
diff --git a/asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/FieldLinearHashPartitionComputerFactory.java b/asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/FieldLinearHashPartitionComputerFactory.java
new file mode 100644
index 0000000..6994fa3
--- /dev/null
+++ b/asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/FieldLinearHashPartitionComputerFactory.java
@@ -0,0 +1,60 @@
+package org.apache.asterix.tools.distribution;
+
+import org.apache.hyracks.api.comm.IFrameTupleAccessor;
+import org.apache.hyracks.api.dataflow.value.IBinaryHashFunction;
+import org.apache.hyracks.api.dataflow.value.IBinaryHashFunctionFactory;
+import org.apache.hyracks.api.dataflow.value.ITuplePartitionComputer;
+import org.apache.hyracks.api.dataflow.value.ITuplePartitionComputerFactory;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+public class FieldLinearHashPartitionComputerFactory implements ITuplePartitionComputerFactory {
+    private static final long serialVersionUID = 1L;
+    private final int[] hashFields;
+    private final IBinaryHashFunctionFactory[] hashFunctionFactories;
+
+    public FieldLinearHashPartitionComputerFactory(int[] hashFields,
+            IBinaryHashFunctionFactory[] hashFunctionFactories) {
+        this.hashFields = hashFields;
+        this.hashFunctionFactories = hashFunctionFactories;
+    }
+
+    @Override
+    public ITuplePartitionComputer createPartitioner() {
+        final IBinaryHashFunction[] hashFunctions = new IBinaryHashFunction[hashFunctionFactories.length];
+        for (int i = 0; i < hashFunctionFactories.length; ++i) {
+            hashFunctions[i] = hashFunctionFactories[i].createBinaryHashFunction();
+        }
+        return new ITuplePartitionComputer() {
+            @Override
+            public int partition(IFrameTupleAccessor accessor, int tIndex, int nParts) throws HyracksDataException {
+                if (nParts == 1) {
+                    return 0;
+                }
+                int h = 0;
+                int startOffset = accessor.getTupleStartOffset(tIndex);
+                int slotLength = accessor.getFieldSlotsLength();
+                for (int j = 0; j < hashFields.length; ++j) {
+                    int fIdx = hashFields[j];
+                    IBinaryHashFunction hashFn = hashFunctions[j];
+                    int fStart = accessor.getFieldStartOffset(tIndex, fIdx);
+                    int fEnd = accessor.getFieldEndOffset(tIndex, fIdx);
+                    int fh = hashFn
+                            .hash(accessor.getBuffer().array(), startOffset + slotLength + fStart, fEnd - fStart);
+                    h = h * 31 + fh;
+                }
+                if (h < 0) {
+                    h = -(h + 1);
+                }
+                int level = (int) Math.floor(Math.log(nParts) / Math.log(2));
+                int base = (int) Math.pow(2, level);
+                int next = nParts - base;
+                int partition = h % base;
+                if (partition < next) {
+                    int nextBase = (int) Math.pow(2, level + 1.0);
+                    partition = h % nextBase;
+                }
+                return partition;
+            }
+        };
+    }
+}
diff --git a/asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/SingleTupleFrameAcessor.java b/asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/SingleTupleFrameAcessor.java
new file mode 100644
index 0000000..320f137
--- /dev/null
+++ b/asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/SingleTupleFrameAcessor.java
@@ -0,0 +1,106 @@
+/*
+ * 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.asterix.tools.distribution;
+
+import java.nio.ByteBuffer;
+
+import org.apache.hyracks.api.comm.IFrameTupleAccessor;
+import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
+
+public class SingleTupleFrameAcessor implements IFrameTupleAccessor {
+
+    private final ITupleReference tuple;
+    private final ByteBuffer buffer;
+
+    public SingleTupleFrameAcessor(ITupleReference tuple, int maxSize) {
+        this.tuple = tuple;
+        buffer = ByteBuffer.allocate(maxSize);
+
+    }
+
+    @Override
+    public int getFieldCount() {
+        return tuple.getFieldCount();
+    }
+
+    @Override
+    public int getFieldSlotsLength() {
+        return 0;
+    }
+
+    @Override
+    public int getFieldEndOffset(int tupleIndex, int fIdx) {
+        return tuple.getFieldStart(fIdx) + tuple.getFieldLength(fIdx);
+    }
+
+    @Override
+    public int getFieldStartOffset(int tupleIndex, int fIdx) {
+        return tuple.getFieldStart(fIdx);
+    }
+
+    public void refresh() {
+        buffer.clear();
+        int destPos = 0;
+        for (int i = 0; i < tuple.getFieldCount(); i++) {
+            System.arraycopy(tuple.getFieldData(i), tuple.getFieldStart(i), buffer.array(), destPos, tuple
+                    .getFieldLength(i));
+            destPos += tuple.getFieldLength(i);
+        }
+    }
+
+    @Override
+    public int getFieldLength(int tupleIndex, int fIdx) {
+        return tuple.getFieldLength(fIdx);
+    }
+
+    @Override
+    public int getTupleLength(int tupleIndex) {
+        return -1;
+    }
+
+    @Override
+    public int getTupleEndOffset(int tupleIndex) {
+        return -1;
+    }
+
+    @Override
+    public int getTupleStartOffset(int tupleIndex) {
+        return 0;
+    }
+
+    @Override
+    public int getAbsoluteFieldStartOffset(int tupleIndex, int fIdx) {
+        return 0;
+    }
+
+    @Override
+    public int getTupleCount() {
+        return 1;
+    }
+
+    @Override
+    public ByteBuffer getBuffer() {
+        return buffer;
+    }
+
+    @Override
+    public void reset(ByteBuffer buffer) {
+        // Do nothing!
+    }
+}

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1375
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iffc251dd5f8825de6543d8118bf9fef76282a1d2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>

Change in asterixdb[master]: Add Linear Hashing Experiment

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: Add Linear Hashing Experiment
......................................................................


Patch Set 3: BAD+1

BAD Compatibility Tests Successful

https://asterix-jenkins.ics.uci.edu/job/asterixbad-compat/73/ : SUCCESS

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1375
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Iffc251dd5f8825de6543d8118bf9fef76282a1d2
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[master]: Add Linear Hashing Experiment

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: Add Linear Hashing Experiment
......................................................................


Patch Set 3: Integration-Tests+1

Integration Tests Successful

https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/1346/ : SUCCESS

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1375
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Iffc251dd5f8825de6543d8118bf9fef76282a1d2
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[master]: Add Linear Hashing Experiment

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: Add Linear Hashing Experiment
......................................................................


Patch Set 2:

BAD Compatibility Tests Started https://asterix-jenkins.ics.uci.edu/job/asterixbad-compat/72/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1375
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Iffc251dd5f8825de6543d8118bf9fef76282a1d2
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[master]: Add Linear Hashing Experiment

Posted by "abdullah alamoudi (Code Review)" <do...@asterixdb.incubator.apache.org>.
abdullah alamoudi has abandoned this change.

Change subject: Add Linear Hashing Experiment
......................................................................


Abandoned

Tools moved to a personal repo

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1375
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: abandon
Gerrit-Change-Id: Iffc251dd5f8825de6543d8118bf9fef76282a1d2
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>

Change in asterixdb[master]: Add Linear Hashing Experiment

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: Add Linear Hashing Experiment
......................................................................


Patch Set 3:

Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-notopic/3590/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1375
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Iffc251dd5f8825de6543d8118bf9fef76282a1d2
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[master]: Add Linear Hashing Experiment

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: Add Linear Hashing Experiment
......................................................................


Patch Set 2:

Integration Tests Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/1345/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1375
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Iffc251dd5f8825de6543d8118bf9fef76282a1d2
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[master]: Add Linear Hashing Experiment

Posted by "abdullah alamoudi (Code Review)" <do...@asterixdb.incubator.apache.org>.
Hello Jenkins,

I'd like you to reexamine a change.  Please visit

    https://asterix-gerrit.ics.uci.edu/1375

to look at the new patch set (#3).

Change subject: Add Linear Hashing Experiment
......................................................................

Add Linear Hashing Experiment

Change-Id: Iffc251dd5f8825de6543d8118bf9fef76282a1d2
---
M asterixdb/asterix-app/src/test/java/org/apache/asterix/app/data/gen/AInt32FieldValueGenerator.java
M asterixdb/asterix-tools/pom.xml
A asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/DistributionRunner.java
A asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/DistributionSimulator.java
A asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/FieldLinearHashPartitionComputerFactory.java
A asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/SingleTupleFrameAcessor.java
6 files changed, 414 insertions(+), 1 deletion(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/75/1375/3
-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1375
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Iffc251dd5f8825de6543d8118bf9fef76282a1d2
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>

Change in asterixdb[master]: Add Linear Hashing Experiment

Posted by "abdullah alamoudi (Code Review)" <do...@asterixdb.incubator.apache.org>.
Hello Jenkins,

I'd like you to reexamine a change.  Please visit

    https://asterix-gerrit.ics.uci.edu/1375

to look at the new patch set (#2).

Change subject: Add Linear Hashing Experiment
......................................................................

Add Linear Hashing Experiment

Change-Id: Iffc251dd5f8825de6543d8118bf9fef76282a1d2
---
M asterixdb/asterix-app/src/test/java/org/apache/asterix/app/data/gen/AInt32FieldValueGenerator.java
M asterixdb/asterix-tools/pom.xml
A asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/DistributionRunner.java
A asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/DistributionSimulator.java
A asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/FieldLinearHashPartitionComputerFactory.java
A asterixdb/asterix-tools/src/main/java/org/apache/asterix/tools/distribution/SingleTupleFrameAcessor.java
6 files changed, 414 insertions(+), 1 deletion(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/75/1375/2
-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1375
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Iffc251dd5f8825de6543d8118bf9fef76282a1d2
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>

Change in asterixdb[master]: Add Linear Hashing Experiment

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: Add Linear Hashing Experiment
......................................................................


Patch Set 1:

Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-notopic/3459/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1375
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Iffc251dd5f8825de6543d8118bf9fef76282a1d2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[master]: Add Linear Hashing Experiment

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: Add Linear Hashing Experiment
......................................................................


Patch Set 2:

Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-notopic/3588/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1375
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Iffc251dd5f8825de6543d8118bf9fef76282a1d2
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[master]: Add Linear Hashing Experiment

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: Add Linear Hashing Experiment
......................................................................


Patch Set 2: BAD-1

BAD Compatibility Tests Failed

https://asterix-jenkins.ics.uci.edu/job/asterixbad-compat/72/ : FAILURE

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1375
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Iffc251dd5f8825de6543d8118bf9fef76282a1d2
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[master]: Add Linear Hashing Experiment

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: Add Linear Hashing Experiment
......................................................................


Patch Set 3:

BAD Compatibility Tests Started https://asterix-jenkins.ics.uci.edu/job/asterixbad-compat/73/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1375
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Iffc251dd5f8825de6543d8118bf9fef76282a1d2
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[master]: Add Linear Hashing Experiment

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: Add Linear Hashing Experiment
......................................................................


Patch Set 3:

Integration Tests Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/1346/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1375
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Iffc251dd5f8825de6543d8118bf9fef76282a1d2
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No