summaryrefslogtreecommitdiff
path: root/lib/tdb/configure.ac
AgeCommit message (Collapse)AuthorFilesLines
2010-09-27tdb: TDB_INCOMPATIBLE_HASH, to allow safe changing of default hash.Rusty Russell1-1/+1
This flag to tdb_open/tdb_open_ex effects creation of a new database: 1) Uses the Jenkins lookup3 hash instead of the old gdbm hash if none is specified, 2) Places a non-zero field in header->rwlocks, so older versions of TDB will refuse to open it. This means that the caller (ie Samba) can set this flag to safely change the hash function. Versions of TDB from this one on will either use the correct hash or refuse to open (if a different hash is specified). Older TDB versions will see the nonzero rwlocks field and refuse to open it under any conditions. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2010-09-27tdb: add Bob Jenkins lookup3 hash as helper hash.Rusty Russell1-1/+1
This is a better hash than the default: shipping it with tdb makes it easy for callers to use it as the hash by passing it to tdb_open_ex(). This version taken from CCAN and modified, which took it from http://www.burtleburtle.net/bob/c/lookup3.c. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2010-09-13lib/tdb: change version to 1.2.4 after hash checking improvmentsStefan Metzmacher1-1/+1
lib/tdb: change version to 1.2.4 after hash checking improvments metze Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2010-08-14tdb: workaround starvation problem in locking entire database.Rusty Russell1-1/+1
We saw tdb_lockall() take 71 seconds under heavy load; this is because Linux (at least) doesn't prevent new small locks being obtained while we're waiting for a big log. The workaround is to do divide and conquer using non-blocking chainlocks: if we get down to a single chain we block. Using a simple test program where children did "hold lock for 100ms, sleep for 1 second" the time to do tdb_lockall() dropped signifiantly. There are ln(hashsize) locks taken in the contended case, but that's slow anyway. More analysis is given in my blog at http://rusty.ozlabs.org/?p=120 This may also help transactions, though in that case it's the initial read lock which uses this gradual locking routine; the update-to-write-lock code is separate and still tries to update in one go. Even though ABI doesn't change, minor version bumped so behavior change can be easily detected. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2010-03-26tdb: Add a non-blocking version of tdb_transaction_startVolker Lendecke1-1/+1
2010-02-06tdb: raise version to 1.2.1Simo Sorce1-1/+1
after recent fixes we need to raise the version to 1.2.1 so that we can require also the right patched version.
2009-12-21tdb: Also build and install tdb manpages from standalone tdb.Jelmer Vernooij1-0/+7
2009-11-20tdb: change version to 1.2.0 after adding TDB_*ALLOW_NESTINGStefan Metzmacher1-1/+1
metze
2009-10-22lib/tdb: add tdb_check()Rusty Russell1-1/+1
ctdb wants a quick way to detect corrupt tdbs; particularly, tdbs with loops in their hash chains. tdb_check() provides this. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2009-09-19tdb: increase minor versionAndrew Tridgell1-1/+1
we depend on reads in transactions for s4 replication
2009-06-17tdb: Fix help string in configure flag to enable Python bindings.Jelmer Vernooij1-1/+1
2009-06-15Add exports file and abi checker for tdbSimo Sorce1-1/+2
This is a first attempt at exporting symbols only for public functions We also provide a rudimentary ABI checker that tries to check that function signatures are not changed by mistake. Given our use of macros this is not an API checker. It's all based on tdb.h contents and the gcc -aux-info option
2009-06-15Add option to --disable-python on buildSimo Sorce1-0/+9
2009-03-31up the version to 1.1.4 with the addition ofAndrew Tridgell1-1/+1
tdb_transaction_prepare_commit()
2008-09-29lib/tdb: increase the version number after some critial changesStefan Metzmacher1-1/+1
The tdb_transaction/traverse interaction fixes are critical. metze
2008-09-19Add shared-build target to tdb.Simo Sorce1-0/+4
Useful to build multiple standalone libraries that depend on each other without having to install them to the final install dir during the build.
2008-09-17Move common libraries from root to lib/.Jelmer Vernooij1-0/+30