You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by pt...@apache.org on 2017/12/06 17:15:05 UTC

ignite git commit: IGNITE-7124 .NET: Thin client: Cache benchmark

Repository: ignite
Updated Branches:
  refs/heads/master 936dc9570 -> 9813c626b


IGNITE-7124 .NET: Thin client: Cache benchmark


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

Branch: refs/heads/master
Commit: 9813c626b3ac49e99d8b404aec44992e48dd1fed
Parents: 936dc95
Author: Pavel Tupitsyn <pt...@apache.org>
Authored: Wed Dec 6 20:14:55 2017 +0300
Committer: Pavel Tupitsyn <pt...@apache.org>
Committed: Wed Dec 6 20:14:55 2017 +0300

----------------------------------------------------------------------
 .../Apache.Ignite.Benchmarks.csproj             |  2 +
 .../Interop/PlatformBenchmarkBase.cs            | 21 +++++++
 .../ThinClient/ThinClientGetBenchmark.cs        | 63 ++++++++++++++++++++
 .../ThinClient/ThinClientPutBenchmark.cs        | 59 ++++++++++++++++++
 4 files changed, 145 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/9813c626/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Apache.Ignite.Benchmarks.csproj
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Apache.Ignite.Benchmarks.csproj b/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Apache.Ignite.Benchmarks.csproj
index 65dfc1e..b5c2074 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Apache.Ignite.Benchmarks.csproj
+++ b/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Apache.Ignite.Benchmarks.csproj
@@ -69,6 +69,8 @@
     <Compile Include="Result\BenchmarkConsoleResultWriter.cs" />
     <Compile Include="Result\BenchmarkFileResultWriter.cs" />
     <Compile Include="Result\IBenchmarkResultWriter.cs" />
+    <Compile Include="ThinClient\ThinClientGetBenchmark.cs" />
+    <Compile Include="ThinClient\ThinClientPutBenchmark.cs" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\Apache.Ignite.Core\Apache.Ignite.Core.csproj">

http://git-wip-us.apache.org/repos/asf/ignite/blob/9813c626/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Interop/PlatformBenchmarkBase.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Interop/PlatformBenchmarkBase.cs b/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Interop/PlatformBenchmarkBase.cs
index f437eb8..ca9fb0c 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Interop/PlatformBenchmarkBase.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Interop/PlatformBenchmarkBase.cs
@@ -18,9 +18,11 @@
 namespace Apache.Ignite.Benchmarks.Interop
 {
     using System.Collections.Generic;
+    using System.Net;
     using Apache.Ignite.Benchmarks.Model;
     using Apache.Ignite.Core;
     using Apache.Ignite.Core.Binary;
+    using Apache.Ignite.Core.Client;
 
     /// <summary>
     /// Base class for all platform benchmarks.
@@ -117,5 +119,24 @@ namespace Apache.Ignite.Benchmarks.Interop
         /// Payload.
         /// </summary>
         public int Payload { get; set; }
+
+        /// <summary>
+        /// Gets the client.
+        /// </summary>
+        protected IIgniteClient GetClient()
+        {
+            return Ignition.StartClient(GetClientConfiguration());
+        }
+
+        /// <summary>
+        /// Gets the client configuration.
+        /// </summary>
+        private IgniteClientConfiguration GetClientConfiguration()
+        {
+            return new IgniteClientConfiguration
+            {
+                Host = IPAddress.Loopback.ToString()
+            };
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/9813c626/modules/platforms/dotnet/Apache.Ignite.Benchmarks/ThinClient/ThinClientGetBenchmark.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Benchmarks/ThinClient/ThinClientGetBenchmark.cs b/modules/platforms/dotnet/Apache.Ignite.Benchmarks/ThinClient/ThinClientGetBenchmark.cs
new file mode 100644
index 0000000..4af5f1f
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Benchmarks/ThinClient/ThinClientGetBenchmark.cs
@@ -0,0 +1,63 @@
+/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Benchmarks.ThinClient
+{
+    using System.Collections.Generic;
+    using Apache.Ignite.Benchmarks.Interop;
+    using Apache.Ignite.Benchmarks.Model;
+    using Apache.Ignite.Core.Client.Cache;
+
+    /// <summary>
+    /// Cache get benchmark.
+    /// </summary>
+    internal class ThinClientGetBenchmark : PlatformBenchmarkBase
+    {
+        /** Cache name. */
+        private const string CacheName = "cache";
+
+        /** Native cache wrapper. */
+        private ICacheClient<int, Employee> _cache;
+
+        /** <inheritDoc /> */
+        protected override void OnStarted()
+        {
+            base.OnStarted();
+
+            _cache = GetClient().GetCache<int, Employee>(CacheName);
+
+            for (int i = 0; i < Emps.Length; i++)
+                _cache.Put(i, Emps[i]);
+        }
+
+        /** <inheritDoc /> */
+        protected override void GetDescriptors(ICollection<BenchmarkOperationDescriptor> descs)
+        {
+            descs.Add(BenchmarkOperationDescriptor.Create("ThinClientGet", Get, 1));
+        }
+
+        /// <summary>
+        /// Cache get.
+        /// </summary>
+        private void Get(BenchmarkState state)
+        {
+            var idx = BenchmarkUtils.GetRandomInt(Dataset);
+
+            _cache.Get(idx);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/9813c626/modules/platforms/dotnet/Apache.Ignite.Benchmarks/ThinClient/ThinClientPutBenchmark.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Benchmarks/ThinClient/ThinClientPutBenchmark.cs b/modules/platforms/dotnet/Apache.Ignite.Benchmarks/ThinClient/ThinClientPutBenchmark.cs
new file mode 100644
index 0000000..deb9c99
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Benchmarks/ThinClient/ThinClientPutBenchmark.cs
@@ -0,0 +1,59 @@
+/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Benchmarks.ThinClient
+{
+    using System.Collections.Generic;
+    using Apache.Ignite.Benchmarks.Interop;
+    using Apache.Ignite.Core.Client.Cache;
+
+    /// <summary>
+    /// Cache put benchmark.
+    /// </summary>
+    internal class ThinClientPutBenchmark : PlatformBenchmarkBase
+    {
+        /** Cache name. */
+        private const string CacheName = "cache";
+
+        /** Native cache wrapper. */
+        private ICacheClient<object, object> _cache;
+
+        /** <inheritDoc /> */
+        protected override void OnStarted()
+        {
+            base.OnStarted();
+
+            _cache = GetClient().GetCache<object, object>(CacheName);
+        }
+
+        /** <inheritDoc /> */
+        protected override void GetDescriptors(ICollection<BenchmarkOperationDescriptor> descs)
+        {
+            descs.Add(BenchmarkOperationDescriptor.Create("ThinClientPut", Put, 1));
+        }
+        
+        /// <summary>
+        /// Cache put.
+        /// </summary>
+        private void Put(BenchmarkState state)
+        {
+            int idx = BenchmarkUtils.GetRandomInt(Dataset);
+
+            _cache.Put(idx, Emps[idx]);
+        }
+    }
+}