Guys,
Resending this question to the dev list. Doesn’t Ignite fire an eviction event whenever an entry is evicted from off-heap memory? D. ---------- Forwarded message ---------- From: Alexei Scherbakov <[hidden email]> Date: Mon, May 16, 2016 at 1:33 AM Subject: Re: Eviction Events with offheap values To: [hidden email] Andrey, thanks for the clarification. Abraham, it seems EvictionPolicy is not appropriate solution for your case. BTW, why user session expiration logic is related to cache size ? In case user sessions expire by timeout the more appropriate solution would be listening to EVT_CACHE_OBJECT_EXPIRED event. You can also set eager expiration by calling CacheConfiguration.setEagerTtl(true) to make Ignite expire values automatically. Did this help? 2016-05-13 19:49 GMT+03:00 Andrey Gura <[hidden email]>: > Alexei, Abraham, > > Eviction policy configuration doesn't make sense for OFFHEAP_TIERED mode. > Eviction policy works only for on heap entries in order to evict entries to > offheap. > > For eviction of entries from offheap memory Ignite internaly uses other > LRU eviction policy and there is no way to change this behaviour via > configuration. > > On Thu, May 12, 2016 at 7:14 PM, Alexei Scherbakov < > [hidden email]> wrote: > >> Hi, >> >> I was not able to reproduce your case. >> In my test I have correct old value on eviction event. >> Please provide a reproducer. >> >> BTW: what are you trying to accomplish? Generally events are not very >> good for cluster performance and may not be delivered in case of the >> listener node failure. >> >> 2016-05-10 9:26 GMT+03:00 abraham <[hidden email]>: >> >>> Hi, >>> >>> I am re-posting an earlier message to which I did not get any replies >>> because I was not subscribed to the mailing list: >>> >>> I am trying to get the values from the eviction events. This works fine >>> with >>> the ONHEAP_TIERED version but not with OFFHEAP_VALUES and OFFHEAP_TIERED >>> - >>> in that cases the hasOldValue is true but the actual value is null. >>> >>> What we are trying to accomplish is to persist entries to a database only >>> when they either get removed, expired or evicted because the max cache >>> size >>> is reached and it looks like those events are the only way to accomplish >>> this. >>> >>> A quick glance at the code would suggest that in the >>> org.apache.ignite.internal.processors.cache.GridCacheEvictionManager one >>> could replace line 708 from >>> >>> CacheObject oldVal = recordable ? entry.rawGet() : null; >>> >>> to >>> >>> CacheObject oldVal = recordable ? entry.rawGetOrUnmarshal(false) : null; >>> >>> to get the values attached to the events. Would that work? >>> >>> Thanks, >>> >>> Abraham >>> >>> >>> >>> -- >>> View this message in context: >>> http://apache-ignite-users.70518.x6.nabble.com/Eviction-Events-with-offheap-values-tp4853.html >>> Sent from the Apache Ignite Users mailing list archive at Nabble.com. >>> >> >> >> >> -- >> >> Best regards, >> Alexei Scherbakov >> > > > > -- > Andrey Gura > GridGain Systems, Inc. > www.gridgain.com > -- Best regards, Alexei Scherbakov |
As I can see from GridCacheSwapManager code Ignite doesn't fire eviction
events from offheap. On offheap evict GridCacheSwapManager does teh following: 1. Updates onOffheapEvict metric if enabled 2. Fires EVT_CACHE_OBJECT_SWAPPED event if swap enabled. On Tue, May 17, 2016 at 3:44 AM, Dmitriy Setrakyan <[hidden email]> wrote: > Guys, > > Resending this question to the dev list. Doesn’t Ignite fire an eviction > event whenever an entry is evicted from off-heap memory? > > D. > > ---------- Forwarded message ---------- > From: Alexei Scherbakov <[hidden email]> > Date: Mon, May 16, 2016 at 1:33 AM > Subject: Re: Eviction Events with offheap values > To: [hidden email] > > > Andrey, thanks for the clarification. > > Abraham, it seems EvictionPolicy is not appropriate solution for your case. > BTW, why user session expiration logic is related to cache size ? > In case user sessions expire by timeout the more appropriate solution would > be listening to > EVT_CACHE_OBJECT_EXPIRED event. > You can also set eager expiration by calling > CacheConfiguration.setEagerTtl(true) > to make Ignite expire values automatically. > > Did this help? > > > 2016-05-13 19:49 GMT+03:00 Andrey Gura <[hidden email]>: > > > Alexei, Abraham, > > > > Eviction policy configuration doesn't make sense for OFFHEAP_TIERED mode. > > Eviction policy works only for on heap entries in order to evict entries > to > > offheap. > > > > For eviction of entries from offheap memory Ignite internaly uses other > > LRU eviction policy and there is no way to change this behaviour via > > configuration. > > > > On Thu, May 12, 2016 at 7:14 PM, Alexei Scherbakov < > > [hidden email]> wrote: > > > >> Hi, > >> > >> I was not able to reproduce your case. > >> In my test I have correct old value on eviction event. > >> Please provide a reproducer. > >> > >> BTW: what are you trying to accomplish? Generally events are not very > >> good for cluster performance and may not be delivered in case of the > >> listener node failure. > >> > >> 2016-05-10 9:26 GMT+03:00 abraham <[hidden email]>: > >> > >>> Hi, > >>> > >>> I am re-posting an earlier message to which I did not get any replies > >>> because I was not subscribed to the mailing list: > >>> > >>> I am trying to get the values from the eviction events. This works fine > >>> with > >>> the ONHEAP_TIERED version but not with OFFHEAP_VALUES and > OFFHEAP_TIERED > >>> - > >>> in that cases the hasOldValue is true but the actual value is null. > >>> > >>> What we are trying to accomplish is to persist entries to a database > only > >>> when they either get removed, expired or evicted because the max cache > >>> size > >>> is reached and it looks like those events are the only way to > accomplish > >>> this. > >>> > >>> A quick glance at the code would suggest that in the > >>> org.apache.ignite.internal.processors.cache.GridCacheEvictionManager > one > >>> could replace line 708 from > >>> > >>> CacheObject oldVal = recordable ? entry.rawGet() : null; > >>> > >>> to > >>> > >>> CacheObject oldVal = recordable ? entry.rawGetOrUnmarshal(false) : > null; > >>> > >>> to get the values attached to the events. Would that work? > >>> > >>> Thanks, > >>> > >>> Abraham > >>> > >>> > >>> > >>> -- > >>> View this message in context: > >>> > http://apache-ignite-users.70518.x6.nabble.com/Eviction-Events-with-offheap-values-tp4853.html > >>> Sent from the Apache Ignite Users mailing list archive at Nabble.com. > >>> > >> > >> > >> > >> -- > >> > >> Best regards, > >> Alexei Scherbakov > >> > > > > > > > > -- > > Andrey Gura > > GridGain Systems, Inc. > > www.gridgain.com > > > > > > -- > > Best regards, > Alexei Scherbakov > -- Andrey Gura GridGain Systems, Inc. www.gridgain.com |
Andrey, I think there should be an eviction event fired, no? Can you please
file a ticket on it? Thanks, D. On Wed, May 18, 2016 at 10:16 AM, Andrey Gura <[hidden email]> wrote: > As I can see from GridCacheSwapManager code Ignite doesn't fire eviction > events from offheap. > > On offheap evict GridCacheSwapManager does teh following: > > 1. Updates onOffheapEvict metric if enabled > 2. Fires EVT_CACHE_OBJECT_SWAPPED event if swap enabled. > > On Tue, May 17, 2016 at 3:44 AM, Dmitriy Setrakyan <[hidden email]> > wrote: > > > Guys, > > > > Resending this question to the dev list. Doesn’t Ignite fire an eviction > > event whenever an entry is evicted from off-heap memory? > > > > D. > > > > ---------- Forwarded message ---------- > > From: Alexei Scherbakov <[hidden email]> > > Date: Mon, May 16, 2016 at 1:33 AM > > Subject: Re: Eviction Events with offheap values > > To: [hidden email] > > > > > > Andrey, thanks for the clarification. > > > > Abraham, it seems EvictionPolicy is not appropriate solution for your > case. > > BTW, why user session expiration logic is related to cache size ? > > In case user sessions expire by timeout the more appropriate solution > would > > be listening to > > EVT_CACHE_OBJECT_EXPIRED event. > > You can also set eager expiration by calling > > CacheConfiguration.setEagerTtl(true) > > to make Ignite expire values automatically. > > > > Did this help? > > > > > > 2016-05-13 19:49 GMT+03:00 Andrey Gura <[hidden email]>: > > > > > Alexei, Abraham, > > > > > > Eviction policy configuration doesn't make sense for OFFHEAP_TIERED > mode. > > > Eviction policy works only for on heap entries in order to evict > entries > > to > > > offheap. > > > > > > For eviction of entries from offheap memory Ignite internaly uses other > > > LRU eviction policy and there is no way to change this behaviour via > > > configuration. > > > > > > On Thu, May 12, 2016 at 7:14 PM, Alexei Scherbakov < > > > [hidden email]> wrote: > > > > > >> Hi, > > >> > > >> I was not able to reproduce your case. > > >> In my test I have correct old value on eviction event. > > >> Please provide a reproducer. > > >> > > >> BTW: what are you trying to accomplish? Generally events are not very > > >> good for cluster performance and may not be delivered in case of the > > >> listener node failure. > > >> > > >> 2016-05-10 9:26 GMT+03:00 abraham <[hidden email]>: > > >> > > >>> Hi, > > >>> > > >>> I am re-posting an earlier message to which I did not get any replies > > >>> because I was not subscribed to the mailing list: > > >>> > > >>> I am trying to get the values from the eviction events. This works > fine > > >>> with > > >>> the ONHEAP_TIERED version but not with OFFHEAP_VALUES and > > OFFHEAP_TIERED > > >>> - > > >>> in that cases the hasOldValue is true but the actual value is null. > > >>> > > >>> What we are trying to accomplish is to persist entries to a database > > only > > >>> when they either get removed, expired or evicted because the max > cache > > >>> size > > >>> is reached and it looks like those events are the only way to > > accomplish > > >>> this. > > >>> > > >>> A quick glance at the code would suggest that in the > > >>> org.apache.ignite.internal.processors.cache.GridCacheEvictionManager > > one > > >>> could replace line 708 from > > >>> > > >>> CacheObject oldVal = recordable ? entry.rawGet() : null; > > >>> > > >>> to > > >>> > > >>> CacheObject oldVal = recordable ? entry.rawGetOrUnmarshal(false) : > > null; > > >>> > > >>> to get the values attached to the events. Would that work? > > >>> > > >>> Thanks, > > >>> > > >>> Abraham > > >>> > > >>> > > >>> > > >>> -- > > >>> View this message in context: > > >>> > > > http://apache-ignite-users.70518.x6.nabble.com/Eviction-Events-with-offheap-values-tp4853.html > > >>> Sent from the Apache Ignite Users mailing list archive at Nabble.com. > > >>> > > >> > > >> > > >> > > >> -- > > >> > > >> Best regards, > > >> Alexei Scherbakov > > >> > > > > > > > > > > > > -- > > > Andrey Gura > > > GridGain Systems, Inc. > > > www.gridgain.com > > > > > > > > > > > -- > > > > Best regards, > > Alexei Scherbakov > > > > > > -- > Andrey Gura > GridGain Systems, Inc. > www.gridgain.com > |
I don't think that evicition from offheap to swap should fire
EVT_CACHE_OBJECT_EXPIRED event because it will indistinguishable from normal eviction event. On Fri, May 20, 2016 at 3:06 AM, Dmitriy Setrakyan <[hidden email]> wrote: > Andrey, I think there should be an eviction event fired, no? Can you please > file a ticket on it? > > Thanks, > D. > > On Wed, May 18, 2016 at 10:16 AM, Andrey Gura <[hidden email]> wrote: > > > As I can see from GridCacheSwapManager code Ignite doesn't fire eviction > > events from offheap. > > > > On offheap evict GridCacheSwapManager does teh following: > > > > 1. Updates onOffheapEvict metric if enabled > > 2. Fires EVT_CACHE_OBJECT_SWAPPED event if swap enabled. > > > > On Tue, May 17, 2016 at 3:44 AM, Dmitriy Setrakyan < > [hidden email]> > > wrote: > > > > > Guys, > > > > > > Resending this question to the dev list. Doesn’t Ignite fire an > eviction > > > event whenever an entry is evicted from off-heap memory? > > > > > > D. > > > > > > ---------- Forwarded message ---------- > > > From: Alexei Scherbakov <[hidden email]> > > > Date: Mon, May 16, 2016 at 1:33 AM > > > Subject: Re: Eviction Events with offheap values > > > To: [hidden email] > > > > > > > > > Andrey, thanks for the clarification. > > > > > > Abraham, it seems EvictionPolicy is not appropriate solution for your > > case. > > > BTW, why user session expiration logic is related to cache size ? > > > In case user sessions expire by timeout the more appropriate solution > > would > > > be listening to > > > EVT_CACHE_OBJECT_EXPIRED event. > > > You can also set eager expiration by calling > > > CacheConfiguration.setEagerTtl(true) > > > to make Ignite expire values automatically. > > > > > > Did this help? > > > > > > > > > 2016-05-13 19:49 GMT+03:00 Andrey Gura <[hidden email]>: > > > > > > > Alexei, Abraham, > > > > > > > > Eviction policy configuration doesn't make sense for OFFHEAP_TIERED > > mode. > > > > Eviction policy works only for on heap entries in order to evict > > entries > > > to > > > > offheap. > > > > > > > > For eviction of entries from offheap memory Ignite internaly uses > other > > > > LRU eviction policy and there is no way to change this behaviour via > > > > configuration. > > > > > > > > On Thu, May 12, 2016 at 7:14 PM, Alexei Scherbakov < > > > > [hidden email]> wrote: > > > > > > > >> Hi, > > > >> > > > >> I was not able to reproduce your case. > > > >> In my test I have correct old value on eviction event. > > > >> Please provide a reproducer. > > > >> > > > >> BTW: what are you trying to accomplish? Generally events are not > very > > > >> good for cluster performance and may not be delivered in case of the > > > >> listener node failure. > > > >> > > > >> 2016-05-10 9:26 GMT+03:00 abraham <[hidden email]>: > > > >> > > > >>> Hi, > > > >>> > > > >>> I am re-posting an earlier message to which I did not get any > replies > > > >>> because I was not subscribed to the mailing list: > > > >>> > > > >>> I am trying to get the values from the eviction events. This works > > fine > > > >>> with > > > >>> the ONHEAP_TIERED version but not with OFFHEAP_VALUES and > > > OFFHEAP_TIERED > > > >>> - > > > >>> in that cases the hasOldValue is true but the actual value is null. > > > >>> > > > >>> What we are trying to accomplish is to persist entries to a > database > > > only > > > >>> when they either get removed, expired or evicted because the max > > cache > > > >>> size > > > >>> is reached and it looks like those events are the only way to > > > accomplish > > > >>> this. > > > >>> > > > >>> A quick glance at the code would suggest that in the > > > >>> > org.apache.ignite.internal.processors.cache.GridCacheEvictionManager > > > one > > > >>> could replace line 708 from > > > >>> > > > >>> CacheObject oldVal = recordable ? entry.rawGet() : null; > > > >>> > > > >>> to > > > >>> > > > >>> CacheObject oldVal = recordable ? entry.rawGetOrUnmarshal(false) : > > > null; > > > >>> > > > >>> to get the values attached to the events. Would that work? > > > >>> > > > >>> Thanks, > > > >>> > > > >>> Abraham > > > >>> > > > >>> > > > >>> > > > >>> -- > > > >>> View this message in context: > > > >>> > > > > > > http://apache-ignite-users.70518.x6.nabble.com/Eviction-Events-with-offheap-values-tp4853.html > > > >>> Sent from the Apache Ignite Users mailing list archive at > Nabble.com. > > > >>> > > > >> > > > >> > > > >> > > > >> -- > > > >> > > > >> Best regards, > > > >> Alexei Scherbakov > > > >> > > > > > > > > > > > > > > > > -- > > > > Andrey Gura > > > > GridGain Systems, Inc. > > > > www.gridgain.com > > > > > > > > > > > > > > > > -- > > > > > > Best regards, > > > Alexei Scherbakov > > > > > > > > > > > -- > > Andrey Gura > > GridGain Systems, Inc. > > www.gridgain.com > > > -- Andrey Gura GridGain Systems, Inc. www.gridgain.com |
Free forum by Nabble | Edit this page |