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(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/infinispan-dev
--
Manik Surtani
manik(a)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