summaryrefslogtreecommitdiff
path: root/lib/tdb/ABI
AgeCommit message (Collapse)AuthorFilesLines
2010-08-14tdb: workaround starvation problem in locking entire database.Rusty Russell1-0/+60
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-05-11tdb: commit ABI/tdb-1.2.2.sigsStefan Metzmacher1-0/+60
metze
2010-04-18s4-waf: rebuild signature files with the api type mapsAndrew Tridgell1-5/+5
This is not strictly necessary, as the old types would compare equal, but it is neater to use the generic type names
2010-04-18tdb-waf: added ABI checking for tdbAndrew Tridgell1-0/+95