Changeset: 55a22d54c61c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/55a22d54c61c
Modified Files:
        monetdb5/optimizer/opt_mitosis.c
Branch: default
Log Message:

Respect the worker/memory limit also at mitosis


diffs (40 lines):

diff --git a/monetdb5/optimizer/opt_mitosis.c b/monetdb5/optimizer/opt_mitosis.c
--- a/monetdb5/optimizer/opt_mitosis.c
+++ b/monetdb5/optimizer/opt_mitosis.c
@@ -20,13 +20,18 @@ OPTmitosisImplementation(Client cntxt, M
        BUN r = 0, rowcnt = 0;    /* table should be sizeable to consider 
parallel execution*/
        InstrPtr q, *old, target = 0;
        size_t argsize = 6 * sizeof(lng), m = 0;
-       /*     per op estimate:   4 args + 2 res*/
+       /*     estimate size per operator estimate:   4 args + 2 res*/
        int threads = GDKnr_threads ? GDKnr_threads : 1;
        int activeClients;
        char buf[256];
        lng usec = GDKusec();
        str msg = MAL_SUCCEED;
 
+       /* if the user has associated limitation on the number of threads, 
respect it in the
+     * generation of the number of partitions. Beware, they may lead to larger 
pieces, it only
+     * limits the CPU power */
+       if( cntxt->workerlimit)
+               threads= cntxt->workerlimit;
        //if ( optimizerIsApplied(mb,"mitosis") )
                //return 0;
        (void) cntxt;
@@ -149,8 +154,14 @@ OPTmitosisImplementation(Client cntxt, M
        if (cntxt->memorylimit == 0 || pieces <= 1){
 */
        if (pieces <= 1){
-               /* the old allocation scheme */
-               m = GDK_mem_maxsize / argsize;
+               /* We haven't assigned the number of pieces.*/
+
+               /* respect the memory limit size set for the user */
+               if( cntxt->memorylimit)
+                       m = cntxt->memorylimit * 1024 *1024 / argsize;
+               else
+                       m = GDK_mem_maxsize / argsize;
+
                /* if data exceeds memory size,
                 * i.e., (rowcnt*argsize > GDK_mem_maxsize),
                 * i.e., (rowcnt > GDK_mem_maxsize/argsize = m) */
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to