Guys, I think it makes little or no sense to keep blocks on-heap. If I
understand correctly, the eviction policy was used in combined modes where
partial data eviction is allowed. To make this work in the new PageMemory
architecture, we only need to make sure that IGFS block size equals to the
data page free space size. In this case, our standard offheap eviction
policy will be semantically equal to the old per-block eviction policy. No
need to go on-heap at all.

Thoughts?

2017-05-25 4:21 GMT+03:00 Denis Magda <[email protected]>:

> Hi Ivan,
>
> I’m for this approach
>
> > 2) leave it as is, but explain in javadocs that it only works for on-heap
> > layer, that does not in fact evict  blocks from the underlying offheap
> > layer.
>
> because it should be feasible to enable on-heap caching for IGFS, right?
> Using the memory policies. So, I would reimplement the tests with the
> on-heap caching enabling and checking up that data is pushed out of the
> heap.
>
> —
> Denis
>
> > On May 24, 2017, at 9:57 AM, Ivan V. <[email protected]> wrote:
> >
> > Hi, colleagues,
> >
> > as Ignite caches moved to paged offheap memory , the
> > IgfsPerBlockLruEvictionPolicy does not seem to work as expected any more,
> > because
> > 1) interface org.apache.ignite.cache.eviction.EvictionPolicy now only
> > defines "eviction from on-heap", not a real eviction, because each
> on-heap
> > cache is now accompanied with underlying off-heap cache. It can become
> > "real eviction" only for "on-heap-only" mode caches, once they get
> > implemented.
> > 2) for off-heap eviction an entire page is evicted, not a specific k-v
> > pair, and LRU policy is not exactly LRU any more (see
> > org.apache.ignite.configuration.DataPageEvictionMode#RANDOM_LRU). So, it
> > appears to be impossible to re-implement this policy for the off-heap
> layer.
> >
> > Thus, now IgfsPerBlockLruEvictionPolicy is not quite valid, and some of
> > corresponding tests fail
> > (org.apache.ignite.internal.processors.igfs.
> IgfsCachePerBlockLruEvictionPolicySelfTest#testDataSizeEviction,
> > org.apache.ignite.internal.processors.igfs.
> IgfsCachePerBlockLruEvictionPolicySelfTest#testBlockCountEviction)
> >
> > So, the options I see are:
> > 1) deprecate/remove IgfsPerBlockLruEvictionPolicy ;
> > 2) leave it as is, but explain in javadocs that it only works for on-heap
> > layer, that does not in fact evict  blocks from the underlying offheap
> > layer.
> >
> > Please share your opinions.
>
>

Reply via email to