[infinispan-dev] Evaluating Infinispan
Krzysztof Sobolewski
Krzysztof.Sobolewski at atm.com.pl
Thu Sep 17 05:16:49 EDT 2009
I'm currently evaluating Infinispan for our internal project (porting from
JBoss Cache) and I have some comments/issues - and probably more to come. I
figure I should post them before Infinispan leaves beta stage :) If they're
JIRA-worthy, I can also repost them there.
First, something small: TreeCache.getCache() (I obviously first try to use the
tree compatibility layer) returns Cache<K,V>, which is obviously wrong, as the
TreeCacheImpl returns Cache (raw type) which is in fact
AtomicMapCache<NodeKey,Object> (and really, really in fact it's
AtomicMapCache<NodeKey,AtomicMap<?,?>).
As a side note, I don't really like how the getAtomicMap() overrides the V
type parameter of Cache. The cache is supposed to store and return V's, but
this methods forcibly puts AtomicHashMap as values. I say this will lead to
problems. Maybe it's better to make AtomicMapCache<K> (one type parameter)
extend Cache<K,AtomicMap<?,?>> (maybe even with optional type parameters for
AtomicMap).
As another side note, I can see that you're not big fans of generics :)
Second issue I wanted to mention, which also exists in JBoss Cache but I never
got around to reporting a bug, is that the JDBC cache stores use lock
striping. I've run into *lots* of trouble with lock striping (here and in MVCC
lock manager) so I always turn it off (or reimplement, if there's no option for
that). Increasing the concurrency level is not an option because whatever it
is, it's still not correct (as in: non-zero probability of collision), at
least for my use cases.
So... Can I ask for an option to not do lock striping... anywhere? :)
-KS
More information about the infinispan-dev
mailing list