You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by av...@apache.org on 2018/01/22 16:17:04 UTC
ignite git commit: IGNITE-6902 Implement new JMX metrics for Memory
Regions
Repository: ignite
Updated Branches:
refs/heads/master 326c19b58 -> fae726a85
IGNITE-6902 Implement new JMX metrics for Memory Regions
Signed-off-by: Anton Vinogradov <av...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/fae726a8
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/fae726a8
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/fae726a8
Branch: refs/heads/master
Commit: fae726a85942fd529affb8748e1c67573637a401
Parents: 326c19b
Author: Andrey Kuznetsov <st...@gmail.com>
Authored: Mon Jan 22 19:16:51 2018 +0300
Committer: Anton Vinogradov <av...@apache.org>
Committed: Mon Jan 22 19:16:51 2018 +0300
----------------------------------------------------------------------
.../org/apache/ignite/DataRegionMetrics.java | 38 +++++++++++++++++
.../ignite/internal/pagemem/PageMemory.java | 5 +++
.../pagemem/impl/PageMemoryNoStoreImpl.java | 5 +++
.../persistence/DataRegionMetricsImpl.java | 42 +++++++++++++++++-
.../DataRegionMetricsMXBeanImpl.java | 25 +++++++++++
.../persistence/DataRegionMetricsSnapshot.java | 45 ++++++++++++++++++++
.../IgniteCacheDatabaseSharedManager.java | 6 ++-
.../persistence/pagemem/PageMemoryImpl.java | 6 +--
.../platform/cluster/PlatformClusterGroup.java | 16 +++++--
.../ApiParity/DataRegionMetricsParityTest.cs | 10 ++---
.../Cache/DataRegionMetricsTest.cs | 6 +++
.../Apache.Ignite.Core/IDataRegionMetrics.cs | 45 ++++++++++++++++++++
.../Impl/DataRegionMetrics.cs | 36 ++++++++++++++++
13 files changed, 269 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/fae726a8/modules/core/src/main/java/org/apache/ignite/DataRegionMetrics.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/DataRegionMetrics.java b/modules/core/src/main/java/org/apache/ignite/DataRegionMetrics.java
index 25c0db9..f5ae96b 100644
--- a/modules/core/src/main/java/org/apache/ignite/DataRegionMetrics.java
+++ b/modules/core/src/main/java/org/apache/ignite/DataRegionMetrics.java
@@ -64,6 +64,15 @@ public interface DataRegionMetrics {
public long getTotalAllocatedPages();
/**
+ * Gets a total size of memory allocated in the data region. When persistence is disabled, this
+ * metric shows the total size of pages in memory. When persistence is enabled, this metric shows the
+ * total size of pages in memory and on disk.
+ *
+ * @return Total size of memory allocated, in bytes.
+ */
+ public long getTotalAllocatedSize();
+
+ /**
* Gets pages allocation rate of a memory region.
*
* @return Number of allocated pages per second.
@@ -127,4 +136,33 @@ public interface DataRegionMetrics {
* @return Total number of pages loaded to RAM.
*/
public long getPhysicalMemoryPages();
+
+ /**
+ * Gets total size of pages loaded to the RAM. When persistence is disabled, this metric is equal
+ * to {@link #getTotalAllocatedSize()}.
+ *
+ * @return Total size of pages loaded to RAM in bytes.
+ */
+ public long getPhysicalMemorySize();
+
+ /**
+ * Gets checkpoint buffer size in pages.
+ *
+ * @return Checkpoint buffer size in pages.
+ */
+ public long getCheckpointBufferPages();
+
+ /**
+ * Gets checkpoint buffer size in bytes.
+ *
+ * @return Checkpoint buffer size in bytes.
+ */
+ public long getCheckpointBufferSize();
+
+ /**
+ * Gets memory page size.
+ *
+ * @return page size in bytes.
+ */
+ public int getPageSize();
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/fae726a8/modules/core/src/main/java/org/apache/ignite/internal/pagemem/PageMemory.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/PageMemory.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/PageMemory.java
index c20e1a7..6f2e2c9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/PageMemory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/PageMemory.java
@@ -43,4 +43,9 @@ public interface PageMemory extends LifecycleAware, PageIdAllocator, PageSupport
* @return Total number of loaded pages in memory.
*/
public long loadedPages();
+
+ /**
+ * Number of pages used in checkpoint buffer.
+ */
+ public int checkpointBufferPagesCount();
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/fae726a8/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java
index 88237ee..af1555e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java
@@ -821,4 +821,9 @@ public class PageMemoryNoStoreImpl implements PageMemory {
return PageIdUtils.pageIndex(fromSegmentIndex(idx, seqNo - pagesInPrevSegments));
}
}
+
+ /** {@inheritDoc} */
+ public int checkpointBufferPagesCount() {
+ return 0;
+ }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/fae726a8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataRegionMetricsImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataRegionMetricsImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataRegionMetricsImpl.java
index 46988b7..3760cc4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataRegionMetricsImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataRegionMetricsImpl.java
@@ -98,7 +98,17 @@ public class DataRegionMetricsImpl implements DataRegionMetrics, AllocatedPageTr
/** {@inheritDoc} */
@Override public long getTotalAllocatedPages() {
- return metricsEnabled ? totalAllocatedPages.longValue() : 0;
+ if (!metricsEnabled)
+ return 0;
+
+ return totalAllocatedPages.longValue();
+ }
+
+ /** {@inheritDoc} */
+ @Override public long getTotalAllocatedSize() {
+ assert pageMem != null;
+
+ return getTotalAllocatedPages() * pageMem.pageSize();
}
/** {@inheritDoc} */
@@ -171,6 +181,36 @@ public class DataRegionMetricsImpl implements DataRegionMetrics, AllocatedPageTr
return pageMem.loadedPages();
}
+ /** {@inheritDoc} */
+ @Override public long getPhysicalMemorySize() {
+ return getPhysicalMemoryPages() * pageMem.pageSize();
+ }
+
+ /** {@inheritDoc} */
+ @Override public long getCheckpointBufferPages() {
+ if (!metricsEnabled)
+ return 0;
+
+ assert pageMem != null;
+
+ return pageMem.checkpointBufferPagesCount();
+ }
+
+ /** {@inheritDoc} */
+ @Override public long getCheckpointBufferSize() {
+ return getCheckpointBufferPages() * pageMem.pageSize();
+ }
+
+ /** {@inheritDoc} */
+ public int getPageSize() {
+ if (!metricsEnabled)
+ return 0;
+
+ assert pageMem != null;
+
+ return pageMem.pageSize();
+ }
+
/**
* Updates pageReplaceRate metric.
*/
http://git-wip-us.apache.org/repos/asf/ignite/blob/fae726a8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataRegionMetricsMXBeanImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataRegionMetricsMXBeanImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataRegionMetricsMXBeanImpl.java
index 86ea918..fc746fe 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataRegionMetricsMXBeanImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataRegionMetricsMXBeanImpl.java
@@ -67,6 +67,11 @@ class DataRegionMetricsMXBeanImpl implements DataRegionMetricsMXBean {
}
/** {@inheritDoc} */
+ @Override public long getTotalAllocatedSize() {
+ return memMetrics.getTotalAllocatedSize();
+ }
+
+ /** {@inheritDoc} */
@Override public long getDirtyPages() {
return memMetrics.getDirtyPages();
}
@@ -87,6 +92,26 @@ class DataRegionMetricsMXBeanImpl implements DataRegionMetricsMXBean {
}
/** {@inheritDoc} */
+ @Override public long getPhysicalMemorySize() {
+ return memMetrics.getPhysicalMemorySize();
+ }
+
+ /** {@inheritDoc} */
+ @Override public long getCheckpointBufferPages() {
+ return memMetrics.getCheckpointBufferPages();
+ }
+
+ /** {@inheritDoc} */
+ @Override public long getCheckpointBufferSize() {
+ return memMetrics.getCheckpointBufferSize();
+ }
+
+ /** {@inheritDoc} */
+ @Override public int getPageSize() {
+ return memMetrics.getPageSize();
+ }
+
+ /** {@inheritDoc} */
@Override public void rateTimeInterval(long rateTimeInterval) {
if (rateTimeInterval < 1000)
throw new IllegalArgumentException("rateTimeInterval property must be positive " +
http://git-wip-us.apache.org/repos/asf/ignite/blob/fae726a8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataRegionMetricsSnapshot.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataRegionMetricsSnapshot.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataRegionMetricsSnapshot.java
index c9e3d08..d715e82 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataRegionMetricsSnapshot.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataRegionMetricsSnapshot.java
@@ -30,6 +30,9 @@ public class DataRegionMetricsSnapshot implements DataRegionMetrics {
private long totalAllocatedPages;
/** */
+ private long totalAllocatedSize;
+
+ /** */
private float allocationRate;
/** */
@@ -53,12 +56,25 @@ public class DataRegionMetricsSnapshot implements DataRegionMetrics {
/** */
private long physicalMemoryPages;
+ /** */
+ private long physicalMemorySize;
+
+ /** */
+ private long checkpointBufferPages;
+
+ /** */
+ private long checkpointBufferSize;
+
+ /** */
+ private int pageSize;
+
/**
* @param metrics Metrics instance to take a copy.
*/
public DataRegionMetricsSnapshot(DataRegionMetrics metrics) {
name = metrics.getName();
totalAllocatedPages = metrics.getTotalAllocatedPages();
+ totalAllocatedSize = metrics.getTotalAllocatedSize();
allocationRate = metrics.getAllocationRate();
evictionRate = metrics.getEvictionRate();
largeEntriesPagesPercentage = metrics.getLargeEntriesPagesPercentage();
@@ -67,6 +83,10 @@ public class DataRegionMetricsSnapshot implements DataRegionMetrics {
pageReplaceRate = metrics.getPagesReplaceRate();
pageReplaceAge = metrics.getPagesReplaceAge();
physicalMemoryPages = metrics.getPhysicalMemoryPages();
+ physicalMemorySize = metrics.getPhysicalMemorySize();
+ checkpointBufferPages = metrics.getCheckpointBufferPages();
+ checkpointBufferSize = metrics.getCheckpointBufferSize();
+ pageSize = metrics.getPageSize();
}
/** {@inheritDoc} */
@@ -80,6 +100,11 @@ public class DataRegionMetricsSnapshot implements DataRegionMetrics {
}
/** {@inheritDoc} */
+ @Override public long getTotalAllocatedSize() {
+ return totalAllocatedSize;
+ }
+
+ /** {@inheritDoc} */
@Override public float getAllocationRate() {
return allocationRate;
}
@@ -118,4 +143,24 @@ public class DataRegionMetricsSnapshot implements DataRegionMetrics {
@Override public long getPhysicalMemoryPages() {
return physicalMemoryPages;
}
+
+ /** {@inheritDoc} */
+ @Override public long getPhysicalMemorySize() {
+ return physicalMemorySize;
+ }
+
+ /** {@inheritDoc} */
+ @Override public long getCheckpointBufferPages() {
+ return checkpointBufferPages;
+ }
+
+ /** {@inheritDoc} */
+ @Override public long getCheckpointBufferSize() {
+ return checkpointBufferSize;
+ }
+
+ /** {@inheritDoc} */
+ @Override public int getPageSize() {
+ return pageSize;
+ }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/fae726a8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java
index 1260147..8658c97 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java
@@ -927,7 +927,7 @@ public class IgniteCacheDatabaseSharedManager extends GridCacheSharedManagerAdap
) {
memMetrics.persistenceEnabled(false);
- return new PageMemoryNoStoreImpl(
+ PageMemory pageMem = new PageMemoryNoStoreImpl(
log,
memProvider,
cctx,
@@ -936,6 +936,10 @@ public class IgniteCacheDatabaseSharedManager extends GridCacheSharedManagerAdap
memMetrics,
false
);
+
+ memMetrics.pageMemory(pageMem);
+
+ return pageMem;
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/fae726a8/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java
index 2c24cea..f392400 100755
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java
@@ -1435,10 +1435,8 @@ public class PageMemoryImpl implements PageMemoryEx {
return total;
}
- /**
- * Number of used pages in checkpoint buffer.
- */
- public int checkpointBufferPagesCount() {
+ /** {@inheritDoc} */
+ @Override public int checkpointBufferPagesCount() {
return cpBufPagesCntr.get();
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/fae726a8/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cluster/PlatformClusterGroup.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cluster/PlatformClusterGroup.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cluster/PlatformClusterGroup.java
index e0fff66..f95e69b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cluster/PlatformClusterGroup.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cluster/PlatformClusterGroup.java
@@ -17,6 +17,9 @@
package org.apache.ignite.internal.processors.platform.cluster;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.UUID;
import org.apache.ignite.DataRegionMetrics;
import org.apache.ignite.DataStorageMetrics;
import org.apache.ignite.IgniteCache;
@@ -42,10 +45,6 @@ import org.apache.ignite.internal.processors.platform.utils.PlatformUtils;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
import org.jetbrains.annotations.Nullable;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.UUID;
-
/**
* Interop projection.
*/
@@ -551,10 +550,19 @@ public class PlatformClusterGroup extends PlatformAbstractTarget {
writer.writeString(metrics.getName());
writer.writeLong(metrics.getTotalAllocatedPages());
+ writer.writeLong(metrics.getTotalAllocatedSize());
writer.writeFloat(metrics.getAllocationRate());
writer.writeFloat(metrics.getEvictionRate());
writer.writeFloat(metrics.getLargeEntriesPagesPercentage());
writer.writeFloat(metrics.getPagesFillFactor());
+ writer.writeLong(metrics.getDirtyPages());
+ writer.writeFloat(metrics.getPagesReplaceRate());
+ writer.writeFloat(metrics.getPagesReplaceAge());
+ writer.writeLong(metrics.getPhysicalMemoryPages());
+ writer.writeLong(metrics.getPhysicalMemorySize());
+ writer.writeLong(metrics.getCheckpointBufferPages());
+ writer.writeLong(metrics.getCheckpointBufferSize());
+ writer.writeInt(metrics.getPageSize());
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/fae726a8/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ApiParity/DataRegionMetricsParityTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ApiParity/DataRegionMetricsParityTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ApiParity/DataRegionMetricsParityTest.cs
index d85d391..bea31b1 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ApiParity/DataRegionMetricsParityTest.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ApiParity/DataRegionMetricsParityTest.cs
@@ -28,15 +28,13 @@ namespace Apache.Ignite.Core.Tests.ApiParity
/** Known name mappings. */
private static readonly Dictionary<string, string> KnownMappings = new Dictionary<string, string>
{
- {"PagesFillFactor", "PageFillFactor"}
+ {"PagesFillFactor", "PageFillFactor"},
+ {"PagesReplaceRate", "PageReplaceRate"},
+ {"PagesReplaceAge", "PageReplaceAge"}
};
/** Properties that are missing on .NET side. */
- private static readonly string[] MissingProperties =
- {
- // IGNITE-7128
- "DirtyPages", "PagesReplaceRate", "PagesReplaceAge", "PhysicalMemoryPages"
- };
+ private static readonly string[] MissingProperties = {};
/// <summary>
/// Tests the API parity.
http://git-wip-us.apache.org/repos/asf/ignite/blob/fae726a8/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/DataRegionMetricsTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/DataRegionMetricsTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/DataRegionMetricsTest.cs
index dd1cf53..cf306e5 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/DataRegionMetricsTest.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/DataRegionMetricsTest.cs
@@ -56,6 +56,9 @@ namespace Apache.Ignite.Core.Tests.Cache
Assert.AreEqual(0, memMetrics.LargeEntriesPagesPercentage);
Assert.Greater(memMetrics.PageFillFactor, 0);
Assert.Greater(memMetrics.TotalAllocatedPages, 1000);
+ Assert.Greater(memMetrics.PhysicalMemoryPages, 1000);
+ Assert.AreEqual(memMetrics.TotalAllocatedSize, memMetrics.TotalAllocatedPages * memMetrics.PageSize);
+ Assert.AreEqual(memMetrics.PhysicalMemorySize, memMetrics.PhysicalMemoryPages * memMetrics.PageSize);
var sysMetrics = metrics[2];
Assert.AreEqual("sysMemPlc", sysMetrics.Name);
@@ -73,6 +76,9 @@ namespace Apache.Ignite.Core.Tests.Cache
Assert.AreEqual(0, memMetrics.LargeEntriesPagesPercentage);
Assert.Greater(memMetrics.PageFillFactor, 0);
Assert.Greater(memMetrics.TotalAllocatedPages, 1000);
+ Assert.Greater(memMetrics.PhysicalMemoryPages, 1000);
+ Assert.AreEqual(memMetrics.TotalAllocatedSize, memMetrics.TotalAllocatedPages * memMetrics.PageSize);
+ Assert.AreEqual(memMetrics.PhysicalMemorySize, memMetrics.PhysicalMemoryPages * memMetrics.PageSize);
sysMetrics = ignite.GetDataRegionMetrics("sysMemPlc");
Assert.AreEqual("sysMemPlc", sysMetrics.Name);
http://git-wip-us.apache.org/repos/asf/ignite/blob/fae726a8/modules/platforms/dotnet/Apache.Ignite.Core/IDataRegionMetrics.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/IDataRegionMetrics.cs b/modules/platforms/dotnet/Apache.Ignite.Core/IDataRegionMetrics.cs
index 0cb6192..7be35e0 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/IDataRegionMetrics.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/IDataRegionMetrics.cs
@@ -33,6 +33,11 @@ namespace Apache.Ignite.Core
long TotalAllocatedPages { get; }
/// <summary>
+ /// Gets the size of allocated pages in bytes.
+ /// </summary>
+ long TotalAllocatedSize { get; }
+
+ /// <summary>
/// Gets the allocation rate, in pages per second.
/// </summary>
float AllocationRate { get; }
@@ -51,5 +56,45 @@ namespace Apache.Ignite.Core
/// Gets the page fill factor: free space to overall size ratio across all pages.
/// </summary>
float PageFillFactor { get; }
+
+ /// <summary>
+ /// Gets the number of dirty RAM pages.
+ /// </summary>
+ long DirtyPages { get; }
+
+ /// <summary>
+ /// Gets the rate (pages per second) at which pages get replaced with other pages from persistent storage.
+ /// </summary>
+ float PageReplaceRate { get; }
+
+ /// <summary>
+ /// Gets the average age (in milliseconds) for pages being replaced from persistent storage.
+ /// </summary>
+ float PageReplaceAge { get; }
+
+ /// <summary>
+ /// Gets the count of pages loaded to RAM.
+ /// </summary>
+ long PhysicalMemoryPages { get; }
+
+ /// <summary>
+ /// Gets the size of pages loaded to RAM in bytes.
+ /// </summary>
+ long PhysicalMemorySize { get; }
+
+ /// <summary>
+ /// Gets checkpointing buffer size in pages.
+ /// </summary>
+ long CheckpointBufferPages { get; }
+
+ /// <summary>
+ /// Gets checkpointing buffer size in bytes.
+ /// </summary>
+ long CheckpointBufferSize { get; }
+
+ /// <summary>
+ /// Gets memory page size in bytes.
+ /// </summary>
+ int PageSize { get; }
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/fae726a8/modules/platforms/dotnet/Apache.Ignite.Core/Impl/DataRegionMetrics.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/DataRegionMetrics.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/DataRegionMetrics.cs
index 7b174a6..c542836 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/DataRegionMetrics.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/DataRegionMetrics.cs
@@ -34,10 +34,19 @@ namespace Apache.Ignite.Core.Impl
Name = reader.ReadString();
TotalAllocatedPages = reader.ReadLong();
+ TotalAllocatedSize = reader.ReadLong();
AllocationRate = reader.ReadFloat();
EvictionRate = reader.ReadFloat();
LargeEntriesPagesPercentage = reader.ReadFloat();
PageFillFactor = reader.ReadFloat();
+ DirtyPages = reader.ReadLong();
+ PageReplaceRate = reader.ReadFloat();
+ PageReplaceAge = reader.ReadFloat();
+ PhysicalMemoryPages = reader.ReadLong();
+ PhysicalMemorySize = reader.ReadLong();
+ CheckpointBufferPages = reader.ReadLong();
+ CheckpointBufferSize = reader.ReadLong();
+ PageSize = reader.ReadInt();
}
/** <inheritdoc /> */
@@ -47,15 +56,42 @@ namespace Apache.Ignite.Core.Impl
public long TotalAllocatedPages { get; private set; }
/** <inheritdoc /> */
+ public long TotalAllocatedSize { get; private set; }
+
+ /** <inheritdoc /> */
public float AllocationRate { get; private set; }
/** <inheritdoc /> */
public float EvictionRate { get; private set; }
/** <inheritdoc /> */
+ public long DirtyPages { get; private set; }
+
+ /** <inheritdoc /> */
+ public float PageReplaceRate { get; private set; }
+
+ /** <inheritdoc /> */
+ public float PageReplaceAge { get; private set; }
+
+ /** <inheritdoc /> */
public float LargeEntriesPagesPercentage { get; private set; }
/** <inheritdoc /> */
public float PageFillFactor { get; private set; }
+
+ /** <inheritdoc /> */
+ public long PhysicalMemoryPages { get; private set; }
+
+ /** <inheritdoc /> */
+ public long PhysicalMemorySize { get; private set; }
+
+ /** <inheritdoc /> */
+ public long CheckpointBufferPages { get; private set; }
+
+ /** <inheritdoc /> */
+ public long CheckpointBufferSize { get; private set; }
+
+ /** <inheritdoc /> */
+ public int PageSize { get; private set; }
}
}