Terracotta is trying to solve one of the biggest issues for Java developers. It's called garbage collection. And it wastes time. It can makes a mess of big data, causing all kinds of latency issues.
Terracotta says they solved the issue by creating their own memory manager. The product, called BigMemory, manages the memory for cached data outside of the standard Java heap. Normally Java stores its data as a graph of objects on the heap. The garbage collector is responsible for figuring out what objects are trash. Terracotta uses the knowledge of the cache to avoid the complexities of determining what objects are trash.
The issue with garbage collection is becoming increasingly significant with big data part of the picture. Java applications can't keep up with the big data. Big network boxes can't be utilized fully as the Java machine maxes out so fast.
Terracotta recently announced it had expanded its Ehcache to a terabyte. It took a more orthogonal approach with BigMemory. Garbage is avoided rather than collected.
The amount of data that an app can handle can be scaled with Terracotta's BigMemory. Big data can be more easily integrated into an app and can be accessed faster.
The growth in data impacts the developer who now must tune applications to fit the limitations of the existing garbage collectors. It can take months to optimize an app. Using the cache solves the problem as the manual tuning process is eliminated.
Big data is an increasing must have. Zynga, Farmville and apps from services like Travelocity all have tremendous amounts of data. The enterprise is not immune, either. Big banks and other large enterprises have apps with tremendous quantities of data.
What something like this does is put big Java into the age of big memory. The issues are applicable to the entire Java community. Oracle, and now with Sun, continue to try and develop better garbage collectors. Putting the cache to work sidesteps the issue.
Garbage collection has had an impact on the enterprise. With such little room to use, companies add servers to manage the data. Vast server sprawl can in part be attributed to the need to spread the data around so it does not overload the Java garbage collector on any one JVM.
That's created an opportunity for virtualization vendors that consolidate the server sprawl. Does that negate the need for virtualization?
Virtualization can solve some of the trash collection issues. One server can be chopped into up to 100 with virtualization technology. That can then use 200 gigabytes per server. But that is a complex and difficult environment to manage.
A company like Terracotta faces an evangelical challenge. Ehcache can solve a lot of memory problems. But the concept of virtualization is taking fast hold in the market. Established players like Oracle will try to solve the problem by throwing more virtual machines at the Java memory problem. But that creates a sprawl all its own.
The answer may just be to avoid Java garbage by storing your data in the cache.