From 9133a98c4425085dd86695bed1a48ec750a52430 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 19 Jun 2012 12:42:12 +0930 Subject: 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 --- lib/ntdb/free.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/ntdb/free.c') diff --git a/lib/ntdb/free.c b/lib/ntdb/free.c index f51aa5bc33..3e31937382 100644 --- a/lib/ntdb/free.c +++ b/lib/ntdb/free.c @@ -932,7 +932,7 @@ static enum NTDB_ERROR ntdb_expand(struct ntdb_context *ntdb, ntdb_len_t size) /* Someone else may have expanded the file, so retry. */ old_size = ntdb->file->map_size; - ntdb->io->oob(ntdb, ntdb->file->map_size, 1, true); + ntdb_oob(ntdb, ntdb->file->map_size, 1, true); if (ntdb->file->map_size != old_size) { ntdb_unlock_expand(ntdb, F_WRLCK); return NTDB_SUCCESS; -- cgit