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]

Reply via email to