[infinispan-dev] Do we need bulk eviction notification?

Vladimir Blagojevic vblagoje at redhat.com
Thu Oct 14 12:35:41 EDT 2010


Excellent! If you would like to implement this feature it would be great! No better way to get familiar with the codebase! If you are already overloaded assign it to me!

Cheers.
On 2010-10-14, at 12:09 PM, 이희승 (Trustin Lee) wrote:

> Sure.  Let me create one and post a reply in this thread soon. :)
> 
> Vladimir Blagojevic wrote:
>> I think this is a great idea Trustin! Do you want to do this through JIRA? 
>> On 2010-10-14, at 7:20 AM, 이희승 (Trustin Lee) wrote:
>> 
>>> Current BoundedConcurrentHashMap notifies EvictionListener for every
>>> evicted entry.  However, as you see from
>>> BoundedConcurrentHashMap.Segment.attemptEviction(..), eviction often
>>> happens in bulk.
>>> 
>>> If these evicted entries are supposed to be passivated, it is often
>>> beneficial to begin a transaction because it often takes much less time
>>> to call commit() less often.  If N entries are evicted:
>>> 
>>> without bulk eviction:
>>> 
>>>   store.store(e1); -- each store implied a commit()
>>>   store.store(..);
>>>   store.store(eN);
>>> 
>>> with bulk eviction:
>>> 
>>>   store.begin(mods(e1, ..., eN), tx, true);
>>> 
>>> so, what do you think about changing the EvictionListener interface like
>>> this:
>>> 
>>>   interface EvictionListener<K, V> {
>>>       void preEvict(K key);
>>>       void postEvict(K key, V value);
>>> 
>>>       void preBulkEvict(Set<K> keys);
>>>       void postBulkEvict(Map<K, V> entries);
>>>   }
>>> 
>>>   abstract class AbstractEvictionListener<K, V>
>>>           implements EvictionListener {
>>>       void preBulkEvict(Set<K> keys) {
>>>            for (K k: keys) { preEvict(k); }
>>>       }
>>>       void postBulkEvict(Set<K> keys) {
>>>            ...
>>>       }
>>>   }
>>> 
>>> I might be missing something though.  Please let me know if there is a
>>> way to achieve similar improvement without this modification.
>>> 
>>> -- 
>>> Trustin Lee - http://gleamynode.net/
>>> 
>>> 
>>> _______________________________________________
>>> infinispan-dev mailing list
>>> infinispan-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>> 
>> --
>> Vladimir Blagojevic
>> JBoss Clustering Team
>> JBoss, by Red Hat
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> infinispan-dev mailing list
>> infinispan-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
> 
> -- 
> Trustin Lee - http://gleamynode.net/
> 
> 
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev

--
Vladimir Blagojevic
JBoss Clustering Team
JBoss, by Red Hat







More information about the infinispan-dev mailing list