Re: [Evolution-hackers] libdb performance issue? (was: Re: libebook: errors when using asynchronous contact addition/removal functions)



On Fri, May 13, 2011 at 03:44:08PM +0200, Patrick Ohly wrote:
> I tried the LD_PRELOAD=libeatmydata.so workaround suggested in the mail
> above and it does avoid the problem.

If eatmydata removes the bottleneck, then it's likely that either (a)
each operation is corresponding to an fsync/fsyncdata/sync call (i.e.
each update corresponds to some kind of commit/flush), or (b)
the database file is opened O_SYNC, resulting in something similar.  I
don't know eds or libdb well enough to know if eds is doing something
out of the ordinary with the api and/or whether this is "working as designed"
and/or whether there's a way to remove the synchronous behavior.

> Is there anyone around who understand libdb well enough to shed some
> light on this? What is a proper fix?

Again from the armchair here (have not even looked at the code, feel free
to LART me as a result), if there's no way to avoid the synchronous
writes with the libdb api, i guess you could consider batching the async
additions together and submitting them as a group?

Alternatively, maybe this is another argument for moving forward with
the sqlite backend support? :)

	sean


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]