Changeset: 618ade8354d6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/618ade8354d6
Modified Files:
gdk/gdk_bbp.c
Branch: Jan2022
Log Message:
Delete heap files of empty bats during startup.
diffs (31 lines):
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -572,6 +572,8 @@ vheapinit(BAT *b, const char *buf, bat b
TRC_CRITICAL(GDK, "cannot allocate memory for heap.");
return -1;
}
+ if (b->batCount == 0)
+ free = 0;
if (b->ttype >= 0 &&
ATOMstorage(b->ttype) == TYPE_str &&
free < GDK_STRHASHTABLE * sizeof(stridx_t) + BATTINY *
GDK_VARALIGN)
@@ -4408,7 +4410,8 @@ BBPdiskscan(const char *parent, size_t b
delete = true;
} else if (strncmp(p + 1, "tail", 4) == 0) {
BAT *b = getdesc(bid);
- delete = (b == NULL || !b->ttype ||
!b->batCopiedtodisk);
+ delete = (b == NULL || !b->ttype ||
!b->batCopiedtodisk || b->batCount == 0);
+ assert(b->batCount > 0 || b->theap->free == 0);
if (!delete) {
if (b->ttype == TYPE_str) {
switch (b->twidth) {
@@ -4433,7 +4436,7 @@ BBPdiskscan(const char *parent, size_t b
}
} else if (strncmp(p + 1, "theap", 5) == 0) {
BAT *b = getdesc(bid);
- delete = (b == NULL || !b->tvheap ||
!b->batCopiedtodisk);
+ delete = (b == NULL || !b->tvheap ||
!b->batCopiedtodisk || b->tvheap->free == 0);
} else if (strncmp(p + 1, "thashl", 6) == 0 ||
strncmp(p + 1, "thashb", 6) == 0) {
#ifdef PERSISTENTHASH
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]