Blogs : Latest entries
|
|
|
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. |


