Changeset: 3b3817e73da7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/3b3817e73da7
Modified Files:
gdk/gdk_bbp.c
Branch: Dec2025
Log Message:
Aggressively unload BATs during trim when more than 80% of max VM size is in
use.
diffs (39 lines):
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -1637,6 +1637,8 @@ BBPtrim(bool aggressive, bat nbat)
int waitctr = 0;
bool changed = false;
unsigned flag = BBPUNLOADING | BBPSYNCING | BBPSAVING;
+ size_t mem = 0;
+
if (!aggressive)
flag |= BBPHOT;
lng t0 = GDKusec();
@@ -1667,6 +1669,8 @@ BBPtrim(bool aggressive, bat nbat)
BBP_status_on(bid, BBPUNLOADING);
swap = true;
waitctr += BATdirty(b) ? 9 : 1;
+ mem += HEAPvmsize(b->theap);
+ mem += HEAPvmsize(b->tvheap);
}
MT_lock_unset(&b->theaplock);
}
@@ -1686,7 +1690,7 @@ BBPtrim(bool aggressive, bat nbat)
}
}
if (n > 0)
- TRC_INFO(BAT, "unloaded %d bats in "LLFMT" usec%s\n", n,
GDKusec() - t0, aggressive ? " (also hot)" : "");
+ TRC_INFO(BAT, "unloaded %d bats, %zu%s bytes in "LLFMT"
usec%s\n", n, mem, humansize(mem, (char[24]){0}, 24), GDKusec() - t0,
aggressive ? " (also hot)" : "");
return changed;
}
@@ -1717,7 +1721,7 @@ BBPmanager(void *dummy)
return;
}
MT_thread_setworking("BBPtrim");
- changed = BBPtrim(false, nbat);
+ changed = BBPtrim(GDKvm_cursize() > (size_t) (GDK_vm_maxsize *
0.8), nbat);
MT_thread_setworking("BBPcallbacks");
BBPcallbacks();
if (GDKexiting())
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]