[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#4717) Efficient handling of response lists in C-API



At 10:14 AM 10/22/2006, ando@sys-net.it wrote:
>Full_Name: Pierangelo Masarati
>Version: HEAD
>OS: irrelevant
>URL: ftp://ftp.openldap.org/incoming/
>Submission from: (NULL) (81.72.89.40)
>Submitted by: ando
>
>
>In proxies, we occasionally need to mark some response messages as "don't care".
> This is slightly different than "abandon", in the sense that, for performance
>and band occupation, an abandon would likely get too late to the remote server,
>but if the response is not removed from the list that would grow and waste
>resources.
>
>In realistic cases we profiled proxies that spend 50-60% of the CPU time running
>the list of messages to check if any of them has been abandoned.
>
>The proposed fix consists in:
>
>- keeping abandoned msgid's sorted, so that a bisection algorithm can be used to
>check if a msgid has been abandoned
>
>- add a ldap_int_abandon() call that marks a message as "abandoned" without
>actually sending an "abandon" operation.  This call is, by now, private
>(ldap_int_) since its use in normal clients would make little sense.  However,
>whenever it does make sense, there's no objection in making the call public
>(sort of ldap_abandon_mark()).

I rather not name this "abandon" as it doesn't send an
Abandon request.  Maybe name this "discard" instead.  E.g.,
ldap_int_discard().

>With this change, the overall CPU used to check response list in the very same
>test cases dropped to less than 1%.
>
>p.