Changeset: 492bdd3c0a23 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=492bdd3c0a23 Modified Files: gdk/ChangeLog gdk/gdk.h gdk/gdk_bbp.c monetdb5/modules/kernel/status.c monetdb5/modules/mal/bbp.c Branch: default Log Message:
BATs now only have a single (logical) name. diffs (170 lines): diff --git a/gdk/ChangeLog b/gdk/ChangeLog --- a/gdk/ChangeLog +++ b/gdk/ChangeLog @@ -2,6 +2,7 @@ # This file is updated with Maddlog * Tue Jun 28 2016 Sjoerd Mullender <[email protected]> +- BATs now only have a single (logical) name. - The function BATmirror is gone. The HEAD column is always VOID (with a non-nil seqbase) and the TAIL column carries the data. All functions that deal with data work on the TAIL column. diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -1729,8 +1729,8 @@ gdk_export void GDKqsort_rev(void *h, vo */ typedef struct { BAT *cache; /* if loaded: BAT* handle */ - str logical[2]; /* logical name + reverse */ - str bak[2]; /* logical name + reverse backups */ + str logical; /* logical name */ + str bak; /* logical name backup */ bat next[2]; /* next BBP slot in linked list */ BATstore *desc; /* the BAT descriptor */ str physical; /* dir + basename for storage */ @@ -1755,8 +1755,8 @@ gdk_export BBPrec *BBP[N_BBPINIT]; /* fast defines without checks; internal use only */ #define BBP_cache(i) BBP[(i)>>BBPINITLOG][(i)&(BBPINIT-1)].cache -#define BBP_logical(i) BBP[abs(i)>>BBPINITLOG][abs(i)&(BBPINIT-1)].logical[(i)<0] -#define BBP_bak(i) BBP[abs(i)>>BBPINITLOG][abs(i)&(BBPINIT-1)].bak[(i)<0] +#define BBP_logical(i) BBP[(i)>>BBPINITLOG][(i)&(BBPINIT-1)].logical +#define BBP_bak(i) BBP[(i)>>BBPINITLOG][(i)&(BBPINIT-1)].bak #define BBP_next(i) BBP[abs(i)>>BBPINITLOG][abs(i)&(BBPINIT-1)].next[(i)<0] #define BBP_physical(i) BBP[abs(i)>>BBPINITLOG][abs(i)&(BBPINIT-1)].physical #define BBP_options(i) BBP[abs(i)>>BBPINITLOG][abs(i)&(BBPINIT-1)].options @@ -1776,13 +1776,9 @@ gdk_export int BBPcurstamp(void); /* we use abs(i) instead of -(i) here because of a bug in gcc 4.8.2 * (at least) with optimization enabled; it incorrectly complains * about an array bound error in monetdb5/modules/kernel/status.c */ -#define BBPname(i) \ - (BBPcheck((i), "BBPname") ? \ - ((i) > 0 ? \ - BBP[(i) >> BBPINITLOG][(i) & (BBPINIT - 1)].logical[0] : \ - (BBP[abs(i) >> BBPINITLOG][abs(i) & (BBPINIT - 1)].logical[1] ? \ - BBP[abs(i) >> BBPINITLOG][abs(i) & (BBPINIT - 1)].logical[1] : \ - BBP[abs(i) >> BBPINITLOG][abs(i) & (BBPINIT - 1)].logical[0])) : \ +#define BBPname(i) \ + (BBPcheck((i), "BBPname") ? \ + BBP[(i) >> BBPINITLOG][(i) & (BBPINIT - 1)].logical : \ "") #define BBPvalid(i) (BBP_logical(i) != NULL && *BBP_logical(i) != '.') #define BATgetId(b) BBPname((b)->batCacheid) diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c --- a/gdk/gdk_bbp.c +++ b/gdk/gdk_bbp.c @@ -319,14 +319,9 @@ BBPinithash(int j) const char *s = BBP_logical(i); if (s) { - const char *sm = BBP_logical(-i); - if (*s != '.' && BBPtmpcheck(s) == 0) { BBP_insert(i); } - if (sm && *sm != '.' && BBPtmpcheck(sm) == 0) { - BBP_insert(-i); - } } else { BBP_next(i) = BBP_free(j); BBP_free(j) = i; @@ -1157,10 +1152,7 @@ BBPreadEntries(FILE *fp, int *min_stamp, s = logical; } BBP_logical(bid) = GDKstrdup(s); - if (strcmp(tailname, BBPNONAME) != 0) - BBP_logical(-bid) = GDKstrdup(tailname); - else - BBP_logical(-bid) = GDKstrdup(BBPtmpname(tailname, sizeof(tailname), -bid)); + /* tailname is ignored */ BBP_physical(bid) = GDKstrdup(filename); BBP_options(bid) = NULL; if (options) @@ -1457,8 +1449,6 @@ BBPexit(void) BBP_bak(i) = NULL; GDKfree(BBP_logical(i)); BBP_logical(i) = NULL; - GDKfree(BBP_logical(-i)); - BBP_logical(-i) = NULL; } if (BBP_physical(i)) { GDKfree(BBP_physical(i)); @@ -1548,7 +1538,7 @@ new_bbpentry(FILE *fp, bat i) (ssize_t) i, BBP_status(i) & BBPPERSISTENT, BBP_logical(i), - BBP_logical(-i) ? BBP_logical(-i) : BBPNONAME, + BBPNONAME, /* backward compatible entry */ BBP_physical(i), BBP_lastused(i), BBP_desc(i)->S.restricted << 1, @@ -1797,7 +1787,7 @@ BBPdump(void) if (b == NULL) continue; fprintf(stderr, - "# %d[%s,%s]: nme=['%s','%s'] refs=%d lrefs=%d " + "# %d[%s,%s]: nme='%s' refs=%d lrefs=%d " "status=%d count=" BUNFMT " " "Hheap=[" SZFMT "," SZFMT "] " "Hvheap=[" SZFMT "," SZFMT "] " @@ -1809,7 +1799,6 @@ BBPdump(void) ATOMname(b->H->type), ATOMname(b->T->type), BBP_logical(i) ? BBP_logical(i) : "<NULL>", - BBP_logical(-i) ? BBP_logical(-i) : "<NULL>", BBP_refs(i), BBP_lrefs(i), BBP_status(i), @@ -2129,8 +2118,6 @@ BBPinsert(BATstore *bs) BBP_bak(i) = BBP_logical(i); } else BBP_logical(i) = BBP_bak(i); - s = BBPtmpname(dirname, 64, -i); - BBP_logical(-i) = GDKstrdup(s); /* Keep the physical location around forever */ if (BBP_physical(i) == NULL) { @@ -2235,18 +2222,10 @@ bbpclear(bat i, int idx, const char *loc BBP_delete(i); MT_lock_unset(&GDKnameLock); } - if (BBPtmpcheck(BBP_logical(-i)) == 0) { - MT_lock_set(&GDKnameLock); - BBP_delete(-i); - MT_lock_unset(&GDKnameLock); - } if (BBP_logical(i) != BBP_bak(i)) GDKfree(BBP_logical(i)); - if (BBP_logical(-i) != BBP_bak(-i)) - GDKfree(BBP_logical(-i)); BBP_status_set(i, 0, "BBPclear"); BBP_logical(i) = NULL; - BBP_logical(-i) = NULL; BBP_next(i) = BBP_free(idx); BBP_free(idx) = i; if (lock) diff --git a/monetdb5/modules/kernel/status.c b/monetdb5/modules/kernel/status.c --- a/monetdb5/modules/kernel/status.c +++ b/monetdb5/modules/kernel/status.c @@ -298,8 +298,6 @@ SYSmem_usage(bat *ret, bat *ret2, const sz += BATSTORESIZE; if (BBP_logical(i)) n += strLen(BBP_logical(i)); - if (BBP_logical(-i)) - n += strLen(BBP_logical(-i)); if (BBP_physical(i)) n += strLen(BBP_physical(i)); if (b) diff --git a/monetdb5/modules/mal/bbp.c b/monetdb5/modules/mal/bbp.c --- a/monetdb5/modules/mal/bbp.c +++ b/monetdb5/modules/mal/bbp.c @@ -99,8 +99,6 @@ CMDbbpNames(bat *ret) if (i != b->batCacheid) { if (BBP_logical(i) && (BBP_refs(i) || BBP_lrefs(i)) ) { BUNappend(b, BBP_logical(i), FALSE); - if (BBP_logical(-i) && (BBP_refs(-i) || BBP_lrefs(-i)) && !BBPtmpcheck(BBP_logical(-i))) - BUNappend(b, BBP_logical(-i), FALSE); } } BBPunlock(); _______________________________________________ checkin-list mailing list [email protected] https://www.monetdb.org/mailman/listinfo/checkin-list
