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 2015/06/10 09:25:42 UTC

incubator-ignite git commit: #Yardstick Added benchmarks for clients.

Repository: incubator-ignite
Updated Branches:
  refs/heads/yard-client-thread [created] 7ae1470a5


#Yardstick Added benchmarks for clients.


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

Branch: refs/heads/yard-client-thread
Commit: 7ae1470a559d8aa7ee3ee977ddb7e2df9c82b9b0
Parents: 928be42
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Wed Jun 10 10:25:41 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Wed Jun 10 10:25:41 2015 +0300

----------------------------------------------------------------------
 .../IgnitePutGetClientPerThreadBenchmark.java   | 78 +++++++++++++++++
 .../IgnitePutGetTxClientPerThreadBenchmark.java | 89 ++++++++++++++++++++
 2 files changed, 167 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7ae1470a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetClientPerThreadBenchmark.java
----------------------------------------------------------------------
diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetClientPerThreadBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetClientPerThreadBenchmark.java
new file mode 100644
index 0000000..e33b7b7
--- /dev/null
+++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetClientPerThreadBenchmark.java
@@ -0,0 +1,78 @@
+/*
+ * 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.yardstick.cache;
+
+import org.apache.ignite.*;
+import org.apache.ignite.yardstick.*;
+import org.apache.ignite.yardstick.cache.model.*;
+
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+/**
+ * Ignite benchmark that performs put and get operations.
+ */
+public class IgnitePutGetClientPerThreadBenchmark extends IgniteCacheAbstractBenchmark {
+    /** Id sequence. */
+    private AtomicInteger idSeq = new AtomicInteger(0);
+
+    /** Nodes. */
+    private Map<Integer, IgniteNode> nodes = new ConcurrentHashMap<>();
+
+    /** {@inheritDoc} */
+    @Override public boolean test(Map<Object, Object> ctx) throws Exception {
+        IgniteCache<Integer, Object> cache = (IgniteCache<Integer, Object>)ctx.get(0);
+
+        if (cache == null) {
+            IgniteNode node = new IgniteNode(true);
+
+            node.start(cfg);
+
+            cache = node.ignite().cache("atomic");
+
+            ctx.put(0, cache);
+
+            nodes.put(idSeq.getAndIncrement(), node);
+        }
+
+        int key = nextRandom(args.range());
+
+        Object val = cache.get(key);
+
+        if (val != null)
+            key = nextRandom(args.range());
+
+        cache.put(key, new SampleValue(key));
+
+        return true;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void tearDown() throws Exception {
+        for (IgniteNode node : nodes.values())
+            node.stop();
+
+        super.tearDown();
+    }
+
+    /** {@inheritDoc} */
+    @Override protected IgniteCache<Integer, Object> cache() {
+        return ignite().cache("atomic");
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7ae1470a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetTxClientPerThreadBenchmark.java
----------------------------------------------------------------------
diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetTxClientPerThreadBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetTxClientPerThreadBenchmark.java
new file mode 100644
index 0000000..5f89e37
--- /dev/null
+++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetTxClientPerThreadBenchmark.java
@@ -0,0 +1,89 @@
+/*
+ * 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.yardstick.cache;
+
+import org.apache.ignite.*;
+import org.apache.ignite.transactions.*;
+import org.apache.ignite.yardstick.*;
+import org.apache.ignite.yardstick.cache.model.*;
+
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+/**
+ * Ignite benchmark that performs transactional put and get operations.
+ */
+public class IgnitePutGetTxClientPerThreadBenchmark extends IgniteCacheAbstractBenchmark {
+    /** Id sequence. */
+    private AtomicInteger idSeq = new AtomicInteger(0);
+
+    /** Nodes. */
+    private Map<Integer, IgniteNode> nodes = new ConcurrentHashMap<>();
+
+    /** {@inheritDoc} */
+    @Override public boolean test(Map<Object, Object> ctx) throws Exception {
+        IgniteCache<Integer, Object> cache = (IgniteCache<Integer, Object>)ctx.get(0);
+
+        Ignite ignite = (Ignite)ctx.get(1);
+
+        if (cache == null || ignite == null) {
+            IgniteNode node = new IgniteNode(true);
+
+            node.start(cfg);
+
+            ignite = node.ignite();
+
+            cache = node.ignite().cache("tx");
+
+            ctx.put(0, cache);
+
+            ctx.put(1, ignite);
+
+            nodes.put(idSeq.getAndIncrement(), node);
+        }
+
+        int key = nextRandom(0, args.range() / 2);
+
+        try (Transaction tx = ignite.transactions().txStart()) {
+            Object val = cache.get(key);
+
+            if (val != null)
+                key = nextRandom(args.range() / 2, args.range());
+
+            cache.put(key, new SampleValue(key));
+
+            tx.commit();
+        }
+
+        return true;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void tearDown() throws Exception {
+        for (IgniteNode node : nodes.values())
+            node.stop();
+
+        super.tearDown();
+    }
+
+    /** {@inheritDoc} */
+    @Override protected IgniteCache<Integer, Object> cache() {
+        return ignite().cache("tx");
+    }
+}