2015/07/26 - Apache DirectMemory has been retired.

For more information, please explore the Attic.

Apache DirectMemory 0.1-incubating

The Apache DirectMemory Team would like to announce the 0.1-incubating release.

Apache DirectMemory is a multi layered cache implementation featuring off-heap memory management to enable efficient handling of a large number of java objects without affecting jvm garbage collection performance

It's a technology preview release. So some APIs can be change in the future.

We hope you enjoy using Apache DirectMemory! If you have any questions, please consult:

Release date: 2012-07-09.

Apache DirectMemory 0.1-incubating release notes

New Feature

  • [DIRECTMEMORY-37] - Update the MemoryManager API so it can be used in conjunction with NIO to provide efficient buffer management
  • [DIRECTMEMORY-61] - Create Server module to receive data to cache and a client api to send datas to cache
  • [DIRECTMEMORY-62] - Adopt fluent APIs for bootstrapping the Cache (and optionally manage stored objects)


  • [DIRECTMEMORY-12] - package DirectMemory as a OSGI bundle
  • [DIRECTMEMORY-16] - Create a non Singleton MemoryStorage alternative
  • [DIRECTMEMORY-19] - Remove deprecated MethodRule from unit tests (use @Rule)
  • [DIRECTMEMORY-20] - Remove @SuppressWarnings("rawtypes","unchecked" from serializers and fix style
  • [DIRECTMEMORY-27] - Upgrade to protostuff 1.0.4 and switch again to off-heap buffer
  • [DIRECTMEMORY-39] - Create an 'example' module
  • [DIRECTMEMORY-40] - Pointers merging with adjacent free pointers when freeing.
  • [DIRECTMEMORY-42] - OffHeapMemoryBuffer store, allocate and free function's parameters consistency
  • [DIRECTMEMORY-43] - Cache should allow key objects instead of plain string
  • [DIRECTMEMORY-48] - Add OffHeapMemoryBuffer interface and abstraction
  • [DIRECTMEMORY-53] - MemoryManagerService buffers allocation policy
  • [DIRECTMEMORY-56] - Moving unused class from org.apache.directmemory.serialization to test
  • [DIRECTMEMORY-58] - OffHeapMemoryBuffer.allocate should return a ByteBuffer with capacity = limit = allocatedSize to avoid overwriting
  • [DIRECTMEMORY-67] - Serializer Factory should be able to load specific serializers
  • [DIRECTMEMORY-71] - SerializerFactory#createNewSerializer( ClassS|String ) should throw appropriate exceptions instead of returning null
  • [DIRECTMEMORY-72] - Pointer should be an interface
  • [DIRECTMEMORY-75] - Create a CacheService builder to simplify the bootstrap process
  • [DIRECTMEMORY-77] - Make MemoryManagerServiceWithAllocationPolicyImpl the default MemoryManagerService implementation
  • [DIRECTMEMORY-78] - Completely remove the deprecated OffHeapMemoryBuffer
  • [DIRECTMEMORY-80] - Build fails on Windows
  • [DIRECTMEMORY-89] - Update DM-Solr integration to user Solr 3.6
  • [DIRECTMEMORY-90] - Add OSGi support for directmemory-ehcache integration.
  • [DIRECTMEMORY-91] - Add OSGi support for directmemory-solr


  • [DIRECTMEMORY-17] - Element Eviction/Expiry issue
  • [DIRECTMEMORY-18] - The expiry value is not passed to the underlying store to check the expiry of the element.
  • [DIRECTMEMORY-46] - OffHeapMemoryBuffer.free do an unnecessary pointers.add
  • [DIRECTMEMORY-47] - OffHeapMemoryBuffer.allocate need to be synchronized
  • [DIRECTMEMORY-54] - OffHeapMemoryBuffer.clear should set to free all pointers to avoid misusage
  • [DIRECTMEMORY-55] - OffHeapMemoryBuffer leaks 1 byte at every allocation
  • [DIRECTMEMORY-59] - Fix statistics code for SolrOffHeapCache in examples module
  • [DIRECTMEMORY-68] - Standard Serializer is broken under OSGi
  • [DIRECTMEMORY-73] - NPE on put method in CacheServiceImpl when cache is full.
  • [DIRECTMEMORY-81] - Disposal process run only once
  • [DIRECTMEMORY-85] - Method to format in Gb has a typo
  • [DIRECTMEMORY-86] - Tomcat is never stopped during the server tests
  • [DIRECTMEMORY-87] - collectExpired frees not expired items instead of expired ones
  • [DIRECTMEMORY-88] - Unable to retrieve JDK types (Integer, byte, ..) with the StandardSerializer
  • [DIRECTMEMORY-93] - There is a typo in the ehcache feature of directmemory
  • [DIRECTMEMORY-94] - directmemory-solr fails to resolve in some cases


  • [DIRECTMEMORY-1] - Import the codebase
  • [DIRECTMEMORY-2] - Create Website for URL http://incubator.apache.org/directmemory/
  • [DIRECTMEMORY-3] - Remove Dependencies from SVN
  • [DIRECTMEMORY-4] - Remove eclipse project files
  • [DIRECTMEMORY-5] - Remove Generated Classes from SVN
  • [DIRECTMEMORY-6] - Change Package Names to get adopted
  • [DIRECTMEMORY-38] - Add "TM" to project logos
  • [DIRECTMEMORY-45] - Add (TM) symbol to the project logo


  • [DIRECTMEMORY-29] - Fix a payload size assertion in MemoryManagerTests.smokeTest()


  • [DIRECTMEMORY-65] - put vs update - not consistent


  • [DIRECTMEMORY-22] - Add OSGi integration test for directmemory
  • [DIRECTMEMORY-23] - Provide a feature descriptor for Karaf