Right, that was supposed to be a placeholder for an allocation policy, not
a real one :) I agree with the "a little fix now and we'll rewrite from
scratch later" approach. Go ahead.
Thanks,
Raffaele
Il giorno 01/gen/2012 21:55, "Benoit Perroud" <[email protected]> ha
scritto:
> The eviction only runs when "inShortage" returns true, which means too
> many failures happened.
> But this needs to be run manually, there is no automatic way for
> MemoryManagerService to come back to the first buffer is there is more
> than 1 buffer.
>
> My view is more a cyclic list of buffers, where you can try to the
> first one after the last if failing.
>
> So instead of
> if ( activeBuffer.bufferNumber + 1 == buffers.size() ){ return null;}
>
> having something like activeBuffer = buffers.get(
> (activeBuffer.bufferNumber + 1) % buffers.size() );
>
> 2012/1/1 Raffaele P. Guidi <[email protected]>:
> > Uhm, I'm almost sure I put some mechanism to avoid sticking without any
> > free buffer... maybe it was into the eviction section, probably clearing
> > one buffer when too many nulls are returned
> >
> > On Sun, Jan 1, 2012 at 4:09 PM, Benoit Perroud (Created) (JIRA) <
> > [email protected]> wrote:
> >
> >> 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
> >>
> >>
> >> 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
> >>
> >>
> >>
>
>
>
> --
> sent from my Nokia 3210
>