IGNITE-5372 .NET: IgniteConfiguration.LongQueryWarningTimeout
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d5ecf0a7 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d5ecf0a7 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d5ecf0a7 Branch: refs/heads/ignite-5272 Commit: d5ecf0a7e1683a060cd5c0b1dd2ba0d49c678947 Parents: 45bb5b3 Author: Pavel Tupitsyn <[email protected]> Authored: Thu Jun 8 13:29:21 2017 +0300 Committer: Pavel Tupitsyn <[email protected]> Committed: Thu Jun 8 13:29:21 2017 +0300 ---------------------------------------------------------------------- .../utils/PlatformConfigurationUtils.java | 6 ++++++ .../Cache/CacheConfigurationTest.cs | 8 ++++++++ .../IgniteConfigurationSerializerTest.cs | 5 +++-- .../IgniteConfigurationTest.cs | 4 ++++ .../Cache/Configuration/CacheConfiguration.cs | 9 +++++++++ .../Apache.Ignite.Core/IgniteConfiguration.cs | 20 ++++++++++++++++++++ .../IgniteConfigurationSection.xsd | 7 +++++++ 7 files changed, 57 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/d5ecf0a7/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java index 176d77b..575dead 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java @@ -151,6 +151,7 @@ public class PlatformConfigurationUtils { ccfg.setStoreKeepBinary(in.readBoolean()); ccfg.setLoadPreviousValue(in.readBoolean()); ccfg.setDefaultLockTimeout(in.readLong()); + //noinspection deprecation ccfg.setLongQueryWarningTimeout(in.readLong()); ccfg.setMaxConcurrentAsyncOperations(in.readInt()); ccfg.setName(in.readString()); @@ -563,6 +564,8 @@ public class PlatformConfigurationUtils { cfg.setFailureDetectionTimeout(in.readLong()); if (in.readBoolean()) cfg.setClientFailureDetectionTimeout(in.readLong()); + if (in.readBoolean()) + cfg.setLongQueryWarningTimeout(in.readLong()); // Thread pools. if (in.readBoolean()) @@ -808,6 +811,7 @@ public class PlatformConfigurationUtils { writer.writeBoolean(ccfg.isStoreKeepBinary()); writer.writeBoolean(ccfg.isLoadPreviousValue()); writer.writeLong(ccfg.getDefaultLockTimeout()); + //noinspection deprecation writer.writeLong(ccfg.getLongQueryWarningTimeout()); writer.writeInt(ccfg.getMaxConcurrentAsyncOperations()); writer.writeString(ccfg.getName()); @@ -1003,6 +1007,8 @@ public class PlatformConfigurationUtils { w.writeLong(cfg.getFailureDetectionTimeout()); w.writeBoolean(true); w.writeLong(cfg.getClientFailureDetectionTimeout()); + w.writeBoolean(true); + w.writeLong(cfg.getLongQueryWarningTimeout()); // Thread pools. w.writeBoolean(true); http://git-wip-us.apache.org/repos/asf/ignite/blob/d5ecf0a7/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheConfigurationTest.cs ---------------------------------------------------------------------- diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheConfigurationTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheConfigurationTest.cs index b674b0e..1f6dbcf 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheConfigurationTest.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheConfigurationTest.cs @@ -203,7 +203,9 @@ namespace Apache.Ignite.Core.Tests.Cache Assert.AreEqual(CacheConfiguration.DefaultKeepVinaryInStore, cfg.KeepBinaryInStore); Assert.AreEqual(CacheConfiguration.DefaultLoadPreviousValue, cfg.LoadPreviousValue); Assert.AreEqual(CacheConfiguration.DefaultLockTimeout, cfg.LockTimeout); +#pragma warning disable 618 Assert.AreEqual(CacheConfiguration.DefaultLongQueryWarningTimeout, cfg.LongQueryWarningTimeout); +#pragma warning restore 618 Assert.AreEqual(CacheConfiguration.DefaultMaxConcurrentAsyncOperations, cfg.MaxConcurrentAsyncOperations); Assert.AreEqual(CacheConfiguration.DefaultReadFromBackup, cfg.ReadFromBackup); Assert.AreEqual(CacheConfiguration.DefaultRebalanceBatchSize, cfg.RebalanceBatchSize); @@ -233,7 +235,9 @@ namespace Apache.Ignite.Core.Tests.Cache Assert.AreEqual(x.KeepBinaryInStore, y.KeepBinaryInStore); Assert.AreEqual(x.LoadPreviousValue, y.LoadPreviousValue); Assert.AreEqual(x.LockTimeout, y.LockTimeout); +#pragma warning disable 618 Assert.AreEqual(x.LongQueryWarningTimeout, y.LongQueryWarningTimeout); +#pragma warning restore 618 Assert.AreEqual(x.MaxConcurrentAsyncOperations, y.MaxConcurrentAsyncOperations); Assert.AreEqual(x.ReadFromBackup, y.ReadFromBackup); Assert.AreEqual(x.RebalanceBatchSize, y.RebalanceBatchSize); @@ -487,7 +491,9 @@ namespace Apache.Ignite.Core.Tests.Cache Name = name ?? CacheName, MaxConcurrentAsyncOperations = 3, WriteBehindFlushThreadCount = 4, +#pragma warning disable 618 LongQueryWarningTimeout = TimeSpan.FromSeconds(5), +#pragma warning restore 618 LoadPreviousValue = true, CopyOnRead = true, WriteBehindFlushFrequency = TimeSpan.FromSeconds(6), @@ -577,7 +583,9 @@ namespace Apache.Ignite.Core.Tests.Cache Name = name ?? CacheName2, MaxConcurrentAsyncOperations = 3, WriteBehindFlushThreadCount = 4, +#pragma warning disable 618 LongQueryWarningTimeout = TimeSpan.FromSeconds(5), +#pragma warning restore 618 LoadPreviousValue = true, CopyOnRead = true, WriteBehindFlushFrequency = TimeSpan.FromSeconds(6), http://git-wip-us.apache.org/repos/asf/ignite/blob/d5ecf0a7/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs ---------------------------------------------------------------------- diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs index 3229de9..2a8e907 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs @@ -67,7 +67,7 @@ namespace Apache.Ignite.Core.Tests [Test] public void TestPredefinedXml() { - var xml = @"<igniteConfig workDirectory='c:' JvmMaxMemoryMb='1024' MetricsLogFrequency='0:0:10' isDaemon='true' isLateAffinityAssignment='false' springConfigUrl='c:\myconfig.xml' autoGenerateIgniteInstanceName='true' peerAssemblyLoadingMode='CurrentAppDomain'> + var xml = @"<igniteConfig workDirectory='c:' JvmMaxMemoryMb='1024' MetricsLogFrequency='0:0:10' isDaemon='true' isLateAffinityAssignment='false' springConfigUrl='c:\myconfig.xml' autoGenerateIgniteInstanceName='true' peerAssemblyLoadingMode='CurrentAppDomain' longQueryWarningTimeout='1:2:3'> <localhost>127.1.1.1</localhost> <binaryConfiguration compactFooter='false' keepDeserialized='true'> <nameMapper type='Apache.Ignite.Core.Tests.IgniteConfigurationSerializerTest+NameMapper' bar='testBar' /> @@ -167,6 +167,7 @@ namespace Apache.Ignite.Core.Tests Assert.AreEqual(new[] {42, EventType.TaskFailed, EventType.JobFinished}, cfg.IncludedEventTypes); Assert.AreEqual(@"c:\myconfig.xml", cfg.SpringConfigUrl); Assert.IsTrue(cfg.AutoGenerateIgniteInstanceName); + Assert.AreEqual(new TimeSpan(1, 2, 3), cfg.LongQueryWarningTimeout); Assert.AreEqual("secondCache", cfg.CacheConfiguration.Last().Name); @@ -663,7 +664,6 @@ namespace Apache.Ignite.Core.Tests KeepBinaryInStore = true, LoadPreviousValue = true, LockTimeout = TimeSpan.FromSeconds(56), - LongQueryWarningTimeout = TimeSpan.FromSeconds(99), MaxConcurrentAsyncOperations = 24, QueryEntities = new[] { @@ -816,6 +816,7 @@ namespace Apache.Ignite.Core.Tests Logger = new IgniteNLogLogger(), FailureDetectionTimeout = TimeSpan.FromMinutes(2), ClientFailureDetectionTimeout = TimeSpan.FromMinutes(3), + LongQueryWarningTimeout = TimeSpan.FromDays(4), PluginConfigurations = new[] {new TestIgnitePluginConfiguration() }, EventStorageSpi = new MemoryEventStorageSpi { http://git-wip-us.apache.org/repos/asf/ignite/blob/d5ecf0a7/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationTest.cs ---------------------------------------------------------------------- diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationTest.cs index 9d19a23..9341c95 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationTest.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationTest.cs @@ -174,6 +174,7 @@ namespace Apache.Ignite.Core.Tests Assert.AreEqual(cfg.FailureDetectionTimeout, resCfg.FailureDetectionTimeout); Assert.AreEqual(cfg.ClientFailureDetectionTimeout, resCfg.ClientFailureDetectionTimeout); + Assert.AreEqual(cfg.LongQueryWarningTimeout, resCfg.LongQueryWarningTimeout); Assert.AreEqual(cfg.PublicThreadPoolSize, resCfg.PublicThreadPoolSize); Assert.AreEqual(cfg.StripedThreadPoolSize, resCfg.StripedThreadPoolSize); @@ -479,6 +480,8 @@ namespace Apache.Ignite.Core.Tests Assert.AreEqual(IgniteConfiguration.DefaultFailureDetectionTimeout, cfg.FailureDetectionTimeout); Assert.AreEqual(IgniteConfiguration.DefaultClientFailureDetectionTimeout, cfg.ClientFailureDetectionTimeout); + Assert.AreEqual(IgniteConfiguration.DefaultLongQueryWarningTimeout, cfg.LongQueryWarningTimeout); + Assert.AreEqual(IgniteConfiguration.DefaultIsLateAffinityAssignment, cfg.IsLateAffinityAssignment); // Thread pools. Assert.AreEqual(IgniteConfiguration.DefaultManagementThreadPoolSize, cfg.ManagementThreadPoolSize); @@ -599,6 +602,7 @@ namespace Apache.Ignite.Core.Tests }, FailureDetectionTimeout = TimeSpan.FromSeconds(3.5), ClientFailureDetectionTimeout = TimeSpan.FromMinutes(12.3), + LongQueryWarningTimeout = TimeSpan.FromMinutes(1.23), BinaryConfiguration = new BinaryConfiguration { CompactFooter = false, http://git-wip-us.apache.org/repos/asf/ignite/blob/d5ecf0a7/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/CacheConfiguration.cs ---------------------------------------------------------------------- diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/CacheConfiguration.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/CacheConfiguration.cs index 04198dd..ec0ac40 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/CacheConfiguration.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/CacheConfiguration.cs @@ -156,7 +156,9 @@ namespace Apache.Ignite.Core.Cache.Configuration KeepBinaryInStore = DefaultKeepVinaryInStore; LoadPreviousValue = DefaultLoadPreviousValue; LockTimeout = DefaultLockTimeout; +#pragma warning disable 618 LongQueryWarningTimeout = DefaultLongQueryWarningTimeout; +#pragma warning restore 618 MaxConcurrentAsyncOperations = DefaultMaxConcurrentAsyncOperations; ReadFromBackup = DefaultReadFromBackup; RebalanceBatchSize = DefaultRebalanceBatchSize; @@ -214,7 +216,9 @@ namespace Apache.Ignite.Core.Cache.Configuration KeepBinaryInStore = reader.ReadBoolean(); LoadPreviousValue = reader.ReadBoolean(); LockTimeout = reader.ReadLongAsTimespan(); +#pragma warning disable 618 LongQueryWarningTimeout = reader.ReadLongAsTimespan(); +#pragma warning restore 618 MaxConcurrentAsyncOperations = reader.ReadInt(); Name = reader.ReadString(); ReadFromBackup = reader.ReadBoolean(); @@ -272,7 +276,9 @@ namespace Apache.Ignite.Core.Cache.Configuration writer.WriteBoolean(KeepBinaryInStore); writer.WriteBoolean(LoadPreviousValue); writer.WriteLong((long) LockTimeout.TotalMilliseconds); +#pragma warning disable 618 writer.WriteLong((long) LongQueryWarningTimeout.TotalMilliseconds); +#pragma warning restore 618 writer.WriteInt(MaxConcurrentAsyncOperations); writer.WriteString(Name); writer.WriteBoolean(ReadFromBackup); @@ -538,8 +544,11 @@ namespace Apache.Ignite.Core.Cache.Configuration /// <summary> /// Gets or sets the timeout after which long query warning will be printed. + /// <para /> + /// This property is obsolete, use <see cref="IgniteConfiguration.LongQueryWarningTimeout"/> instead. /// </summary> [DefaultValue(typeof(TimeSpan), "00:00:03")] + [Obsolete("Use IgniteConfiguration.LongQueryWarningTimeout instead.")] public TimeSpan LongQueryWarningTimeout { get; set; } /// <summary> http://git-wip-us.apache.org/repos/asf/ignite/blob/d5ecf0a7/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs ---------------------------------------------------------------------- diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs b/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs index 40bab15..4c141da 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs @@ -114,6 +114,11 @@ namespace Apache.Ignite.Core /// </summary> public const int DefaultManagementThreadPoolSize = 4; + /// <summary> + /// Default timeout after which long query warning will be printed. + /// </summary> + public static readonly TimeSpan DefaultLongQueryWarningTimeout = TimeSpan.FromMilliseconds(3000); + /** */ private TimeSpan? _metricsExpireTime; @@ -177,6 +182,9 @@ namespace Apache.Ignite.Core /** */ private int? _queryThreadPoolSize; + /** */ + private TimeSpan? _longQueryWarningTimeout; + /// <summary> /// Default network retry count. /// </summary> @@ -259,6 +267,7 @@ namespace Apache.Ignite.Core writer.WriteBooleanNullable(_isLateAffinityAssignment); writer.WriteTimeSpanAsLongNullable(_failureDetectionTimeout); writer.WriteTimeSpanAsLongNullable(_clientFailureDetectionTimeout); + writer.WriteTimeSpanAsLongNullable(_longQueryWarningTimeout); // Thread pools writer.WriteIntNullable(_publicThreadPoolSize); @@ -497,6 +506,7 @@ namespace Apache.Ignite.Core _isLateAffinityAssignment = r.ReadBooleanNullable(); _failureDetectionTimeout = r.ReadTimeSpanNullable(); _clientFailureDetectionTimeout = r.ReadTimeSpanNullable(); + _longQueryWarningTimeout = r.ReadTimeSpanNullable(); // Thread pools _publicThreadPoolSize = r.ReadIntNullable(); @@ -1159,5 +1169,15 @@ namespace Apache.Ignite.Core /// Gets or sets the SQL connector configuration (for JDBC and ODBC). /// </summary> public SqlConnectorConfiguration SqlConnectorConfiguration { get; set; } + + /// <summary> + /// Gets or sets the timeout after which long query warning will be printed. + /// </summary> + [DefaultValue(typeof(TimeSpan), "00:00:03")] + public TimeSpan LongQueryWarningTimeout + { + get { return _longQueryWarningTimeout ?? DefaultLongQueryWarningTimeout; } + set { _longQueryWarningTimeout = value; } + } } } http://git-wip-us.apache.org/repos/asf/ignite/blob/d5ecf0a7/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd ---------------------------------------------------------------------- diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd b/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd index f0b7f44..864ff9e 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd +++ b/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd @@ -1480,6 +1480,13 @@ </xs:documentation> </xs:annotation> </xs:attribute> + <xs:attribute name="longQueryWarningTimeout" type="xs:string"> + <xs:annotation> + <xs:documentation> + Timeout after which long query warning will be printed. + </xs:documentation> + </xs:annotation> + </xs:attribute> <xs:attribute name="peerAssemblyLoadingMode" type="peerAssemblyLoadingMode"> <xs:annotation> <xs:documentation>Indicates whether user assemblies should be loaded on remote nodes automatically.</xs:documentation>
