Samba4: LDB size limit and memory leak

simo idra at samba.org
Mon Jun 1 13:25:15 GMT 2009


On Mon, 2009-06-01 at 18:05 +1000, tridge at samba.org wrote:
> Hi Ronnie,
> 
>  > Yes, it would make reading the entire index-object a lot slower, since it
>  > would only read one entry per tdb_fetch(), but then again the full
>  > tdb_traverse that is needed (twice) for the tdb_repack() is not exactly
>  > cheap either.
> 
> The repack is only done when the underlying file grows. When adding
> 20k users as fast as we can, this happens about 10-15 times over a
> period of an hour or so. (remember that when we expand a tdb, we
> always expand by at least 1.25 in size - see tdb_expand())
> 
> If we made indexing have to read a linked list, we would be following
> those lists several hundred times per second.
> 
> I'm currently considering changing the indexing so that when a single
> attribute has more than 100 DNs, it will be split across multiple
> records. That would mean we would have to do multiple fetches (one for
> each 100 DNs), but insert/delete of indexes won't deal with ever
> expanding records.

Tridge,
if you make this change, please make it so that it is an ldb option so
that newer and older ldb can still read a file using the old format. And
only an explicit change in an ldb special attribute triggers this new
behavior.

Simo.

-- 
Simo Sorce
Samba Team GPL Compliance Officer <simo at samba.org>
Principal Software Engineer at Red Hat, Inc. <simo at redhat.com>



More information about the samba-technical mailing list