The following proposal is about Apache DirectMemory, a Java OpenSource multi-layered cache implementation featuring off-heap memory storage (a-la Terracotta BigMemory) to enable caching of Java objects without degrading JVM performance
DirectMemory's main purpose is to to act as a second level cache (after a heap based one) able to store large amounts of data without filling up the Java heap and thus avoiding long garbage collection cycles. Although serialization has a runtime cost store/retrieve operations are in the sub-millisecond range being pretty acceptable in every usage scenario even as a first level cache and, most of all, outperforms heap storage when the count of the entries goes over a certain amount. DirectMemory implements cache eviction based on a simple LFU (Least Frequently Used) algorythm and also on item expiration. Included in the box is a small set of utility classes to easily handle off-heap memory buffers.
DirectMemory is a project was born in the 2010 thanks to Raffaele P. Guidi initial effort under GitHub and already licensed under the Apache License 2.0.
The rationale behind DirectMemory is bringing off-heap caching to the open source world, empowering FOSS developers and products with a tool that enables breaking the heap barrier and override the JVM garbage collection mechanism collection - which could be useful in scenarios where RAM needs are over the usual limits (more than 8, 12, 24gb) and to ease usage of off-heap memory in general
As a majority of the initial project members are existing ASF committers, we recognize the desirability of running the project as a meritocracy. We are eager to engage other members of the community and operate to the standard of meritocracy that Apache emphasizes; we believe this is the most effective method of growing our community and enabling widespread adoption.
In alphabetical order:
The purpose of the project is to develop and maintain DirectMemory implementation that can be used by other Apache projects.
DirectMemory does not have any reported production usage, yet, but is getting traction with developers and being evaluated by potential users and thus the risks of it being orphaned are minimal
All of the committers have experience working in one or more open source projects inside and outside ASF.
The list of initial committers are geographically distributed across the Europe with no one company being associated with a majority of the developers. Many of these initial developers are experienced Apache committers already and all are experienced with working in distributed development communities.
To the best of our knowledge, none of the initial committers are being paid to develop code for this project.
DirectMemory fits naturally in the ASF because it could be successfully employed together with a large number of ASF products ranging from JCS - as a new cache region between the heap and indexed file ones, to ORM systems like Cayenne (i.e. replacing current OSCache based implementation), Apache JDO and JPA implementations and also java based databases (i.e. Derby) and all systems managing large amounts of data from Hadoop to Cassandra
While the Apache Software Foundation would be a good home for the DirectMemory project it already has some traction and it could live on its own - however we see reciprocal benefits for both the ASF and the project in adopting the brand to better reach the community
The intial source comprises code developed on GitHub contributed under Grant from Raffaele P. Guidi for Directmemory.
Source code will be moved from GitHub space inside the SVN space of the podling.
Build/Test time dependencies
The project does not handle cryptography in any way.
Names of initial committers - in alphabetical order - with current ASF status: