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 <vpyatkov@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?
|