Andrey,

Using factory instead of policy instance in configuration makes sense to
me, I think we should do this change.

As for Hadoop module issue, is it possible to do the mentioned validation
after creating the policy? I think that should fix the problem.

-Val

On Thu, Oct 19, 2017 at 7:50 AM Andrey Mashenkov <andrey.mashen...@gmail.com>
wrote:

> Hi Igniters,
>
> I'm working on a ticket IGNITE-6649 [1] and got stuck.
> Currently, we allow user to set EvictionPolicy instance into configuration
> instead of factory.
> The leads to some isses when user tries to reuse EvictionPolicy instance,
> e.g. it doesn't clean its queue on cache stop.
>
> Seems, we should replace EvictionPolicy with its factory as policy objec is
> a statefull object and current approach is error prone.
>
> The issue I faced is that we make checks for EvicitonPolicy derives some
> known class in several code places.
> E.g. in HadoopModule you can find IgfsPerBlockLruEvictionPolicy usages.
> What will be correct way to overwork this with using facrories?
>
>
> Also, I've noticed that we check EvictionPolicy instances if they implement
> LifecycleAware interface and no one policy available out-of-box really
> implements it.
> The second way here is to make these EvictionPolicies implements
> LifecycleAware interface and gracefully clean their queues.
> This will resolve the issue for case when user recreate cache with same
> configuration instance,
> but seem will not help in case when user share EvictionPolicy instance for
> several caches.
>
>
> Also`EvictionPolicies has non-transient "queue" field, so queue may leak to
> another node.
> I'm not sure it can happens, I'll check.
>
> Thoughts?
>
>
>
> [1] https://issues.apache.org/jira/browse/IGNITE-6649
>
> --
> Best regards,
> Andrey V. Mashenkov
>

Reply via email to