A Bit of Cacheonix History

Back in 2000 we were doing a lot of consulting. The enterprise applications we developed saw increasing amount of data processed and stored.

Caching provided a significant jump in the application performance. We were not satisfied with existing caching solutions for Java as we needed a more reliable and fast cache. That's when we developed the first version of Cacheonix that was a reliable, fast local cache.

Soon a single, even a top of the shelf, server, could not handle the load. J2EE implementations at the time did provide clustering capabilities, so one would expect to be able to scale horizontally by adding more servers. But, as more servers were added, we saw that the ability to handle load was actually dropping. The reason for this was that the database was becoming a bottleneck. A local cache did not work anymore because it held incoherent view of the data. The local caches kept many duplicates of the data, thus, not making good use of JVM heap.

We realized that our customers needed a more advanced solution, a distributed cache that would be coherent, be able to hold hundreds of gigabytes of cached data reliably and linearly scale to tens and hundreds of servers. We started developing distributed Cacheonix in 2004. Now you see the result.

Programming a distributed system is a fun but very challenging work. Our goal was to make programming a distributed system as easy as if it were a single-server application. We hope that we have achieved this goal.

See Also