Changeset: 84dad0228f47 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=84dad0228f47
Added Files:
monetdb5/optimizer/opt_multicore.c
monetdb5/optimizer/opt_multicore.h
monetdb5/scheduler/run_multicore.c
monetdb5/scheduler/run_multicore.h
monetdb5/scheduler/run_multicore.mal
Removed Files:
monetdb5/optimizer/opt_mutation.c
monetdb5/optimizer/opt_mutation.h
monetdb5/scheduler/run_mutation.c
monetdb5/scheduler/run_mutation.h
monetdb5/scheduler/run_mutation.mal
Modified Files:
monetdb5/modules/mal/mal_init.mal
monetdb5/optimizer/Makefile.ag
monetdb5/optimizer/opt_pipes.c
monetdb5/optimizer/opt_prelude.c
monetdb5/optimizer/opt_prelude.h
monetdb5/optimizer/opt_support.c
monetdb5/optimizer/opt_support.h
monetdb5/optimizer/opt_wrapper.c
monetdb5/optimizer/optimizer.mal
monetdb5/scheduler/Makefile.ag
monetdb5/scheduler/Tests/mutation00.mal
monetdb5/scheduler/Tests/mutation00.stable.out
monetdb5/scheduler/Tests/mutation01.mal
monetdb5/scheduler/Tests/query00.stable.out
monetdb5/scheduler/mut_policy.c
monetdb5/scheduler/mut_policy.h
monetdb5/scheduler/mut_transforms.h
Branch: mutation
Log Message:
Rename, the focus from the method
diffs (truncated from 694 to 300 lines):
diff --git a/monetdb5/modules/mal/mal_init.mal
b/monetdb5/modules/mal/mal_init.mal
--- a/monetdb5/modules/mal/mal_init.mal
+++ b/monetdb5/modules/mal/mal_init.mal
@@ -118,7 +118,7 @@ include transaction;
# @-
# scheduler components
include run_isolate;
-include run_mutation;
+include run_multicore;
include run_memo;
include run_octopus;
include srvpool;
diff --git a/monetdb5/optimizer/Makefile.ag b/monetdb5/optimizer/Makefile.ag
--- a/monetdb5/optimizer/Makefile.ag
+++ b/monetdb5/optimizer/Makefile.ag
@@ -54,7 +54,7 @@ lib_optimizer = {
opt_mergetable.c opt_mergetable.h \
opt_mitosis.c opt_mitosis.h \
opt_multiplex.c opt_multiplex.h \
- opt_mutation.c opt_mutation.h \
+ opt_multicore.c opt_multicore.h \
opt_octopus.c opt_octopus.h \
opt_origin.c opt_origin.h \
opt_pipes.c opt_pipes.h \
diff --git a/monetdb5/optimizer/opt_mutation.c
b/monetdb5/optimizer/opt_multicore.c
rename from monetdb5/optimizer/opt_mutation.c
rename to monetdb5/optimizer/opt_multicore.c
--- a/monetdb5/optimizer/opt_mutation.c
+++ b/monetdb5/optimizer/opt_multicore.c
@@ -17,7 +17,7 @@
* All Rights Reserved.
*/
#include "monetdb_config.h"
-#include "opt_mutation.h"
+#include "opt_multicore.h"
/* (c) M Kersten
@@ -26,7 +26,7 @@
*/
int
-OPTmutationImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci)
+OPTmulticoreImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr
pci)
{
int i,limit, slimit;
InstrPtr *old= mb->stmt;
@@ -48,7 +48,7 @@ OPTmutationImplementation(Client cntxt,
for (i = 1; i < limit; i++) {
if ( getModuleId(old[i]) == languageRef &&
getFunctionId(old[i]) == dataflowRef){
setModuleId(old[i], schedulerRef);
- setFunctionId(old[i], mutationRef);
+ setFunctionId(old[i], multicoreRef);
}
pushInstruction(mb,old[i]);
}
diff --git a/monetdb5/optimizer/opt_mutation.h
b/monetdb5/optimizer/opt_multicore.h
rename from monetdb5/optimizer/opt_mutation.h
rename to monetdb5/optimizer/opt_multicore.h
--- a/monetdb5/optimizer/opt_mutation.h
+++ b/monetdb5/optimizer/opt_multicore.h
@@ -16,16 +16,16 @@
* Copyright August 2008-2013 MonetDB B.V.
* All Rights Reserved.
*/
-#ifndef _OPT_MUTATION_
-#define _OPT_MUTATION_
+#ifndef _OPT_MULTICORE
+#define _OPT_MULTICORE
#include "opt_prelude.h"
#include "opt_support.h"
#include "mal_interpreter.h"
#include "mal_instruction.h"
#include "mal_function.h"
-opt_export int OPTmutationImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr
stk, InstrPtr pci);
+opt_export int OPTmulticoreImplementation(Client cntxt, MalBlkPtr mb,
MalStkPtr stk, InstrPtr pci);
-#define OPTDEBUGmutation if ( optDebug & (1 <<DEBUG_OPT_MUTATION) )
+#define OPTDEBUGmulticore if ( optDebug & (1 <<DEBUG_OPT_MULTICORE) )
#endif
diff --git a/monetdb5/optimizer/opt_pipes.c b/monetdb5/optimizer/opt_pipes.c
--- a/monetdb5/optimizer/opt_pipes.c
+++ b/monetdb5/optimizer/opt_pipes.c
@@ -275,10 +275,10 @@ struct PIPELINES {
"optimizer.garbageCollector();",
"experimental", "OPTcompress", NULL, 1},
/*
- * The mutation optimizer modifies the plan at each call.
+ * The multicore optimizer modifies the plan at each call.
* It is a refinement of the default pipeline
*/
- {"mutation_pipe",
+ {"multicore_pipe",
"optimizer.inline();"
"optimizer.remap();"
"optimizer.costModel();"
@@ -300,7 +300,7 @@ struct PIPELINES {
"optimizer.dataflow();"
"optimizer.querylog();"
"optimizer.multiplex();"
- "optimizer.mutation();"
+ "optimizer.multicore();"
"optimizer.garbageCollector();",
"stable", NULL, NULL, 1},
/* sentinel */
diff --git a/monetdb5/optimizer/opt_prelude.c b/monetdb5/optimizer/opt_prelude.c
--- a/monetdb5/optimizer/opt_prelude.c
+++ b/monetdb5/optimizer/opt_prelude.c
@@ -129,7 +129,7 @@ str likeuselectRef;
str ilikeuselectRef;
str likeRef;
str ilikeRef;
-str mutationRef;
+str multicoreRef;
str not_likeRef;
str not_ilikeRef;
str listRef;
@@ -391,7 +391,7 @@ void optimizerInit(void){
listRef = putName("list",4);
likeRef = putName("like",4);
ilikeRef = putName("ilike",5);
- mutationRef = putName("mutation",8);
+ multicoreRef = putName("multicore",9);
not_likeRef = putName("not_like",8);
not_ilikeRef = putName("not_ilike",9);
lockRef = putName("lock",4);
diff --git a/monetdb5/optimizer/opt_prelude.h b/monetdb5/optimizer/opt_prelude.h
--- a/monetdb5/optimizer/opt_prelude.h
+++ b/monetdb5/optimizer/opt_prelude.h
@@ -129,7 +129,7 @@ opt_export str ilikeuselectRef;
opt_export str listRef;
opt_export str likeRef;
opt_export str ilikeRef;
-opt_export str mutationRef;
+opt_export str multicoreRef;
opt_export str not_likeRef;
opt_export str not_ilikeRef;
opt_export str lockRef;
diff --git a/monetdb5/optimizer/opt_support.c b/monetdb5/optimizer/opt_support.c
--- a/monetdb5/optimizer/opt_support.c
+++ b/monetdb5/optimizer/opt_support.c
@@ -168,7 +168,7 @@ struct OPTcatalog {
{"mergetable", 0, 0, 0, DEBUG_OPT_MERGETABLE},
{"mitosis", 0, 0, 0, DEBUG_OPT_MITOSIS},
{"multiplex", 0, 0, 0, DEBUG_OPT_MULTIPLEX},
-{"mutation", 0, 0, 0, DEBUG_OPT_MUTATION},
+{"multicore", 0, 0, 0, DEBUG_OPT_MULTICORE},
{"octopus", 0, 0, 0, DEBUG_OPT_OCTOPUS},
{"origin", 0, 0, 0, DEBUG_OPT_ORIGIN},
{"peephole", 0, 0, 0, DEBUG_OPT_PEEPHOLE},
diff --git a/monetdb5/optimizer/opt_support.h b/monetdb5/optimizer/opt_support.h
--- a/monetdb5/optimizer/opt_support.h
+++ b/monetdb5/optimizer/opt_support.h
@@ -64,7 +64,7 @@
#define DEBUG_OPT_MACRO 23
#define DEBUG_OPT_MATPACK 53
#define DEBUG_OPT_MERGETABLE 24
-#define DEBUG_OPT_MUTATION 54
+#define DEBUG_OPT_MULTICORE 54
#define DEBUG_OPT_OCTOPUS 25
#define DEBUG_OPT_ORIGIN 52
#define DEBUG_OPT_PARTITIONS 26
diff --git a/monetdb5/optimizer/opt_wrapper.c b/monetdb5/optimizer/opt_wrapper.c
--- a/monetdb5/optimizer/opt_wrapper.c
+++ b/monetdb5/optimizer/opt_wrapper.c
@@ -61,7 +61,7 @@ All Rights Reserved.
#include "opt_mergetable.h"
#include "opt_mitosis.h"
#include "opt_multiplex.h"
-#include "opt_mutation.h"
+#include "opt_multicore.h"
#include "opt_octopus.h"
#include "opt_origin.h"
#include "opt_prejoin.h"
@@ -106,7 +106,7 @@ struct{
{"mergetable", &OPTmergetableImplementation},
{"mitosis", &OPTmitosisImplementation},
{"multiplex", &OPTmultiplexImplementation},
- {"mutation", &OPTmutationImplementation},
+ {"multicore", &OPTmulticoreImplementation},
{"octopus", &OPToctopusImplementation},
{"origin", &OPToriginImplementation},
{"prejoin", &OPTprejoinImplementation},
diff --git a/monetdb5/optimizer/optimizer.mal b/monetdb5/optimizer/optimizer.mal
--- a/monetdb5/optimizer/optimizer.mal
+++ b/monetdb5/optimizer/optimizer.mal
@@ -494,12 +494,12 @@ pattern optimizer.pushselect(mod:str, fc
address OPTwrapper
comment "Push selects down projections";
-#opt_mutation.mal
+#opt_multicore.mal
-pattern optimizer.mutation():str
+pattern optimizer.multicore():str
address OPTwrapper;
-pattern optimizer.mutation(mod:str, fcn:str):str
+pattern optimizer.multicore(mod:str, fcn:str):str
address OPTwrapper
-comment "Prepare for plan mutation";
+comment "Prepare for adaptive multicore procesing";
optimizer.prelude();
diff --git a/monetdb5/scheduler/Makefile.ag b/monetdb5/scheduler/Makefile.ag
--- a/monetdb5/scheduler/Makefile.ag
+++ b/monetdb5/scheduler/Makefile.ag
@@ -30,7 +30,7 @@ lib_scheduler = {
SOURCES = \
run_adder.c run_adder.h \
run_isolate.c run_isolate.h \
- run_mutation.c run_mutation.h \
+ run_multicore.c run_multicore.h \
mut_transforms.c mut_transforms.h \
mut_policy.c mut_policy.h \
run_memo.c run_memo.h \
@@ -42,7 +42,7 @@ lib_scheduler = {
headers_mal = {
HEADERS = mal
DIR = libdir/monetdb5
- SOURCES = run_adder.mal run_isolate.mal run_mutation.mal run_memo.mal
run_octopus.mal srvpool.mal
+ SOURCES = run_adder.mal run_isolate.mal run_multicore.mal run_memo.mal
run_octopus.mal srvpool.mal
}
EXTRA_DIST_DIR = Tests
diff --git a/monetdb5/scheduler/Tests/mutation00.mal
b/monetdb5/scheduler/Tests/mutation00.mal
--- a/monetdb5/scheduler/Tests/mutation00.mal
+++ b/monetdb5/scheduler/Tests/mutation00.mal
@@ -1,7 +1,7 @@
-# example framework for a mutation based execution stack
+# example framework for a multicore based execution stack
-# The mutation scheduler picks a plan from a specific pool
-# possibly after performing introspection and plan mutation
+# The multicore scheduler picks a plan from a specific pool
+# possibly after performing introspection and plan multicore
function initialize{unsafe}():bat[:oid,:lng];
b:= bat.new(:oid,:lng);
@@ -40,7 +40,7 @@ exit z;
end query;
#multiple calls should produce more parallel plans.
-optimizer.mutation("user","query");
+optimizer.multicore("user","query");
user.query();
user.query();
user.query();
diff --git a/monetdb5/scheduler/Tests/mutation00.stable.out
b/monetdb5/scheduler/Tests/mutation00.stable.out
--- a/monetdb5/scheduler/Tests/mutation00.stable.out
+++ b/monetdb5/scheduler/Tests/mutation00.stable.out
@@ -18,7 +18,7 @@ stdout of test 'mutation00` in directory
# MonetDB/GIS module loaded
# MonetDB/JAQL module loaded
# MonetDB/SQL module loaded
-function user.initialize():bat[:oid,:lng];
+function user.initialize{unsafe}():bat[:oid,:lng];
b := bat.new(:oid,:lng);
INT_MAX := 2147483647;
dbgmsk_restore := mdb.getDebug();
@@ -40,9 +40,10 @@ function user.query():void;
t0 := alarm.usec();
b := user.initialize();
barrier z := language.dataflow();
- sum1 := aggr.sum(b);
- sum2 := aggr.sum(b);
- sum3 := aggr.sum(b);
+ s1 := algebra.subselect(b,1:lng,99:lng,true,false,false);
+ s2 := algebra.subselect(b,1:lng,999:lng,true,false,false);
+ s3 := algebra.subselect(b,1:lng,9999:lng,true,false,false);
+ language.pass(b);
exit z;
t1 := alarm.usec();
t2 := calc.-(t1,t0);
@@ -53,10 +54,158 @@ function user.main():void;
# The mutation scheduler picks a plan from a specific pool
# possibly after performing introspection and plan mutation
#multiple calls should produce more parallel plans.
- scheduler.mutation("user","query");
- scheduler.mutation("user","query");
- scheduler.mutation("user","query");
+ user.query();
+ user.query();
+ user.query();
+ user.query();
+ user.query();
end main;
+#1164605
+#mutation candidate 4 cost 6666
+#mutation candidate 5 cost 5806
+#mutation candidate 6 cost 6703
+#mutation calls 1 cost 1000
+#mutation target instruction 6 cost 6703
+
+&1 0 17 1 17
+% .explain # table_name
+% mal # name
+% clob # type
+% 210 # length
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list