1. Yes. There are some cache loaders which access remote cache systems that may be written in a different protocol, e.g. Cassandra
2. Yes - we have done this before. However, IIRC, Infinispan had a max datagram size limit of 4k, and so we made a change to the default config and added FRAG just over the transport (UDP). Not very nice, and not an issue for TCP as transport.
3. No. Some time ago I looked at SDP and RDMA/verbs (jVerbs), but haven't tried them out. I'm planning to take a closer look at the transport based on NIO2 (I need multicast channels) in 3.5, but since NIO2 requires JDK 7, I'm not sure I'll be able to baseline on that just yet.
4. If run on Solaris or Linux, the way I understand SDP (haven't tried this out yet !), TCP or UDP connections should work seamlessly, but I don't see how multicasts would work, unless the SDP config file also allows for class D addresses as targets. Re NIO2: I don't yet use NIO2, see above.
Having said that, it should be possible to write a RDMA transport, which uses either a Java verbs APi (jVerbs ?) or JNI/RDMA verbs to interface with C. Note that the latter will not make it into the JGroups core, as I want JGroups to remain pure Java. It could be a linked project though.
Thank you so much Bela for this excellent response.
No problem. Let me know your requirements, so I can think about accommodating them in a 3.5 release.