diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2012-06-19 12:42:12 +0930 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2012-06-19 05:38:07 +0200 |
commit | 9133a98c4425085dd86695bed1a48ec750a52430 (patch) | |
tree | b1195c6b7a1970ed71b8cca2770ea940b8cb79b2 /lib/ntdb/check.c | |
parent | d938c0b591d9c4aff9c92ae5eedd26ed97455f42 (diff) | |
download | samba-9133a98c4425085dd86695bed1a48ec750a52430.tar.gz samba-9133a98c4425085dd86695bed1a48ec750a52430.tar.bz2 samba-9133a98c4425085dd86695bed1a48ec750a52430.zip |
ntdb: inline oob check
The simple "is it in range" check can be inline; complex cases can be
handed through to the normal or transaction handler.
NTDB speed:
Adding 10000 records: 4111-9983(9149) ns (815528 bytes)
Finding 10000 records: 1667-4464(3810) ns (815528 bytes)
Missing 10000 records: 1511-3992(3546) ns (815528 bytes)
Traversing 10000 records: 1698-4254(3724) ns (815528 bytes)
Deleting 10000 records: 3608-7998(7358) ns (815528 bytes)
Re-adding 10000 records: 3259-8504(7805) ns (815528 bytes)
Appending 10000 records: 5393-13579(12356) ns (1274312 bytes)
Churning 10000 records: 6966-17813(16136) ns (1274312 bytes)
NTDB speed in transaction:
Adding 10000 records: 916-2230(2004) ns (815528 bytes)
Finding 10000 records: 330-866(770) ns (815528 bytes)
Missing 10000 records: 196-520(471) ns (815528 bytes)
Traversing 10000 records: 356-879(800) ns (815528 bytes)
Deleting 10000 records: 505-1267(1108) ns (815528 bytes)
Re-adding 10000 records: 658-1681(1477) ns (815528 bytes)
Appending 10000 records: 1088-2827(2498) ns (1274312 bytes)
Churning 10000 records: 1636-4267(3785) ns (1274312 bytes)
smbtorture results:
ntdb speed 85588-189430(157110) ops/sec
Diffstat (limited to 'lib/ntdb/check.c')
-rw-r--r-- | lib/ntdb/check.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/ntdb/check.c b/lib/ntdb/check.c index 723e7b11bf..be27003a51 100644 --- a/lib/ntdb/check.c +++ b/lib/ntdb/check.c @@ -505,10 +505,9 @@ static enum NTDB_ERROR check_free(struct ntdb_context *ntdb, } - ecode = ntdb->io->oob(ntdb, off, - frec_len(frec) - + sizeof(struct ntdb_used_record), - false); + ecode = ntdb_oob(ntdb, off, + frec_len(frec) + sizeof(struct ntdb_used_record), + false); if (ecode != NTDB_SUCCESS) { return ecode; } |