Changeset: e7557bff3004 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e7557bff3004
Modified Files:
monetdb5/mal/mal_runtime.c
monetdb5/modules/mal/sysmon.c
Branch: scatter
Log Message:
Use MB units in all situations. Also retrieve the mb statistics, which avoids
the cost of maintaining QRYqueue with every instruction.Statistics is captured
optimistically, by not putting a lock around the code in the interpreter.
Given the larg number of calls, this should be a problem.
given the large number of call this should not be an issue.
diffs (43 lines):
diff --git a/monetdb5/mal/mal_runtime.c b/monetdb5/mal/mal_runtime.c
--- a/monetdb5/mal/mal_runtime.c
+++ b/monetdb5/mal/mal_runtime.c
@@ -270,7 +270,8 @@ runtimeProfileInit(Client cntxt, MalBlkP
if (!GDKembedded())
QRYqueue[qhead].username = GDKstrdup(cntxt->username);
QRYqueue[qhead].idx = cntxt->idx;
- QRYqueue[qhead].memory = (lng) (stk->memory / LL_CONSTANT(1048576)); /*
Convert to MB */
+ /* give the MB upperbound by addition of 1 MB */
+ QRYqueue[qhead].memory = 1 + (lng) (stk->memory /
LL_CONSTANT(1048576)); /* Convert to MB */
QRYqueue[qhead].workers = (int) 1; /* this is the first one */
QRYqueue[qhead].status = "running";
QRYqueue[qhead].cntxt = cntxt;
@@ -304,7 +305,8 @@ runtimeProfileFinish(Client cntxt, MalBl
QRYqueue[i].status = "finished";
QRYqueue[i].finished = time(0);
QRYqueue[i].workers = mb->workers;
- QRYqueue[i].memory = mb->memory;
+ /* give the MB upperbound by addition of 1 MB */
+ QRYqueue[i].memory = 1 + (lng)(mb->memory /
LL_CONSTANT(1048576));
QRYqueue[i].cntxt = 0;
QRYqueue[i].stk = 0;
QRYqueue[i].mb = 0;
diff --git a/monetdb5/modules/mal/sysmon.c b/monetdb5/modules/mal/sysmon.c
--- a/monetdb5/modules/mal/sysmon.c
+++ b/monetdb5/modules/mal/sysmon.c
@@ -234,8 +234,14 @@ SYSMONqueue(Client cntxt, MalBlkPtr mb,
if (BUNappend(finished, &tsn, false) != GDK_SUCCEED)
goto bailout;
- wrk = QRYqueue[i].workers;
- mem = QRYqueue[i].memory;
+ if( QRYqueue[i].mb)
+ wrk = QRYqueue[i].mb->workers;
+ else
+ wrk = QRYqueue[i].workers;
+ if( QRYqueue[i].mb)
+ mem = 1 + QRYqueue[i].mb->memory /
LL_CONSTANT(1048576);
+ else
+ mem = QRYqueue[i].memory;
if ( BUNappend(workers, &wrk, false) != GDK_SUCCEED ||
BUNappend(memory, &mem, false) != GDK_SUCCEED)
goto bailout;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list