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

Re: slapadd performance degradation from 2.3.43 to 2.4.12

Hallvard B Furuseth wrote:
Ralf Haferkamp writes:
When linking against db-4.7.25 slapadd is still a little faster when the
trickle-task is disabled: 15m19s (without the trickle-task) vs. 16m12s
for the 500k Entries LDIF.

Due to this mutex lock in bdb_tool_entry_put(), perhaps?

	if (( slapMode&  SLAP_TOOL_QUICK )&&  (( e->e_id&  0xfff ) == 0xfff )) {
		ldap_pvt_thread_mutex_lock(&bdb_tool_trickle_mutex );
		ldap_pvt_thread_cond_signal(&bdb_tool_trickle_cond );
		ldap_pvt_thread_mutex_unlock(&bdb_tool_trickle_mutex );

Weird code.  That's not the normal way to use a cond.  Why wait for a
mutex before signalling, when the code doesn't change any variable which
is tested around the cond_wait?

That was to prevent the signal from being lost. Though I suppose it doesn't matter, since the signal would get sent again soon enough.

  -- Howard Chu
  CTO, Symas Corp.           http://www.symas.com
  Director, Highland Sun     http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP  http://www.openldap.org/project/