[SSSD] [PATCH 1/1] tests: Don't assume absolute test dir in test_io.c

Simo Sorce simo at redhat.com
Thu May 22 12:40:21 UTC 2014


On Wed, 2014-05-21 at 15:31 -0400, Dmitri Pal wrote:
> On 05/19/2014 01:36 PM, Nikolai Kondrashov wrote:
> > On 05/19/2014 08:28 PM, Jakub Hrozek wrote:
> >> On Mon, May 19, 2014 at 05:55:45PM +0300, Nikolai Kondrashov wrote:
> >>>> "ramdisk" is 58x faster then HDD.
> >>>> "ramdisk" is 26x faster then HDD.
> >>>
> >>> Out of curiosity: why is it so much faster? Does the code sync to 
> >>> disc often?
> >>
> >> Every sysdb_transaction_commit or ldb_transaction_commit if we rely on
> >> ldb's autotransaction is several fsyncs (4 I think). That's the reason
> >> we try to collect all the data first in the daemon and write larger
> >> chunks of data in a single transaction.
> >
> > Ah, as I suspected, thanks!
> > I should have probably just run the tests under strace, instead of 
> > asking.
> 
> I wonder if tdb is really what we should use in the long run.
> May be there is a way to shard it internally so that you do not need to 
> lock the whole database but only a portion of it?

tdb can lock per record, but that is not exposed directly via ldb nor
sysdb, as it would be really difficult to determine ahead of time what
is the record set to lock for complex transactions.

Changing databases will not change this problem. However ldb has some
performance issues, some structures internally use even O(n^3)
algorithms to deal with data, and also memory allocation could be
substantially improved, it's just a matter of dedicating someone to deal
with performance. The fsyncs do matter to some degree, but with today's
SSDs I don't think it is a huge issue in production, and for tests a
ramdisk can be used.

Simo.

-- 
Simo Sorce * Red Hat, Inc * New York




More information about the sssd-devel mailing list