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

Reply via email to