It's actually a Jgroups question, but it's also related to caching... We are trying to build an replicated map based on JGroups (like the DistributedHashtable). The main concern is coherence of the replicated map. For example, consider two threads on different nodes trying to update the same entry (say threads U1 and U2 try to set id=1 equal to "a" and "b" correspondingly). At the same time two getter threads G1 and G2 try to get (locally) id=1 on two different nodes. It's ok if both G1 and G2 get a or b, but not if they return different values.
Does the JGroups NAKACK protocol guarantee that (the user guide only says that it guarantess that messages from the same source will be processed in their original order)? If not, then how about TOTAL? Does that protocol queue all messages and process them in a single-threaded manner? How would that impact performance?
Check out JBossCache, which does this