Re: [Evolution-hackers] libdb performance issue? (was: Re: libebook: errors when using asynchronous contact addition/removal functions)
- From: sean finney <seanius seanius net>
- To: Patrick Ohly <patrick ohly gmx de>
- Cc: "Burton, Ross" <ross burton intel com>, Evolution Hackers <evolution-hackers gnome org>, "Bradford, Robert" <robert bradford intel com>
- Subject: Re: [Evolution-hackers] libdb performance issue? (was: Re: libebook: errors when using asynchronous contact addition/removal functions)
- Date: Fri, 13 May 2011 15:57:30 +0200
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]