I evaluate various Java object distribution libraries (Terracotta, JCS, JBoss, Hazelcast ...) for the application server, and it's hard for me to understand their behavior on different axes.
My requirements for distributed objects are not many - they come down to one-to-one and one-to-many messages. There are more, but for the rest we just use JDBC, and I believe that I can overlap the cache before that, using any of the available libraries.
I need a system that distributes objects and demonstrates locality properties - in other words, the server that captures the object tends to stay on it without excessive communication with other nodes. Hazelcast looks simple (and peer-to-peer is good), but it seems to require objects to be distributed evenly across all nodes.
I need a way to save objects, preferably transparently. I plan to use EC2, so I have the option of temporary, free, limited local storage (disk) and permanent, non-free unlimited storage (S3). It would be great not to worry about OutOfMemoryErrors.
I like the simplicity and "magic" of Terracotta, but it scares me from me beejeezus. In addition, to really scale, you need to spend $$$$, otherwise you are talking with one hub.
I am cheap and I want something not only free, but also mature and with a large user base.
Thanks for any input.
source share