Age | Commit message (Collapse) | Author | Files | Lines |
|
ldb indexing can cause huge files, and huge memory usage. This
experiment allows us to keep indexes in memory during a transaction,
then to write the indexes to disk when the transaction completes. The
result is that the db is much smaller (we have seen improvements of
about 100x in file size) and memory usage during large transactions is
also greatly reduced
Note that this patch uses the unusual strategy of putting pointers
into a ldb (and thus into a tdb). This works because the pointers are
only there during a transaction, so the pointers are not exposed to
any other users of the database. The pointers allow us to avoid some
really bad allocation problems with tdb record allocation during the
re-indexing.
|
|
re-indexing in ldb is triggered on any modification to the @ATTRIBUTES
or @INDEXLIST records. This happens to produce a worst-case
fragmentation of the database, as all @INDEX records are deleted then
re-created. By repacking after re-indexing we ensure that the database
ends up without extreme fragmentation.
|
|
The command line tools ldbadd, ldbmodify and ldbedit should operate
within a transaction to make them more efficient. The ldbadd tool in
particular is much faster when adding a large number of records if all
the adds happen within a transaction. Previously there was a
transaction per record.
|
|
|
|
(Even if the callback takes some time, this isn't a ldb_tdb timeout
any more)
Andrew Bartlett
|
|
If an LDB element cannot be converted into a printable form, we should
still print it, just with safety applied.
Andrew Bartlett
|
|
|
|
|
|
|
|
The options argument to ldb connect() needs to be marked for the same
special handling as attrs in search
|
|
|
|
The ldb_val is length-limited, and while normally NULL terminated,
this avoids the chance that this particular value might not be, as
well as avoiding a cast.
Andrew Bartlett
|
|
This reverts commit 753af36a3e194f645ec0b68a033199035e71c909.
|
|
The linearized version is not casefolded so length might not match
and yet the strings be equivalent. This can happen if one component
is case-insensitive and a letter that have an uppercase version of
a multibyte character that differ in legth from the corresponding
lowercase one.
|
|
|
|
remove some unused functions.
|
|
|
|
it should always have been. Make it also async so that it is not a special case.
|
|
This attribute is critical for the operation of nearly all the
Microsoft Mangement Console tools
Andrew Bartlett
|
|
|
|
|
|
metze
|
|
|
|
metze
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This commit applies some cosmetic corrections for the LDB library.
|
|
This commit applies some cosmetic corrections for the LDB backend modules.
|
|
is not guaranteed
|
|
|
|
The previous ldb_search() interface made it way too easy to leak results,
and being able to use a printf-like expression turns to be really useful.
|
|
parameters.
|
|
Add shared-build target to the ldb library, and make it possible to build
it against libtalloc, libevents, libtdb as shared libraries.
|
|
|
|
|
|
|
|
retieve -> retrieve
Karolin
(partialy cherry-picked from 37c64130701ab13b6f34998ac17fec2d128c2e08)
metze
(This used to be commit 4d92e6d582a5b2094b2aaa9008a54b37ccfcc2d7)
|
|
(This used to be commit baddefd0a6fa430af1a3001064149127e0d29361)
|
|
(This used to be commit 40b71bbd718f6dee70c0611e527f55c56623dea6)
|
|
This makes it easy to set the expiry (or no expiry) for a samdb user
(This used to be commit 25171f18a4b242b5a731f4ac1eefc51cc82efd74)
|
|
(This used to be commit 6028404a9a9db64d4025ef6e685ee13c4aadca2e)
|
|
(This used to be commit 3c058f50cc3b91d540feb51fb698d90565b2b7c9)
|
|
The core ldb code for string matching assumed NULL terminated strings,
whereas the anr module used data_blob_const() to effectively truncate
a ldb_val by changing its length. The ldb code is supposed to be based
around length limited blobs, not NULL terminated strings, so the
correct fix was to change the string comparison functions to be length
limited
(This used to be commit 26c6aa5a80ffaf06fc33f30a6533f8f16ef538bc)
|
|
This is a partial fix towards bugs due to us walking past the end of
what we think are strings in ldb. There is much more work to do in
this area.
Andrew Bartlett
(This used to be commit 5805a9a8f35fd90fa4f718f73534817fa3bbdfd2)
|
|
(This used to be commit 94d5e69190f34d66d4defd4a7de7ce24bee77bc3)
|
|
(This used to be commit 233dd885c2a2b4ee7cc2287efe7d6e03625d4981)
|