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