[infinispan-dev] keySet(), values() and entrySet() not implemented

Galder Zamarreno galder.zamarreno at redhat.com
Thu Jun 4 05:20:45 EDT 2009



Manik Surtani wrote:
> +1.
> 
> Implementing these naively is easy; anything else is much harder.  Here 
> are some basic thoughts.
> 
> If we are in LOCAL or REPL mode, this is straightforward *if* we ignore 
> cache stores.  If we take cache stores or DIST into account, we have the 
> potential for instant OOMs.  Even if we use custom collections that load 
> lazily from a store or across a cluster, the collections still need to 
> efficiently handle contains(), size(), etc.
> 
> Perhaps we should just limit these to reporting what is local, and 
> in-memory only.  Clearly Javadoc'ed, of course, to detail these 
> limitations - along with a general recommendation that these are 
> inherited from ConcurrentMap and not expected to be used in any 
> extensive or meaningful way.

+1. I like the idea of only reporting what's available locally + 
documenting it correctly.

> 
> A few other thoughts (and these should be javadoc'ed too):
> 
> * These collections should always be immutable
> * These methods do not participate in any transactions

+1 to both.

I volunteer to implement this unless someone else wants to do it?

> 
> 
> 
> On 4 Jun 2009, at 09:47, Galder Zamarreno wrote:
> 
>> Hi,
>>
>> keySet(), values(), entrySet() do not seem to be implemented at the 
>> moment:
>>
>>   public Set<K> keySet() {
>>      throw new UnsupportedOperationException("TODO implement me"); // 
>> TODO implement me
>>   }
>>
>>   public Collection<V> values() {
>>      throw new UnsupportedOperationException("TODO implement me"); // 
>> TODO implement me
>>   }
>>
>>   public Set<Map.Entry<K, V>> entrySet() {
>>      throw new UnsupportedOperationException("TODO implement me"); // 
>> TODO implement me
>>   }
>>
>> We should be implementing these methods, shouldn't we? Users might 
>> want to iterate the map for example to print the contents or to verify 
>> it contains what they put on it...etc.
>>
>> I can't see a JIRA for it, so I'll open one so that this gets 
>> implemented for Beta1 unless someone has any objections.
>>
>> On IRC, Mircea said it might very costly, specially for dist, but we 
>> still need it regardless, otherwise we're not fully implementing the 
>> ConcurrentMap interface and these are commonly used methods.
>>
>> Regards,
>> -- 
>> Galder Zamarreño
>> Sr. Software Maintenance Engineer
>> JBoss, a division of Red Hat
>> _______________________________________________
>> infinispan-dev mailing list
>> infinispan-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
> 
> -- 
> Manik Surtani
> manik at jboss.org
> Lead, Infinispan
> Lead, JBoss Cache
> http://www.infinispan.org
> http://www.jbosscache.org
> 
> 
> 
> 

-- 
Galder Zamarreño
Sr. Software Maintenance Engineer
JBoss, a division of Red Hat



More information about the infinispan-dev mailing list