[
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