[Date Prev][Date Next]
(Round 3) Proposed patch to support: draft-zeilenga-ldap-c-api-concurrency
- To: firstname.lastname@example.org
- Subject: (Round 3) Proposed patch to support: draft-zeilenga-ldap-c-api-concurrency
- From: Doug Leavitt <email@example.com>
- Date: Fri, 08 Oct 2010 17:26:25 -0500
- User-agent: Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:220.127.116.11) Gecko/20100719 Lightning/1.0b2 OracleBeehiveExtension/18.104.22.168-Champion Thunderbird/3.1
Since my last patch submission (Round2) I spent a considerable
amount of time performing performance analysis of my proposed
both client side and server side.
The client side testing primarily consisted of running parallel
copies of slapd-mtread and monitoring in real time with dtrace
to monitor the behavior of all the concurrent threads in clients
looking for signs of thread starvation. I was not able to find any.
On the server side I performed similar testing while using modified
versions of the test036-meta-concurrency and test020-proxycache
test cases. Again looking for thread starvation.
Additionally, on the server side I setup single server and proxy cache
server environments, in combination with slamd to perform head to
head comparisons of
HEAD (most recently as of 10/7/10)
HEAD (most recently as of 10/7/10) and the round 3 MT patches
to see if there was any performance degradations or other
performance issues, especially related to situations where slapd
was using libldap_r as part of various backends.
The results of the head to head comparisons, especially in the
proxycache situation, show a 3% performance improvement with
the MT patches over the HEAD without the patches.
The reason according to dtrace outputs is that there are now cases,
especially in ldap_result where my proposed patch has up to 50% less calls
to thread_lock/unlock than are performed in the current HEAD.
All of the head to head dslam/dtrace results are included along with
the other patch materials.
The proposed patch details are located here:
Details about the contents of
is located here: