ignite-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From a.@apache.org
Subject ignite git commit: IGNITE-6902 Implement new JMX metrics for Memory Regions
Date Mon, 22 Jan 2018 16:17:04 GMT
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 <stkuzma@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; }
     }
 }


Mime
View raw message