From commits-return-116593-archive-asf-public=cust-asf.ponee.io@ignite.apache.org Mon Jan 22 17:17:07 2018 Return-Path: X-Original-To: archive-asf-public@eu.ponee.io Delivered-To: archive-asf-public@eu.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by mx-eu-01.ponee.io (Postfix) with ESMTP id 4A914180609 for ; Mon, 22 Jan 2018 17:17:07 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 3A2F2160C4C; Mon, 22 Jan 2018 16:17:07 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id DE754160C3A for ; Mon, 22 Jan 2018 17:17:05 +0100 (CET) Received: (qmail 71574 invoked by uid 500); 22 Jan 2018 16:17:05 -0000 Mailing-List: contact commits-help@ignite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.apache.org Delivered-To: mailing list commits@ignite.apache.org Received: (qmail 71565 invoked by uid 99); 22 Jan 2018 16:17:05 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 22 Jan 2018 16:17:05 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id EDBC2E0885; Mon, 22 Jan 2018 16:17:04 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: av@apache.org To: commits@ignite.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: ignite git commit: IGNITE-6902 Implement new JMX metrics for Memory Regions Date: Mon, 22 Jan 2018 16:17:04 +0000 (UTC) Repository: ignite Updated Branches: refs/heads/master 326c19b58 -> fae726a85 IGNITE-6902 Implement new JMX metrics for Memory Regions Signed-off-by: Anton Vinogradov 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 Authored: Mon Jan 22 19:16:51 2018 +0300 Committer: Anton Vinogradov 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 KnownMappings = new Dictionary { - {"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 = {}; /// /// 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; } /// + /// Gets the size of allocated pages in bytes. + /// + long TotalAllocatedSize { get; } + + /// /// Gets the allocation rate, in pages per second. /// 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. /// float PageFillFactor { get; } + + /// + /// Gets the number of dirty RAM pages. + /// + long DirtyPages { get; } + + /// + /// Gets the rate (pages per second) at which pages get replaced with other pages from persistent storage. + /// + float PageReplaceRate { get; } + + /// + /// Gets the average age (in milliseconds) for pages being replaced from persistent storage. + /// + float PageReplaceAge { get; } + + /// + /// Gets the count of pages loaded to RAM. + /// + long PhysicalMemoryPages { get; } + + /// + /// Gets the size of pages loaded to RAM in bytes. + /// + long PhysicalMemorySize { get; } + + /// + /// Gets checkpointing buffer size in pages. + /// + long CheckpointBufferPages { get; } + + /// + /// Gets checkpointing buffer size in bytes. + /// + long CheckpointBufferSize { get; } + + /// + /// Gets memory page size in bytes. + /// + 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(); } /** */ @@ -47,15 +56,42 @@ namespace Apache.Ignite.Core.Impl public long TotalAllocatedPages { get; private set; } /** */ + public long TotalAllocatedSize { get; private set; } + + /** */ public float AllocationRate { get; private set; } /** */ public float EvictionRate { get; private set; } /** */ + public long DirtyPages { get; private set; } + + /** */ + public float PageReplaceRate { get; private set; } + + /** */ + public float PageReplaceAge { get; private set; } + + /** */ public float LargeEntriesPagesPercentage { get; private set; } /** */ public float PageFillFactor { get; private set; } + + /** */ + public long PhysicalMemoryPages { get; private set; } + + /** */ + public long PhysicalMemorySize { get; private set; } + + /** */ + public long CheckpointBufferPages { get; private set; } + + /** */ + public long CheckpointBufferSize { get; private set; } + + /** */ + public int PageSize { get; private set; } } }