When we planned the JBoss Cache 1.4 release weeks back, in addition to feature implementation, we have set out the goal to improve the overall cache performance. For PojoCache, that means performing the necessary benchmark first and making corresponding optimization. Now that 1.4beta is out, I am glad to report that we have achieved that objective!
In 1.4, first of all, the underlying replication layer has used more efficient marshalling to minimize the replication overhead. Second of all, much efforts have also been spent on refactoring the POJO attachment module such that it is more efficient in CPU usage and also reduction in replication message size.
To illustrate the performance of PojoCache, I have posted a Wiki article online to detail the comparison between TreeCache (a plain cache system) and PojoCache. Interested readers should refer it for more information.
Overall, it is expected that there would be a tradeoff between a plain cache system and a POJO cache one (that uses fine-grained replication) in terms of overall performance. The tradeff depends on the POJO object size, POJO lifetime, and also the update frequency and pattern. For example, if I have a small POJO with updates to most of the fields during a single request, we'd expect a plain cache system will be adequate. However, for other cases with medium to large size POJO and selected field updates, a POJO cache will not only have advantages in performance, it will also offer transparent, automatic replication! In one case that we studied in the article, e.g., PojoCache is 3.5 times faster than TreeCache. And if the POJO lifetime is longer, then we expect the speedup would be even greater!
Finally if you care not just performance but also want to maintain the object relationship during replication, PojoCache is then the cache that you should use!
Oh, in the upcoming JBossWorld in Vegas, I will have a session presenting more about PojoCache. Come join us there for the scoop and the fun!-Ben Wang, Lead, PojoCache