Changeset: ce3fd1e9f40b for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ce3fd1e9f40b
Modified Files:
monetdb5/mal/mal_debugger.c
monetdb5/modules/mal/mdb.c
monetdb5/optimizer/opt_mitosis.c
monetdb5/optimizer/opt_mitosis.h
Branch: SciQL-2
Log Message:
changed files according to the changes made in default
diffs (160 lines):
diff --git a/monetdb5/mal/mal_debugger.c b/monetdb5/mal/mal_debugger.c
--- a/monetdb5/mal/mal_debugger.c
+++ b/monetdb5/mal/mal_debugger.c
@@ -18,6 +18,7 @@
#include "mal_interpreter.h" /* for getArgReference() */
#include "mal_linker.h" /* for getAddress() */
#include "mal_listing.h"
+#include "mal_function.h"
#include "mal_module.h" /* for showModuleStatistics() */
#include "mal_parser.h"
#include "mal_namespace.h"
@@ -910,7 +911,7 @@ retryRead:
} else if (isdigit((int) *b) || *b == '-' || *b
== '+')
goto partial;
if (m)
- printFunction(out, m, 0, lstng);
+ debugFunction(out, m, 0, lstng,
0,m->stop);
} else {
/*
* Listing the program starts at the pc last given.
@@ -932,7 +933,7 @@ partial:
*b = 0;
if (stepsize < 0)
first -= stepsize;
- listFunction(out, mb, 0, lstng, first,
stepsize);
+ debugFunction(out, mb, 0, lstng, first,
stepsize);
first = first + stepsize > mb->stop ? first :
first + stepsize;
}
continue;
diff --git a/monetdb5/modules/mal/mdb.c b/monetdb5/modules/mal/mdb.c
--- a/monetdb5/modules/mal/mdb.c
+++ b/monetdb5/modules/mal/mdb.c
@@ -38,6 +38,7 @@
#include "monetdb_config.h"
#include "mdb.h"
+#include "mal_function.h"
#define MDBstatus(X) \
if( stk->cmd && X==0 ) \
@@ -482,7 +483,7 @@ MDBlistDetail(Client cntxt, MalBlkPtr mb
{
(void) p;
(void) stk;
- printFunction(cntxt->fdout, mb, 0, LIST_MAL_NAME | LIST_MAL_VALUE |
LIST_MAL_TYPE | LIST_MAL_PROPS );
+ debugFunction(cntxt->fdout, mb, 0, LIST_MAL_NAME | LIST_MAL_VALUE |
LIST_MAL_TYPE | LIST_MAL_PROPS, 0, mb->stop );
return MAL_SUCCEED;
}
@@ -496,7 +497,7 @@ MDBlist3Detail(Client cntxt, MalBlkPtr m
s = findSymbol(cntxt->nspace, putName(modnme,strlen(modnme)),
putName(fcnnme, strlen(fcnnme)));
if (s == NULL)
throw(MAL,"mdb.list","Could not find %s.%s", modnme, fcnnme);
- printFunction(cntxt->fdout, s->def, 0, LIST_MAL_NAME | LIST_MAL_VALUE
| LIST_MAL_TYPE | LIST_MAL_PROPS );
+ debugFunction(cntxt->fdout, s->def, 0, LIST_MAL_NAME | LIST_MAL_VALUE
| LIST_MAL_TYPE | LIST_MAL_PROPS , 0, s->def->stop);
(void) mb; /* fool compiler */
return NULL;
}
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
@@ -1,9 +1,20 @@
/*
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ * The contents of this file are subject to the MonetDB Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://www.monetdb.org/Legal/MonetDBLicense
*
- * Copyright 2008-2015 MonetDB B.V.
+ * Software distributed under the License is distributed on an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific language governing rights and limitations
+ * under the License.
+ *
+ * The Original Code is the MonetDB Database System.
+ *
+ * The Initial Developer of the Original Code is CWI.
+ * Portions created by CWI are Copyright (C) 1997-July 2008 CWI.
+ * Copyright August 2008-2015 MonetDB B.V.
+ * All Rights Reserved.
*/
#include "monetdb_config.h"
@@ -41,6 +52,21 @@ getVarMergeTableId(MalBlkPtr mb, int v)
return -1;
}
+
+/* The plans are marked with the concurrent user load.
+ * * If this has changed, we may want to recompile the query
+ * */
+int
+OPTmitosisPlanOverdue(Client cntxt, str fname)
+{
+ Symbol s;
+
+ s = findSymbol(cntxt->nspace, userRef, fname);
+ if(s )
+ return s->def->activeClients != MCactiveClients();
+ return 0;
+}
+
int
OPTmitosisImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p)
{
@@ -51,12 +77,14 @@ OPTmitosisImplementation(Client cntxt, M
size_t argsize = 6 * sizeof(lng);
/* per op: 6 = (2+1)*2 <= 2 args + 1 res, each with head &
tail */
int threads = GDKnr_threads ? GDKnr_threads : 1;
+ int activeClients;
(void) cntxt;
(void) stk;
if (!eligible(mb))
return 0;
+ activeClients = mb->activeClients = MCactiveClients();
old = mb->stmt;
for (i = 1; i < mb->stop; i++) {
InstrPtr p = old[i];
@@ -116,19 +144,22 @@ OPTmitosisImplementation(Client cntxt, M
* threads than strictly needed.
* Experience shows that the pieces should not be too small.
* If we should limit to |threads| is still an open issue.
+ *
+ * Take into account the number of client connections,
+ * because all user together are responsible for resource contentions
*/
- r = (wrd) (monet_memory / argsize/ MCactiveClients());
+ r = (wrd) (monet_memory / argsize);
/* if data exceeds memory size,
* i.e., (rowcnt*argsize > monet_memory),
* i.e., (rowcnt > monet_memory/argsize = r) */
- if (rowcnt > r && r / threads > 0) {
+ if (rowcnt > r && r / threads / activeClients > 0) {
/* create |pieces| > |threads| partitions such that
* |threads| partitions at a time fit in memory,
* i.e., (threads*(rowcnt/pieces) <= r),
* i.e., (rowcnt/pieces <= r/threads),
* i.e., (pieces => rowcnt/(r/threads))
* (assuming that (r > threads*MINPARTCNT)) */
- pieces = (int) (rowcnt / (r / threads/ MCactiveClients())) + 1;
+ pieces = (int) (rowcnt / (r / threads / activeClients)) + 1;
} else if (rowcnt > MINPARTCNT) {
/* exploit parallelism, but ensure minimal partition size to
* limit overhead */
diff --git a/monetdb5/optimizer/opt_mitosis.h b/monetdb5/optimizer/opt_mitosis.h
--- a/monetdb5/optimizer/opt_mitosis.h
+++ b/monetdb5/optimizer/opt_mitosis.h
@@ -15,6 +15,7 @@
#define MINPARTCNT 100000 /* minimal record count per partition */
opt_export int OPTmitosisImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr
stk, InstrPtr p);
+opt_export int OPTmitosisPlanOverdue(Client cntxt, str fname);
#define OPTDEBUGmitosis if ( optDebug & ((lng)1 <<DEBUG_OPT_MITOSIS) )
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list