Cool ... but in a good way!
There have been numerous presentations at QCon that I've taken things from; presentations I've thought it might be worth distilling and replaying to others. However, Ari Zilka's talk on Open Terracotta got me excited (and I know I'm not alone) - possibly because I might be able to realise and demonstrate some pretty clear benefit without having to do much work at all. Ideal!
Open Terracotta ( www.terracotta.org ) is essentially an open source clustering solution for Java. However, rather than presenting an API for sharing data between nodes, Terracotta works transparently against the heap. This makes it more like sharing memory between VMs, and that sounds a lot like a silver buller for many clustering requirements.
Ok, it won't solve everything as there are problems inherent in distribution or common resources that exist regardless of the solution. But as a proposition it's very interesting: if VMs share memory (or, more accurately, transparently simulate shared memory, even down to the semantics of locking), that frees the developer from worrying about numerous distribution concerns. Indeed, it permits very simple paradigms that are employed in-process (such as locking and trivial object identity) to be leveraged regardless of the target environment. That's got to be a good thing!
I had to think about it for a bit because it sounded too good to be true - is this analogous to having a distributed VM? In theory it could be, in practice there's obviously a choice to be made about what to cluster. Ari was ready to admit that this sort of idea isn't new - Sun and IBM apparently tried using shared memory for multiple VMs without much success. This, however, seems to be real. Runtime optimisation and monitoring just make it sound even better.
There are several examples of where this sort of technology would have been valuable on real projects I've worked on in the past few years. At the moment I can't wait to take it for a test drive on something stupid like a clustered Swing application before looking forward to an enterprise project that presents an acid test.
If anyone else has any opinions or concerns about this then it'd be really great to hear about them.