[infinispan-dev] Cache Java 8 API proposal - First draft

Radim Vansa rvansa at redhat.com
Fri Mar 13 05:20:53 EDT 2015


Q1: What about versions? I really like the approach taken for 
conditional operations in RemoteCache, because versions (as opposed to 
replace(key, old, new)) get rid of ABA problems, wouldn't have problems 
in return values after operation retry during topology change, reduce 
overhead of sending big old values etc... The functional API luckily 
allows 'any' operation, but this seems to me as such an useful 
functionality that we should not force users implementing versions in 
their values (unless they want to); versions should be part of Metadata 
(at least I hope so - see CacheEntry vs. Metadata thread). Since this 
API should be the most comprehensive one on which we'll build even more 
complicated data structures than atomic counters, I somehow lack the 
access to Metadata there (though I understand that you didn't want to 
bloat it).

Q2: For performance, I would expect that a (replicated?) cache for 
well-known/registered lambdas could be useful. Then, you'd need the 
functional API with direct lambda IDs - you don't want to do the map 
lookup every time. Or any other ideas? I think you said that you 
benchmarked the serialization overhead, can you present the numbers?

Q3: Do you expect that in non-tx mode the primary will replicate to 
backup the lambda, or full value? With non-trivial lambdas, after node 
crash when the backups have different values, this can lead to forever 
diverging values. But yes, this could be chosen with a flag.

Radim

On 03/13/2015 09:10 AM, Galder Zamarreño wrote:
> Hi all,
>
> We're starting to work on some prototypes for the Java 8 API coming up in Infinispan 8.
>
> I've written a design wiki for a replacement of our main embedded Cache interface that takes advantage of Java 8 improvements:
> https://github.com/infinispan/infinispan/wiki/Java-8-API-proposal
>
> It'd be great to hear your thoughts.
>
> Proposals for Java 8 versions for cache manager, remote cache and other external APIs are yet TBD.
>
> Regards,
> --
> Galder Zamarreño
> galder at redhat.com
>
>
>
>
>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev


-- 
Radim Vansa <rvansa at redhat.com>
JBoss Performance Team



More information about the infinispan-dev mailing list