Terracotta dumps Big Java's garbage problem

The challenge of garbage collection is almost as old as Java itself. Java Virtual Machines (JVMs) store programs' objects in a heap that is cleared from time to time to free up memory.

The process was inserted so that programmers did not have to manually program the need to free up allocated memory. It provides an automated, periodic sweep.

However, the process can slow apps down just when you don't need them to drag as the application takes time out from normal execution. Historically, this problem was limited to real-time operations but can now show up in server farms running large web properties, where customers need instant gratification - such as in social networking, media or gaming.

As servers with hundreds of gigabytes of memory have become the norm, the tendency has been to tackle garbage collection by increasing the heap size. Terracotta, an open source clustering specialist, argues that this simply makes the application pause even longer - creating a "serious impact" on performance.

Garbage collection in memory

Terracotta has customers who try to keep the garbage heaps of their big or growing apps small by putting them on small servers and partitioning using VMware.

Terracotta's riposte is to shove garbage collection into memory. In-memory processing is used elsewhere in software to speed data processing and application performance. Terracotta says also brings performance-enhancing gains to the heap and garbage collection.

The company today announces the general availability of BigMemory for its Ehcache caching program. BigMemory can do memory management and bypasses Java's own heap. It provides an off-heap in-memory store for up to 256GB of in-process, off-heap memory in a single JVM.

BigMemory is designed to stop unacceptable slow downs in Java apps that can happen during garbage collection, while also letting you scale Java applications without chopping the app into separate VM instances or continuing to run your apps on lots of "small" servers.

Terracotta told The Reg that one large beta in France has cut 25 instances of VMware to just two. Using BigMemory means another customer has reduced the amount of time taken to physically tune its application's garbage collection from three months to three hours.

BigMemory is an add-on to Enterprise Ehcache, the enterprise caching product based on the Ehcache project whose IP and brains Terracotta bought in 2009. The project is used in about 70 per cent of Java caching. Enterprise Ehcache works with Hibernate, Spring, Tomcat, Oracle's WebLogic and IBM's WebSphere.