Changeset: 0d06dda34d2d for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/0d06dda34d2d
Modified Files:
        clients/Tests/exports.stable.out
        gdk/ChangeLog
        gdk/gdk.h
        gdk/gdk_bbp.c
        gdk/gdk_bbp.h
        gdk/gdk_logger.c
        gdk/gdk_logger_old.c
        gdk/gdk_private.h
        gdk/gdk_tm.c
        monetdb5/modules/mal/querylog.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_upgrades.c
        sql/storage/bat/bat_logger.c
Branch: default
Log Message:

Get rid of transaction ID in BBP.dir file.


diffs (truncated from 446 to 300 lines):

diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -215,7 +215,7 @@ BBPrec *BBP[N_BBPINIT];
 gdk_return BBPaddfarm(const char *dirname, uint32_t rolemask, bool logerror);
 void BBPcold(bat i);
 int BBPfix(bat b);
-unsigned BBPheader(FILE *fp, int *lineno, bat *bbpsize, lng *logno, lng 
*transid, bool allow_hge_upgrade);
+unsigned BBPheader(FILE *fp, int *lineno, bat *bbpsize, lng *logno, bool 
allow_hge_upgrade);
 bat BBPindex(const char *nme);
 gdk_return BBPjson_upgrade(json_storage_conversion);
 void BBPkeepref(BAT *b) __attribute__((__nonnull__(1)));
@@ -227,7 +227,6 @@ int BBPrelease(bat b);
 int BBPrename(BAT *b, const char *nme);
 int BBPretain(bat b);
 gdk_return BBPsave(BAT *b);
-gdk_return BBPsync(int cnt, bat *restrict subcommit, BUN *restrict sizes, lng 
logno, lng transid);
 void BBPtmlock(void);
 void BBPtmunlock(void);
 int BBPunfix(bat b);
@@ -416,7 +415,7 @@ void STRMPdestroy(BAT *b);
 BAT *STRMPfilter(BAT *b, BAT *s, const char *q, const bool keep_nils);
 bool THRhighwater(void);
 gdk_return TMsubcommit(BAT *bl) __attribute__((__warn_unused_result__));
-gdk_return TMsubcommit_list(bat *restrict subcommit, BUN *restrict sizes, int 
cnt, lng logno, lng transid) __attribute__((__warn_unused_result__));
+gdk_return TMsubcommit_list(bat *restrict subcommit, BUN *restrict sizes, int 
cnt, lng logno) __attribute__((__warn_unused_result__));
 void VALclear(ValPtr v);
 int VALcmp(const ValRecord *p, const ValRecord *q);
 void *VALconvert(int typ, ValPtr t);
diff --git a/gdk/ChangeLog b/gdk/ChangeLog
--- a/gdk/ChangeLog
+++ b/gdk/ChangeLog
@@ -1,6 +1,9 @@
 # ChangeLog file for GDK
 # This file is updated with Maddlog
 
+* Tue Feb  6 2024 Sjoerd Mullender <sjo...@acm.org>
+- The SQL transaction ID is no longer saved in the BBP.dir file.
+
 * Wed Jan  3 2024 Sjoerd Mullender <sjo...@acm.org>
 - Made some changes to the TIMEOUT macros.  Most importantly, they
   now get a pointer to a QryCtx structure as argument instead of the
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -2104,7 +2104,7 @@ BUNtoid(BAT *b, BUN p)
  */
 gdk_export gdk_return TMsubcommit(BAT *bl)
        __attribute__((__warn_unused_result__));
-gdk_export gdk_return TMsubcommit_list(bat *restrict subcommit, BUN *restrict 
sizes, int cnt, lng logno, lng transid)
+gdk_export gdk_return TMsubcommit_list(bat *restrict subcommit, BUN *restrict 
sizes, int cnt, lng logno)
        __attribute__((__warn_unused_result__));
 
 /*
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -134,7 +134,6 @@ static void BBPcallbacks(void);
 /* two lngs of extra info in BBP.dir */
 /* these two are atomic because of their use in log_new() */
 static ATOMIC_TYPE BBPlogno = ATOMIC_VAR_INIT(0);
-static ATOMIC_TYPE BBPtransid = ATOMIC_VAR_INIT(0);
 
 #define BBPtmpcheck(s) (strncmp(s, "tmp_", 4) == 0)
 
@@ -182,12 +181,6 @@ getBBPlogno(void)
        return (lng) ATOMIC_GET(&BBPlogno);
 }
 
-lng
-getBBPtransid(void)
-{
-       return (lng) ATOMIC_GET(&BBPtransid);
-}
-
 
 /*
  * @+ BBP Consistency and Concurrency
@@ -1016,7 +1009,7 @@ BBPcheckbats(unsigned bbpversion)
 #endif
 
 unsigned
-BBPheader(FILE *fp, int *lineno, bat *bbpsize, lng *logno, lng *transid, bool 
allow_hge_upgrade)
+BBPheader(FILE *fp, int *lineno, bat *bbpsize, lng *logno, bool 
allow_hge_upgrade)
 {
        char buf[BUFSIZ];
        int sz, ptrsize, oidsize, intsize;
@@ -1090,12 +1083,14 @@ BBPheader(FILE *fp, int *lineno, bat *bb
                        TRC_CRITICAL(GDK, "short BBP");
                        return 0;
                }
-               if (sscanf(buf, "BBPinfo=" LLSCN " " LLSCN, logno, transid) != 
2) {
+               if (bbpversion <= GDKLIBRARY_STATUS ?
+                   sscanf(buf, "BBPinfo=" LLSCN " %*d", logno) != 1 :
+                   sscanf(buf, "BBPinfo=" LLSCN, logno) != 1) {
                        TRC_CRITICAL(GDK, "no info value found\n");
                        return 0;
                }
        } else {
-               *logno = *transid = 0;
+               *logno = 0;
        }
        return bbpversion;
 }
@@ -1736,7 +1731,7 @@ BBPjson_upgrade(json_storage_conversion 
        }
        BBPunlock();
        if (nupd > 1 &&
-           TMsubcommit_list(upd, NULL, nupd, -1, -1) != GDK_SUCCEED) {
+           TMsubcommit_list(upd, NULL, nupd, -1) != GDK_SUCCEED) {
                TRC_CRITICAL(GDK, "failed to commit changes\n");
                GDKfree(upd);
                return GDK_FAIL;
@@ -1964,16 +1959,14 @@ BBPinit(bool allow_hge_upgrade)
        if (GDKinmemory(0)) {
                bbpversion = GDKLIBRARY;
        } else {
-               lng logno, transid;
-               bbpversion = BBPheader(fp, &lineno, &bbpsize, &logno, &transid, 
allow_hge_upgrade);
+               lng logno;
+               bbpversion = BBPheader(fp, &lineno, &bbpsize, &logno, 
allow_hge_upgrade);
                if (bbpversion == 0) {
                        ATOMIC_SET(&GDKdebug, dbg);
                        return GDK_FAIL;
                }
                assert(bbpversion > GDKLIBRARY_MINMAX_POS || logno == 0);
-               assert(bbpversion > GDKLIBRARY_MINMAX_POS || transid == 0);
                ATOMIC_SET(&BBPlogno, logno);
-               ATOMIC_SET(&BBPtransid, transid);
        }
 
        /* allocate BBP records */
@@ -2352,16 +2345,16 @@ new_bbpentry(FILE *fp, bat i, BUN size, 
 }
 
 static gdk_return
-BBPdir_header(FILE *f, int n, lng logno, lng transid)
+BBPdir_header(FILE *f, int n, lng logno)
 {
-       if (fprintf(f, "BBP.dir, GDKversion %u\n%d %d %d\nBBPsize=%d\nBBPinfo=" 
LLFMT " " LLFMT "\n",
+       if (fprintf(f, "BBP.dir, GDKversion %u\n%d %d %d\nBBPsize=%d\nBBPinfo=" 
LLFMT "\n",
                    GDKLIBRARY, SIZEOF_SIZE_T, SIZEOF_OID,
 #ifdef HAVE_HGE
                    SIZEOF_HGE
 #else
                    SIZEOF_LNG
 #endif
-                   , n, logno, transid) < 0 ||
+                   , n, logno) < 0 ||
            ferror(f)) {
                GDKsyserror("Writing BBP.dir header failed\n");
                return GDK_FAIL;
@@ -2370,12 +2363,11 @@ BBPdir_header(FILE *f, int n, lng logno,
 }
 
 static gdk_return
-BBPdir_first(bool subcommit, lng logno, lng transid,
-            FILE **obbpfp, FILE **nbbpfp)
+BBPdir_first(bool subcommit, lng logno, FILE **obbpfp, FILE **nbbpfp)
 {
        FILE *obbpf = NULL, *nbbpf = NULL;
        int n = 0;
-       lng ologno, otransid;
+       lng ologno;
 
        if (obbpfp)
                *obbpfp = NULL;
@@ -2410,7 +2402,7 @@ BBPdir_first(bool subcommit, lng logno, 
                }
                /* fourth line contains BBPinfo */
                if (fgets(buf, sizeof(buf), obbpf) == NULL ||
-                   sscanf(buf, "BBPinfo=" LLSCN " " LLSCN, &ologno, &otransid) 
!= 2) {
+                   sscanf(buf, "BBPinfo=" LLSCN, &ologno) != 1) {
                        GDKerror("cannot read BBPinfo in backup BBP.dir.");
                        goto bailout;
                }
@@ -2421,7 +2413,7 @@ BBPdir_first(bool subcommit, lng logno, 
 
        TRC_DEBUG(IO_, "writing BBP.dir (%d bats).\n", n);
 
-       if (BBPdir_header(nbbpf, n, logno, transid) != GDK_SUCCEED) {
+       if (BBPdir_header(nbbpf, n, logno) != GDK_SUCCEED) {
                goto bailout;
        }
 
@@ -2545,7 +2537,7 @@ BBPdir_init(void)
        FILE *fp;
        gdk_return rc;
 
-       rc = BBPdir_first(false, 0, 0, NULL, &fp);
+       rc = BBPdir_first(false, 0, NULL, &fp);
        if (rc == GDK_SUCCEED)
                rc = BBPdir_last(-1, NULL, 0, NULL, fp);
        return rc;
@@ -3962,7 +3954,7 @@ BBPcheckBBPdir(void)
        int lineno = 0;
        bat bbpsize = 0;
        unsigned bbpversion;
-       lng logno, transid;
+       lng logno;
 
        fp = GDKfileopen(0, BAKDIR, "BBP", "dir", "r");
        assert(fp != NULL);
@@ -3972,7 +3964,7 @@ BBPcheckBBPdir(void)
                if (fp == NULL)
                        return;
        }
-       bbpversion = BBPheader(fp, &lineno, &bbpsize, &logno, &transid, false);
+       bbpversion = BBPheader(fp, &lineno, &bbpsize, &logno, false);
        if (bbpversion == 0) {
                fclose(fp);
                return;         /* error reading file */
@@ -4044,7 +4036,7 @@ BBPcheckBBPdir(void)
  * The BBP.dir is also moved into the BAKDIR.
  */
 gdk_return
-BBPsync(int cnt, bat *restrict subcommit, BUN *restrict sizes, lng logno, lng 
transid)
+BBPsync(int cnt, bat *restrict subcommit, BUN *restrict sizes, lng logno)
 {
        gdk_return ret = GDK_SUCCEED;
        lng t0 = 0, t1 = 0;
@@ -4103,8 +4095,7 @@ BBPsync(int cnt, bat *restrict subcommit
 
        /* PHASE 2: save the repository and write new BBP.dir file */
        if (ret == GDK_SUCCEED) {
-               ret = BBPdir_first(subcommit != NULL, logno, transid,
-                                  &obbpf, &nbbpf);
+               ret = BBPdir_first(subcommit != NULL, logno, &obbpf, &nbbpf);
        }
 
        for (int idx = 1; ret == GDK_SUCCEED && idx < cnt; idx++) {
@@ -4199,7 +4190,6 @@ BBPsync(int cnt, bat *restrict subcommit
        /* AFTERMATH */
        if (ret == GDK_SUCCEED) {
                ATOMIC_SET(&BBPlogno, logno);   /* the new value */
-               ATOMIC_SET(&BBPtransid, transid);
                backup_files = subcommit ? (backup_files - backup_subdir) : 0;
                backup_dir = backup_subdir = 0;
                if (GDKremovedir(0, DELDIR) != GDK_SUCCEED)
diff --git a/gdk/gdk_bbp.h b/gdk/gdk_bbp.h
--- a/gdk/gdk_bbp.h
+++ b/gdk/gdk_bbp.h
@@ -61,7 +61,7 @@
 #define BBPTRIM_ALL    (((size_t)1) << (sizeof(size_t)*8 - 2)) /* very large 
positive size_t */
 
 gdk_export bat getBBPsize(void); /* current occupied size of BBP array */
-gdk_export unsigned BBPheader(FILE *fp, int *lineno, bat *bbpsize, lng *logno, 
lng *transid, bool allow_hge_upgrade);
+gdk_export unsigned BBPheader(FILE *fp, int *lineno, bat *bbpsize, lng *logno, 
bool allow_hge_upgrade);
 gdk_export int BBPreadBBPline(FILE *fp, unsigned bbpversion, int *lineno, BAT 
*bn,
 #ifdef GDKLIBRARY_HASHASH
                              int *hashash,
@@ -79,7 +79,6 @@ gdk_export int BBPrename(BAT *b, const c
 gdk_export bat BBPindex(const char *nme);
 
 /* swapping interface */
-gdk_export gdk_return BBPsync(int cnt, bat *restrict subcommit, BUN *restrict 
sizes, lng logno, lng transid);
 gdk_export int BBPfix(bat b);
 gdk_export int BBPunfix(bat b);
 static inline void
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -1903,7 +1903,7 @@ bm_subcommit(logger *lg, logged_range *p
        log_unlock(lg);
        TRC_DEBUG_IF(WAL)
                t0 = GDKusec();
-       res = TMsubcommit_list(n, cnts ? sizes : NULL, i, lg->saved_id, 
lg->saved_tid);
+       res = TMsubcommit_list(n, cnts ? sizes : NULL, i, lg->saved_id);
        TRC_DEBUG(WAL, "subcommit " LLFMT "usec\n", GDKusec() - t0);
        if (res == GDK_SUCCEED) {       /* now cleanup */
                for (i = 0; i < rcnt; i++) {
@@ -2361,7 +2361,6 @@ log_new(int debug, const char *fn, const
 
                .id = 0,
                .saved_id = getBBPlogno(),      /* get saved log numer from bbp 
*/
-               .saved_tid = (int) getBBPtransid(),     /* get saved 
transaction id from bbp */
        };
 
        /* probably open file and check version first, then call call old 
logger code */
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
@@ -1795,7 +1795,7 @@ old_logger_destroy(old_logger *lg)
        }
        lg->lg->id = (ulng) lg->id;
        lg->lg->saved_id = lg->lg->id;
-       rc = TMsubcommit_list(subcommit, NULL, i, lg->lg->saved_id, 
lg->lg->saved_tid);
+       rc = TMsubcommit_list(subcommit, NULL, i, lg->lg->saved_id);
        GDKfree(subcommit);
        if (rc != GDK_SUCCEED) {
                TRC_CRITICAL(GDK, "logger_destroy failed\n");
diff --git a/gdk/gdk_private.h b/gdk/gdk_private.h
--- a/gdk/gdk_private.h
+++ b/gdk/gdk_private.h
@@ -116,6 +116,8 @@ void BBPrelinquish(void)
        __attribute__((__visibility__("hidden")));
 int BBPselectfarm(role_t role, int type, enum heaptype hptype)
        __attribute__((__visibility__("hidden")));
+gdk_return BBPsync(int cnt, bat *restrict subcommit, BUN *restrict sizes, lng 
logno)
+       __attribute__((__visibility__("hidden")));
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to