Changeset: 742c240a14f3 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/742c240a14f3 Modified Files: gdk/gdk_logger_old.c Branch: Jul2021 Log Message:
No need to use locking for reading catalog bats during initialization. diffs (76 lines): diff --git a/gdk/gdk_logger_old.c b/gdk/gdk_logger_old.c --- a/gdk/gdk_logger_old.c +++ b/gdk/gdk_logger_old.c @@ -170,7 +170,7 @@ static gdk_return tr_grow(trans *tr); static BUN log_find(BAT *b, BAT *d, int val) { - BATiter cni = bat_iterator(b); + BATiter cni = bat_iterator_nolock(b); BUN p; assert(b->ttype == TYPE_int); @@ -181,7 +181,6 @@ log_find(BAT *b, BAT *d, int val) oid pos = p; if (BUNfnd(d, &pos) == BUN_NONE) { MT_rwlock_rdunlock(&cni.b->thashlock); - bat_iterator_end(&cni); return p; } } @@ -194,13 +193,11 @@ log_find(BAT *b, BAT *d, int val) if (t[p] == val) { oid pos = p; if (BUNfnd(d, &pos) == BUN_NONE) { - bat_iterator_end(&cni); return p; } } } } - bat_iterator_end(&cni); return BUN_NONE; } @@ -300,7 +297,7 @@ log_bid old_logger_find_bat(old_logger *lg, const char *name, char tpe, oid id) { if (!tpe || !lg->with_ids) { - BATiter cni = bat_iterator(lg->catalog_nme); + BATiter cni = bat_iterator_nolock(lg->catalog_nme); BUN p; if (BAThash(lg->catalog_nme) == GDK_SUCCEED) { @@ -311,16 +308,14 @@ old_logger_find_bat(old_logger *lg, cons oid lid = *(oid*) Tloc(lg->catalog_oid, p); if (!lid) { MT_rwlock_rdunlock(&cni.b->thashlock); - bat_iterator_end(&cni); return *(log_bid *) Tloc(lg->catalog_bid, p); } } } MT_rwlock_rdunlock(&cni.b->thashlock); } - bat_iterator_end(&cni); } else { - BATiter cni = bat_iterator(lg->catalog_oid); + BATiter cni = bat_iterator_nolock(lg->catalog_oid); BUN p; if (BAThash(lg->catalog_oid) == GDK_SUCCEED) { @@ -331,14 +326,12 @@ old_logger_find_bat(old_logger *lg, cons if (*(char*)Tloc(lg->catalog_tpe, p) == tpe) { if (BUNfnd(lg->dcatalog, &pos) == BUN_NONE) { MT_rwlock_rdunlock(&cni.b->thashlock); - bat_iterator_end(&cni); return *(log_bid *) Tloc(lg->catalog_bid, p); } } } MT_rwlock_rdunlock(&cni.b->thashlock); } - bat_iterator_end(&cni); } return 0; } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list