I am looking for some details about a Patent Application #20120222005 submitted by Terracotta Inc. around Off-Heap (Direct Memory) data stores. Here are some of its claims:
7. A method of managing memory of a computer system including at least one processor, a non-transitory computer readable storage medium tangibly storing data, and a software application executable by the at least one processor and programmed to make use of the data, the method comprising:
- dynamically allocating and directly managing an off-heap direct memory data storage area, using a memory manager, such that the off-heap direct memory data storage area is perceivable by the software application as being a part of local application tier memory and manageable, after initial allocation, independent of any memory managers of the computer system and any memory managers of an operating system running on the computer system, wherein the off-heap direct memory data storage area is scalable up to a size of the computer system's memory, upon direction from the memory manager, to accommodate terabytes-worth of data so that that data stored in the off-heap direct memory data storage area is transparently providable to the software application from the off-heap memory within microseconds and without having to repeatedly access that data from the non-transitory computer readable storage medium.
8. The method of claim 7, wherein the method operates in connection with a Java-based environment, and further comprises:
- (a) attempting to allocate Java byte buffers in chunks of a preconfigured maximum size in response to a request for off-heap direct memory data storage at a predetermined maximum size;
- (b) repeating said attempts to allocate byte buffers until the off-heap direct memory data storage area is created at the predetermined size, or until an attempt fails, whichever comes first;
- (c) when an attempt to allocate byte buffers fails, reducing the preconfigured maximum size and repeating (a)-(b);
- (d) receiving a request for a region of the off-heap direct memory data storage area, the region having an associated size;
- (e) finding, via a page source, an unused slice of the off-heap direct memory data storage area;
- (f) returning a page indicative of the unused slice, the page being a wrapped byte buffer that includes a reference to the slice where data is to be stored and a reference to an allocator object that created the slice;
- (g) continuing to return pages until the off-heap direct memory data storage area is exhausted;
- (h) managing the returned pages from the off-heap direct memory data storage area as a single coherent logical address space storing data keys and values, with a single page in the off-heap direct memory data storage area storing a hash table with metadata information linking data keys to values; and
- (i) expanding and contracting the hash table in response to further entries being added thereto and removed therefrom, respectively, by rehashing into a new page.
In the Big Data movement, the off-heap memory management solutions for Java platforms are going to become an increasing interest. I would like to find out more about the impact of such a patent in a zone that seems to have an expanding, but not competitive enough market yet.
More precisely, I would like to know if anyone can shed some light on the following questions:
- To what extent is this patent consistent with the USTPO's requirements of "non-abstract ideas" and if it's possible for this concept to become a patent? The idea of managing off-heap data stores seems to me way too generic and I believe anyone could admit that the purpose of the JVM's off-heap capabilities are to be used as data stores.
- Assuming this patent will be issued (is still in an application form), what is the impact on commercial products built on similar technologies and on the customers purchasing these products?
- What would be the impact/relevance of such a patent be in the open source community? Considering that the idea is based largely on public/free components available in the Java platform, anyone can implement similar capabilities with very little obvious relation to the patent and with their own design.