Hi Vlad, In my understanding this should work or implemented this way for OFFHEAP_TIRED cache.
CacheMetrics.getCacheEvictions - incremented on every put & get operation because an entry “goes through” heap memory and evicted from there when it’s no longer needed (usually at the end of get or put operation). CacheMetrics.getOffHeapGets - should be incremented every time the off-heap layer is accessed for a particular key. This can be an ordinary cache.get() call or during a cache.put() that unswaps an entry before the new value is put. In my understanding you can increase this statistics exactly in this method - GridCacheSwapManager#readOffheapPointer. CacheMetrics.getOffHeapPuts - should be incremented every time a put operations happens and an entry is moved to off heap. — Denis > On May 24, 2016, at 2:47 PM, Vladislav Pyatkov <vpyat...@gridgain.com> wrote: > > I try to understand how statistics work and fixe some problem. > I first case: > cache.put(46744, "val 46744"); > cache.get(46744); > In statistic I see: > 2016-05-24 14:19:31 INFO ServerNode:78 - Swap put 0 get 0 (0, 0) entries > count 0 > 2016-05-24 14:19:31 INFO ServerNode:81 - OffHeap put 1 get 0 (0, 0) > entries count 1 > 2016-05-24 14:19:31 INFO ServerNode:84 - OnHeap put 1 get 1 (1, 0) > > In brackets Hit and Miss values. > > But I asume OffHeap get must to be one, because cache configured as > OFFHEAP_TIERED and swapEnabled - false. > > My investigation has lead to method > org.apache.ignite.internal.processors.cache.GridCacheSwapManager#readOffheapPointer. > The method read only pointer from heap, but not get bytes of value and not > increase any statistic. > If each receive pointer increase statistic (OffHeap get I mean), then each > OffHeap put will increased OffHeap get, because readOffheapPointer take > place on OffHeap put. > > The thing confuses my: > Has any rules metrics works? > Where works with metrics value must take place?