Denis, I disagree. readOffheapPointer doesn't touch offheap get/put metrics deliberately. User should have exactly one offheap get operation per cache.get call.
Vlad, as I can see offheap gets metric increments every time when get, contains, etc operations perform, so it should work. If you have more then one node then cluster metrics should be updated eventually with discovery message and immediately for local node. So if local node isn't primary for your key you can get metrics with some delay. If particular metric doesn't change then we need find method that should be responsible for update of this metric. On Tue, May 24, 2016 at 4:27 PM, Denis Magda <dma...@gridgain.com> wrote: > 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? > > -- Andrey Gura GridGain Systems, Inc. www.gridgain.com