RSS 2.0 New Entries Syndication Feed Atom 0.3 New Entries Syndication Feed

Show blog menu v



Use it



Sibling projects

RIFE powered

Valid XHTML 1.0 Transitional

Valid CSS!

Blogs : Latest entries

 Next page >
Clustered Drupal through Quercus, Terracotta and Ehcache

Caucho created an impressive Java implementation of PHP that runs in Resin, called Quercus.

I regularly hear people complain about the scalability of Drupal on PHP and after looking at the layer cache implementation, it seems that they use the database as a cache. This is understandable since short of using memcached, PHP doesn't support preserving object state across requests. However, tunneling everything through the database is bound to create a bottleneck.

Quercus has a neat module system that allows the creation of PHP functions in Java. So I wondered if I could use Terracotta together with Ehcache to replace Drupal's caching system with a more scalable solution.

After some tinkering and experimenting I got it to work. I did have to resort to some ugly hacks, since Terracotta doesn't officially support Resin yet (they inject their own system classloader which doesn't play well with how we do stuff). I also didn't do any performance tests, nor went through all the Drupal features to check if everything still worked.

I think this prototype is very interesting though, since it gives a glimpse of what is possible nowadays in the Java world when creating 'technology mash-ups' (for the lack up a better term). Who would have thought a year ago that you would be able to improve the scalability of a PHP CMS by using JVM-level clustering, makes my mind spin if I think about it.

If you want to try this out for yourself, I posted detailed instructions on our wiki. I'm interested in knowing what your findings are and if you have any improvements to what I did, please reach out and let me know.

posted by Geert Bevin in Terracotta on Aug 1, 2007 2:54 PM : 16 comments [permalink]

 Next page >
Google web