Sunday, August 19, 2012

"Big Memory" support and new Resources for Derquinse Bocas

Java brought automatic memory management to the mainstream. However, managing the heap is a non-trival task that can require a great amount of effort from the garbage collector. This effort grows with the heap size and may lead to long collection pauses that hurt your system's throughput and response times.

In Bocas, when using a memory-backed repository or a cache, most of the memory consumption comes from the stored values, which are opaque byte streams. If we could get those values out of the Java heap we could use that precious managed space for more value-adding objects.

Enter "big memory" support: starting with version 1.0.4, Bocas supports the use of direct buffers as the backing storage of both memory-backed repositories and caches, using off-heap memory to store the repository values. As the memory-backed repositories are used mainly for testing purposes, this feature is most useful in caches.

This support allows for better utilization of the Java heap, reducing the load for the Java garbage collector. However, take your off-heap caches into account when sizing the heap and planning the memory distribution of your machines.

I would also like to announce new resources for the project:

As a side note, version 1.0.5 has just been released and is already in Maven Central.

No comments: