[ 
https://issues.apache.org/jira/browse/DIRECTMEMORY-70?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13217132#comment-13217132
 ] 

Benoit Perroud commented on DIRECTMEMORY-70:
--------------------------------------------

Just to ensure I'm not completely off road, I extracted the following simplier 
interface to replace the {{OffHeapMemoryBuffer}}

{{code}}
public interface ByteBufferAllocator
{
    
    /**
     * Allocate the given size off heap, or return null if the allocation 
failed.
     * @param size
     * @return
     */
    ByteBuffer allocate( final int size );

    /**
     * Return the given ByteBuffer making it available for a future usage 
     * @param buffer
     */
    void free( final ByteBuffer buffer );

}
{{/code}}

This is lean and easy to understand. Two implementations are (almost) ready to 
be used : a merging one, i.e. where returned pointers are merged together, and 
a slab'style allocator, where buffers are of the same predefined sizes (i.e. 
128b, 512b, 2k, 8k, 32k,... application specific).

{{MemoryManagerService}} is a more high level view with existing store, 
retrieve, free and "collectExpire" functions, and wrap the allocated 
{{ByteBuffer}} in a {{Pointer}} and return it.

{{MemoryManagerService}} is augmented with Input and OutputStream 
functionalities to be able to stream in files, socket data, etc.

WDYT ?

                
> Move Pointer.class and Pointer."statistics" into an intermediate class 
> CacheEntry
> ---------------------------------------------------------------------------------
>
>                 Key: DIRECTMEMORY-70
>                 URL: https://issues.apache.org/jira/browse/DIRECTMEMORY-70
>             Project: Apache DirectMemory
>          Issue Type: Improvement
>            Reporter: Benoit Perroud
>         Attachments: 
> DIRECTMEMORY-70-MemoryManagerService-to-hide-implementation.patch
>
>
> In order to achieve better separation of responsabilities, attributes like 
> Pointer.class, Pointer.hits, Pointer.lastHit, etc. should be moved into an 
> intermediate class, for instance CacheEntry.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to