You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directmemory.apache.org by "Benoit Perroud (Updated) (JIRA)" <ji...@apache.org> on 2012/01/03 13:40:39 UTC

[jira] [Updated] (DIRECTMEMORY-53) MemoryMamagerService buffers allocation policy

     [ https://issues.apache.org/jira/browse/DIRECTMEMORY-53?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benoit Perroud updated DIRECTMEMORY-53:
---------------------------------------

    Attachment: RoundRobinAllocationPolicy.java
                MemoryManagerServiceWithAllocationPolicyImpl.java
                AllocationPolicy.java

PoC of allocation policy. 
- Interface allocationPolicy
- Default Round Robin implementation : an internal counter is incremented at every request, resulting in returning the next buffer at every call
- A MemoryManagerService implementation with allocation policy usage : loop calling allocationPolicy.activeBuffer, trying to store the data, repeating till activeBuffer is null
                
> MemoryMamagerService buffers allocation policy
> ----------------------------------------------
>
>                 Key: DIRECTMEMORY-53
>                 URL: https://issues.apache.org/jira/browse/DIRECTMEMORY-53
>             Project: Apache DirectMemory
>          Issue Type: Improvement
>            Reporter: Benoit Perroud
>            Priority: Minor
>         Attachments: AllocationPolicy.java, MemoryManagerServiceWithAllocationPolicyImpl.java, RoundRobinAllocationPolicy.java
>
>
> MemoryMamagerService with multiple buffers has a really simple, even buggy allocation policy : once a allocation fail (return null), we try the next buffer. If the allocation fails a second time, we return a failure (a null Pointer) to the caller. 
> If all the previous buffer were full at one point, we stick to the last buffer, without any chance to try to allocate into a previous different buffer (which could have again free space due to expiration or pointer freeing).
> My idea here is to first correct this behavior, but then enhance the fonctionality by providing configurable buffer allocation policy. For example : 
> - round robin allocation, with a certain amount of retries (this would also relax some concurrency contention)
> - allocate into the buffer with the more free space
> - allocate into the less fragmented buffer
> - random
> - ...

--
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