Repository: ignite Updated Branches: refs/heads/master 93be8ea90 -> 1816fb920
IGNITE-6705 .NET: CacheConfiguration missing properties This closes #2921 Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/1816fb92 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/1816fb92 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/1816fb92 Branch: refs/heads/master Commit: 1816fb9205d533b38487918bddb0863b813f812b Parents: 93be8ea Author: Pavel Tupitsyn <[email protected]> Authored: Wed Oct 25 13:07:52 2017 +0300 Committer: Pavel Tupitsyn <[email protected]> Committed: Wed Oct 25 13:07:52 2017 +0300 ---------------------------------------------------------------------- .../configuration/CacheConfiguration.java | 2 + .../utils/PlatformConfigurationUtils.java | 20 ++++ .../ApiParity/CacheConfigurationParityTest.cs | 12 +- .../Cache/CacheConfigurationTest.cs | 37 +++++- .../Config/full-config.xml | 4 +- .../IgniteConfigurationSerializerTest.cs | 19 ++- .../Cache/Configuration/CacheConfiguration.cs | 115 ++++++++++++++++++- .../IgniteConfigurationSection.xsd | 40 +++++++ 8 files changed, 233 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1816fb92/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java index 37a0677..e240df8 100644 --- a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java +++ b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java @@ -442,6 +442,8 @@ public class CacheConfiguration<K, V> extends MutableConfiguration<K, V> { writeBehindFlushSize = cc.getWriteBehindFlushSize(); writeBehindFlushThreadCnt = cc.getWriteBehindFlushThreadCount(); writeSync = cc.getWriteSynchronizationMode(); + storeConcurrentLoadAllThreshold = cc.getStoreConcurrentLoadAllThreshold(); + maxQryIterCnt = cc.getMaxQueryIteratorsCount(); } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/1816fb92/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 981a231..28b6c60 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 @@ -202,6 +202,18 @@ public class PlatformConfigurationUtils { ccfg.setCacheStoreFactory(new PlatformDotNetCacheStoreFactoryNative(storeFactory)); ccfg.setSqlIndexMaxInlineSize(in.readInt()); + ccfg.setOnheapCacheEnabled(in.readBoolean()); + ccfg.setStoreConcurrentLoadAllThreshold(in.readInt()); + ccfg.setRebalanceOrder(in.readInt()); + ccfg.setRebalanceBatchesPrefetchCount(in.readLong()); + ccfg.setMaxQueryIteratorsCount(in.readInt()); + ccfg.setQueryDetailMetricsSize(in.readInt()); + ccfg.setQueryParallelism(in.readInt()); + + String sqlSchema = in.readString(); + if (sqlSchema != null) { + ccfg.setSqlSchema(sqlSchema); + } int qryEntCnt = in.readInt(); @@ -903,6 +915,14 @@ public class PlatformConfigurationUtils { writer.writeObject(null); writer.writeInt(ccfg.getSqlIndexMaxInlineSize()); + writer.writeBoolean(ccfg.isOnheapCacheEnabled()); + writer.writeInt(ccfg.getStoreConcurrentLoadAllThreshold()); + writer.writeInt(ccfg.getRebalanceOrder()); + writer.writeLong(ccfg.getRebalanceBatchesPrefetchCount()); + writer.writeInt(ccfg.getMaxQueryIteratorsCount()); + writer.writeInt(ccfg.getQueryDetailMetricsSize()); + writer.writeInt(ccfg.getQueryParallelism()); + writer.writeString(ccfg.getSqlSchema()); Collection<QueryEntity> qryEntities = ccfg.getQueryEntities(); http://git-wip-us.apache.org/repos/asf/ignite/blob/1816fb92/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ApiParity/CacheConfigurationParityTest.cs ---------------------------------------------------------------------- diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ApiParity/CacheConfigurationParityTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ApiParity/CacheConfigurationParityTest.cs index 6bc5472..0467937 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ApiParity/CacheConfigurationParityTest.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ApiParity/CacheConfigurationParityTest.cs @@ -56,17 +56,7 @@ namespace Apache.Ignite.Core.Tests.ApiParity /** Properties that are missing on .NET side. */ private static readonly string[] MissingProperties = { - "NodeFilter", // IGNITE-2890 - - // IGNITE-6705 - "IsOnheapCacheEnabled", - "StoreConcurrentLoadAllThreshold", - "RebalanceOrder", - "RebalanceBatchesPrefetchCount", - "MaxQueryIteratorsCount", - "QueryDetailMetricsSize", - "SqlSchema", - "QueryParallelism" + "NodeFilter" // IGNITE-2890 }; /// <summary> http://git-wip-us.apache.org/repos/asf/ignite/blob/1816fb92/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 5556807..b5d8367 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheConfigurationTest.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/CacheConfigurationTest.cs @@ -167,6 +167,13 @@ namespace Apache.Ignite.Core.Tests.Cache // Check put-get cache[1] = new Entity { Foo = 1 }; Assert.AreEqual(1, cache[1].Foo); + + // Check another config + cacheName = Guid.NewGuid().ToString(); + cfg = GetCustomCacheConfiguration2(cacheName); + + cache = _ignite.CreateCache<int, Entity>(cfg); + AssertConfigsAreEqual(cfg, cache.GetConfiguration()); } /// <summary> @@ -269,6 +276,14 @@ namespace Apache.Ignite.Core.Tests.Cache Assert.AreEqual(CacheConfiguration.DefaultReadThrough, cfg.ReadThrough); Assert.AreEqual(CacheConfiguration.DefaultCopyOnRead, cfg.CopyOnRead); Assert.AreEqual(CacheConfiguration.DefaultKeepBinaryInStore, cfg.KeepBinaryInStore); + Assert.AreEqual(CacheConfiguration.DefaultStoreConcurrentLoadAllThreshold, + cfg.StoreConcurrentLoadAllThreshold); + Assert.AreEqual(CacheConfiguration.DefaultRebalanceOrder, cfg.RebalanceOrder); + Assert.AreEqual(CacheConfiguration.DefaultRebalanceBatchesPrefetchCount, cfg.RebalanceBatchesPrefetchCount); + Assert.AreEqual(CacheConfiguration.DefaultMaxQueryIteratorsCount, cfg.MaxQueryIteratorsCount); + Assert.AreEqual(CacheConfiguration.DefaultQueryDetailMetricsSize, cfg.QueryDetailMetricsSize); + Assert.IsNull(cfg.SqlSchema); + Assert.AreEqual(CacheConfiguration.DefaultQueryParallelism, cfg.QueryParallelism); } /// <summary> @@ -331,6 +346,15 @@ namespace Apache.Ignite.Core.Tests.Cache } TestUtils.AssertReflectionEqual(x.KeyConfiguration, y.KeyConfiguration); + + Assert.AreEqual(x.OnheapCacheEnabled, y.OnheapCacheEnabled); + Assert.AreEqual(x.StoreConcurrentLoadAllThreshold, y.StoreConcurrentLoadAllThreshold); + Assert.AreEqual(x.RebalanceOrder, y.RebalanceOrder); + Assert.AreEqual(x.RebalanceBatchesPrefetchCount, y.RebalanceBatchesPrefetchCount); + Assert.AreEqual(x.MaxQueryIteratorsCount, y.MaxQueryIteratorsCount); + Assert.AreEqual(x.QueryDetailMetricsSize, y.QueryDetailMetricsSize); + Assert.AreEqual(x.QueryParallelism, y.QueryParallelism); + Assert.AreEqual(x.SqlSchema, y.SqlSchema); } /// <summary> @@ -645,7 +669,15 @@ namespace Apache.Ignite.Core.Tests.Cache TypeName = "foobar", AffinityKeyFieldName = "barbaz" } - } + }, + OnheapCacheEnabled = true, + StoreConcurrentLoadAllThreshold = 7, + RebalanceOrder = 3, + RebalanceBatchesPrefetchCount = 4, + MaxQueryIteratorsCount = 512, + QueryDetailMetricsSize = 100, + QueryParallelism = 16, + SqlSchema = "foo" + name }; } /// <summary> @@ -725,7 +757,8 @@ namespace Apache.Ignite.Core.Tests.Cache MaxSize = 26, MaxMemorySize = 2501, BatchSize = 33 - }, + }, + OnheapCacheEnabled = true, // Required with eviction policy AffinityFunction = new RendezvousAffinityFunction { Partitions = 113, http://git-wip-us.apache.org/repos/asf/ignite/blob/1816fb92/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/full-config.xml ---------------------------------------------------------------------- diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/full-config.xml b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/full-config.xml index 7ad5d48..03559bf 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/full-config.xml +++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/full-config.xml @@ -51,7 +51,9 @@ <iLifecycleHandler type='Apache.Ignite.Core.Tests.IgniteConfigurationSerializerTest+LifecycleBean' foo='15' /> </lifecycleHandlers> <cacheConfiguration> - <cacheConfiguration cacheMode='Replicated' readThrough='true' writeThrough='true' enableStatistics='true' writeBehindCoalescing='false' partitionLossPolicy='ReadWriteAll' groupName='fooGroup'> + <cacheConfiguration cacheMode='Replicated' readThrough='true' writeThrough='true' enableStatistics='true' writeBehindCoalescing='false' partitionLossPolicy='ReadWriteAll' groupName='fooGroup' + onheapCacheEnabled='true' storeConcurrentLoadAllThreshold='8' rebalanceOrder='9' rebalanceBatchesPrefetchCount='10' maxQueryIteratorsCount='11' queryDetailMetricsSize='12' + queryParallelism='13' sqlSchema='mySchema'> <queryEntities> <queryEntity keyType='System.Int32' valueType='System.String' tableName='myTable'> <fields> http://git-wip-us.apache.org/repos/asf/ignite/blob/1816fb92/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 4be34c7..b8c1069 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs @@ -115,6 +115,15 @@ namespace Apache.Ignite.Core.Tests Assert.AreEqual("bar", cacheCfg.KeyConfiguration.Single().AffinityKeyFieldName); Assert.AreEqual("foo", cacheCfg.KeyConfiguration.Single().TypeName); + Assert.IsTrue(cacheCfg.OnheapCacheEnabled); + Assert.AreEqual(8, cacheCfg.StoreConcurrentLoadAllThreshold); + Assert.AreEqual(9, cacheCfg.RebalanceOrder); + Assert.AreEqual(10, cacheCfg.RebalanceBatchesPrefetchCount); + Assert.AreEqual(11, cacheCfg.MaxQueryIteratorsCount); + Assert.AreEqual(12, cacheCfg.QueryDetailMetricsSize); + Assert.AreEqual(13, cacheCfg.QueryParallelism); + Assert.AreEqual("mySchema", cacheCfg.SqlSchema); + var queryEntity = cacheCfg.QueryEntities.Single(); Assert.AreEqual(typeof(int), queryEntity.KeyType); Assert.AreEqual(typeof(string), queryEntity.ValueType); @@ -733,7 +742,15 @@ namespace Apache.Ignite.Core.Tests AffinityKeyFieldName = "abc", TypeName = "def" }, - } + }, + OnheapCacheEnabled = true, + StoreConcurrentLoadAllThreshold = 7, + RebalanceOrder = 3, + RebalanceBatchesPrefetchCount = 4, + MaxQueryIteratorsCount = 512, + QueryDetailMetricsSize = 100, + QueryParallelism = 16, + SqlSchema = "foo" } }, ClientMode = true, http://git-wip-us.apache.org/repos/asf/ignite/blob/1816fb92/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 f4af778..4880eb3 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/CacheConfiguration.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/CacheConfiguration.cs @@ -28,7 +28,6 @@ namespace Apache.Ignite.Core.Cache.Configuration using System.IO; using System.Linq; using System.Xml.Serialization; - using Apache.Ignite.Core.Binary; using Apache.Ignite.Core.Cache; using Apache.Ignite.Core.Cache.Affinity; using Apache.Ignite.Core.Cache.Affinity.Rendezvous; @@ -143,6 +142,24 @@ namespace Apache.Ignite.Core.Cache.Configuration /// <summary> Default value for <see cref="SqlIndexMaxInlineSize"/>. </summary> public const int DefaultSqlIndexMaxInlineSize = -1; + /// <summary> Default value for <see cref="StoreConcurrentLoadAllThreshold"/>. </summary> + public const int DefaultStoreConcurrentLoadAllThreshold = 5; + + /// <summary> Default value for <see cref="RebalanceOrder"/>. </summary> + public const int DefaultRebalanceOrder = 0; + + /// <summary> Default value for <see cref="RebalanceBatchesPrefetchCount"/>. </summary> + public const long DefaultRebalanceBatchesPrefetchCount = 2; + + /// <summary> Default value for <see cref="MaxQueryIteratorsCount"/>. </summary> + public const int DefaultMaxQueryIteratorsCount = 1024; + + /// <summary> Default value for <see cref="QueryDetailMetricsSize"/>. </summary> + public const int DefaultQueryDetailMetricsSize = 0; + + /// <summary> Default value for <see cref="QueryParallelism"/>. </summary> + public const int DefaultQueryParallelism = 1; + /// <summary> /// Gets or sets the cache name. /// </summary> @@ -191,6 +208,11 @@ namespace Apache.Ignite.Core.Cache.Configuration WriteBehindCoalescing = DefaultWriteBehindCoalescing; PartitionLossPolicy = DefaultPartitionLossPolicy; SqlIndexMaxInlineSize = DefaultSqlIndexMaxInlineSize; + StoreConcurrentLoadAllThreshold = DefaultStoreConcurrentLoadAllThreshold; + RebalanceOrder = DefaultRebalanceOrder; + RebalanceBatchesPrefetchCount = DefaultRebalanceBatchesPrefetchCount; + MaxQueryIteratorsCount = DefaultMaxQueryIteratorsCount; + QueryParallelism = DefaultQueryParallelism; } /// <summary> @@ -294,6 +316,14 @@ namespace Apache.Ignite.Core.Cache.Configuration GroupName = reader.ReadString(); CacheStoreFactory = reader.ReadObject<IFactory<ICacheStore>>(); SqlIndexMaxInlineSize = reader.ReadInt(); + OnheapCacheEnabled = reader.ReadBoolean(); + StoreConcurrentLoadAllThreshold = reader.ReadInt(); + RebalanceOrder = reader.ReadInt(); + RebalanceBatchesPrefetchCount = reader.ReadLong(); + MaxQueryIteratorsCount = reader.ReadInt(); + QueryDetailMetricsSize = reader.ReadInt(); + QueryParallelism = reader.ReadInt(); + SqlSchema = reader.ReadString(); QueryEntities = reader.ReadCollectionRaw(r => new QueryEntity(r)); @@ -382,6 +412,14 @@ namespace Apache.Ignite.Core.Cache.Configuration writer.WriteString(GroupName); writer.WriteObject(CacheStoreFactory); writer.WriteInt(SqlIndexMaxInlineSize); + writer.WriteBoolean(OnheapCacheEnabled); + writer.WriteInt(StoreConcurrentLoadAllThreshold); + writer.WriteInt(RebalanceOrder); + writer.WriteLong(RebalanceBatchesPrefetchCount); + writer.WriteInt(MaxQueryIteratorsCount); + writer.WriteInt(QueryDetailMetricsSize); + writer.WriteInt(QueryParallelism); + writer.WriteString(SqlSchema); writer.WriteCollectionRaw(QueryEntities); @@ -799,5 +837,80 @@ namespace Apache.Ignite.Core.Cache.Configuration /// </summary> [SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] public ICollection<CacheKeyConfiguration> KeyConfiguration { get; set; } + + /// <summary> + /// Gets or sets a value indicating whether on-heap cache is enabled for the off-heap based page memory. + /// </summary> + public bool OnheapCacheEnabled { get; set; } + + /// <summary> + /// Gets or sets the threshold to use when multiple keys are being loaded from an underlying cache store + /// (see <see cref="CacheStoreFactory"/>). + /// + /// In the situation when several threads load the same or intersecting set of keys + /// and the total number of keys to load is less or equal to this threshold then there will be no + /// second call to the storage in order to load a key from thread A if the same key is already being + /// loaded by thread B. + /// + /// The threshold should be controlled wisely. On the one hand if it's set to a big value then the + /// interaction with a storage during the load of missing keys will be minimal.On the other hand the big + /// value may result in significant performance degradation because it is needed to check + /// for every key whether it's being loaded or not. + /// </summary> + [DefaultValue(DefaultStoreConcurrentLoadAllThreshold)] + public int StoreConcurrentLoadAllThreshold { get; set; } + + /// <summary> + /// Gets or sets the cache rebalance order. Caches with bigger RebalanceOrder are rebalanced later than caches + /// with smaller RebalanceOrder. + /// <para /> + /// Default is 0, which means unordered rebalance. All caches with RebalanceOrder=0 are rebalanced without any + /// delay concurrently. + /// <para /> + /// This parameter is applicable only for caches with <see cref="RebalanceMode"/> of + /// <see cref="CacheRebalanceMode.Sync"/> and <see cref="CacheRebalanceMode.Async"/>. + /// </summary> + [DefaultValue(DefaultRebalanceOrder)] + public int RebalanceOrder { get; set; } + + /// <summary> + /// Gets or sets the rebalance batches prefetch count. + /// <para /> + /// Source node can provide more than one batch at rebalance start to improve performance. + /// Default is <see cref="DefaultRebalanceBatchesPrefetchCount"/>, minimum is 2. + /// </summary> + [DefaultValue(DefaultRebalanceBatchesPrefetchCount)] + public long RebalanceBatchesPrefetchCount { get; set; } + + /// <summary> + /// Gets or sets the maximum number of active query iterators. + /// </summary> + [DefaultValue(DefaultMaxQueryIteratorsCount)] + public int MaxQueryIteratorsCount { get; set; } + + /// <summary> + /// Gets or sets the size of the query detail metrics to be stored in memory. + /// <para /> + /// 0 means disabled metrics. + /// </summary> + [DefaultValue(DefaultQueryDetailMetricsSize)] + public int QueryDetailMetricsSize { get; set; } + + /// <summary> + /// Gets or sets the SQL schema. + /// Non-quoted identifiers are not case sensitive. Quoted identifiers are case sensitive. + /// <para /> + /// Quoted <see cref="Name"/> is used by default. + /// </summary> + public string SqlSchema { get; set; } + + /// <summary> + /// Gets or sets the desired query parallelism within a single node. + /// Query executor may or may not use this hint, depending on estimated query cost. + /// <para /> + /// Default is <see cref="DefaultQueryParallelism"/>. + /// </summary> + [DefaultValue(DefaultQueryParallelism)] + public int QueryParallelism { get; set; } } } http://git-wip-us.apache.org/repos/asf/ignite/blob/1816fb92/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 82eb465..70b1fc4 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd +++ b/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd @@ -805,6 +805,46 @@ <xs:documentation>Maximum size of SQL inline index. Part of indexed value will be placed directly to index pages, thus minimizing data page accesses and increasing query performance.</xs:documentation> </xs:annotation> </xs:attribute> + <xs:attribute name="onheapCacheEnabled" type="xs:boolean"> + <xs:annotation> + <xs:documentation>Whether on-heap cache is enabled for the off-heap based page memory.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="storeConcurrentLoadAllThreshold" type="xs:int"> + <xs:annotation> + <xs:documentation>Threshold to use when multiple keys are being loaded from an underlying cache store.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="rebalanceOrder" type="xs:int"> + <xs:annotation> + <xs:documentation>Caches with bigger RebalanceOrder are rebalanced later than caches with smaller RebalanceOrder. 0 for unordered (immediate) rebalance.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="rebalanceBatchesPrefetchCount" type="xs:int"> + <xs:annotation> + <xs:documentation>Rebalance batches prefetch count.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="maxQueryIteratorsCount" type="xs:int"> + <xs:annotation> + <xs:documentation>Maximum number of active query iterators.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="queryDetailMetricsSize" type="xs:int"> + <xs:annotation> + <xs:documentation>Size of the query detail metrics to be stored in memory.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="sqlSchema" type="xs:string"> + <xs:annotation> + <xs:documentation>SQL schema. Non-quoted identifiers are not case sensitive. Quoted identifiers are case sensitive. Quoted cache name is used by default.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="queryParallelism" type="xs:int"> + <xs:annotation> + <xs:documentation>Desired query parallelism within a single node.</xs:documentation> + </xs:annotation> + </xs:attribute> </xs:complexType> </xs:element> </xs:sequence>
