Dmitriy, 

I have some high level concerns.

Presently, Ignite already exposes memory/data related metrics via MemoryMetrics 
and CacheMetrics interface.

Looking at PersistentStoreMetrics interface I can’t get why methods like 
getMemorySize(), getPagesInMemory(), getPagesSizeInMemory(), etc. are NOT in 
MemoryMetrics interface.

Next, I wouldn’t make out PersistentStore*Cache*Metrics interface that contains 
a big subset of the methods from PersistentStoreMetric. There just should be 
some API call that either returns global metrics or cache specific ones. Plus, 
some of the methods might be added to existing CacheInterface. Why not.

I prefer to address this first. Guys, any other thoughts on this?

—
Denis

> On May 17, 2017, at 4:16 AM, Dmitriy Govorukhin 
> <dmitriy.govoruk...@gmail.com> wrote:
> 
> Folk,
> 
> As you know, ignite 2.1 will contain new module (pds), it will be
> provide ability to store data on disk. Let's discuss what type of
> metrics we need for this?
> I think it must be metrics per memory policy, per cache, checkpoint,
> and global metrics which will be aggregate all metrics.
> 
> I did sketch.
> 
> PersistentStoreMetrics.java
> 
> public interface PersistentStoreMetrics {
> 
>    // Global metrics.
> 
>    public long getMemorySize();
> 
>    public long getDiskSize();
> 
>    public long getPagesInMemory();
> 
>    public long getPagesSizeInMemory();
> 
>    public long getPagesOnDisk();
> 
>    public long getPagesSizeOnDisk();
> 
>    public long getFreePages();
> 
>    public long getFreePagesSize();
> 
>    public long getDirtyPages();
> 
>    public long getDirtyPagesSize();
> 
>    public long walLog();
> 
>    public long walLogSize();
> 
>    // Frequency.
> 
>    public long getPagesRead();
> 
>    public long getPagesWrite();
> 
>    public long getFsync();
> 
>    public long getWal();
> 
>    public long getAverageWalFsyncTime();
> 
>    // Per cache.
> 
>    public PersistentStoreCacheMetrics cache(String name);
> 
>    public PersistentStoreCacheMetrics cache(int cacheId);
> 
>    // For last checkpoint.
> 
>    public PersistentStoreCheckpointMetrics getLastCheckPoint();
> }
> 
>>>>>>>>>>>>>>>>>>>>>>>> 
> 
> PersistentStoreCacheMetrics.java
> 
> public interface PersistentStoreCacheMetrics {
> 
>    public String name();
> 
>    public double getFillFactor();
> 
>    public double getFillFactor(int part);
> 
>    public long getMemorySize();
> 
>    public long getDiskSize();
> 
>    public long getPagesInMemory();
> 
>    public long getPagesSizeInMemory();
> 
>    public long getPagesOnDisk();
> 
>    public long getPagesSizeOnDisk();
> 
>    public long getFreePages();
> 
>    public long getFreePagesSize();
> 
>    public long getDirtyPages();
> 
>    public long getDirtyPagesSize();
> 
>    public long getPagesRead();
> 
>    public long getPagesWritten();
> }
> 
>>>>>>>>>>>>>>>>>>>>>>>> 
> 
> PersistentStoreCheckpointMetrics.java
> 
> public interface PersistentStoreCheckpointMetrics {
> 
>    public long getTotalPages();
> 
>    //TODO Page type is internal?
>    public long[] pagesType();
> 
>    public long getExecutingTime();
> 
>    public long getFsyncTime();
> 
>    public long getPagesCopyOnWrite();
> }

Reply via email to