On 01/24/2013 05:57 AM, Rainer Weikusat wrote:
> Amos Jeffries <[email protected]> writes:
>> On 24/01/2013 1:50 p.m., Alex Rousskov wrote:
>>> Is storing 60'000 events instead of 100 acceptable? I kind of doubt it
>>> is... :-(

>> I agree.

> As a somewhat more general remark to that: There are two obvious
> alternative implementations, namely
> 
> - use a timing wheel, ie, a 'circular' hash table where new events are
>   linked onto the list at (head + interval) % wheel_size. That would
>   be the traditional kernel implementation of this facility (That's
>   from what I remember from reading about that. I've never used it
>   myself)
> 
> - use a differently implemented priority queue. The usual 'obvious
>   choice' would be a binary heap stored in an array

Since

* there are well-justified concerns about RAM or performance overhead of
event-based timeouts with the current event queue,

* replacing legacy event queue with a better one is a serious
stand-alone project, with no "obviously best" replacement available in
STL, and

* we need to fix ConnOpener ASAP,

I suggest that we reverse the course and focus on fd-based
implementation of timeouts instead. It will be efficient, and we can
make it correct. I can help with that.


Any better ideas for moving forward here?


Thank you,

Alex.

Reply via email to