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]);
+ }
+ }
+}