Changeset: 81ec059be50a for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=81ec059be50a
Added Files:
monetdb5/scheduler/Tests/20Runs400MB8MBJoinSelect.mal
Modified Files:
monetdb5/scheduler/run_multicore.h
Branch: mutation
Log Message:
test case for combination of join and select
diffs (113 lines):
diff --git a/monetdb5/scheduler/Tests/20Runs400MB8MBJoinSelect.mal
b/monetdb5/scheduler/Tests/20Runs400MB8MBJoinSelect.mal
new file mode 100644
--- /dev/null
+++ b/monetdb5/scheduler/Tests/20Runs400MB8MBJoinSelect.mal
@@ -0,0 +1,96 @@
+#Left table size 400MB right table size 8MB, 0% selectivity of subselect
+
+function initializeFirst{unsafe}():bat[:oid,:lng];
+ b:= bat.new(:oid,:lng,50000000:lng);
+
+ tf0 := alarm.usec();
+ r:= mmath.srand(0);
+ barrier i:= 0:lng;
+ k:= mmath.rand();
+ l:= calc.lng(k);
+ bat.append(b,l);
+ redo i:= iterator.next(1:lng,50000000:lng);
+ exit i;
+
+ tf1 := alarm.usec();
+ tf := tf1 - tf0;
+ io.printf("\nbat creation time := %d \n",tf);
+
+ return b;
+end initializeFirst;
+
+function initializeNext{unsafe}():bat[:oid,:lng];
+ b:= bat.new(:oid,:lng);
+
+ r:= mmath.srand(0);
+ barrier i:= 0:lng;
+ k:= mmath.rand();
+ l:= calc.lng(k);
+ bat.append(b,l);
+ redo i:= iterator.next(1:lng,1000000:lng);
+ exit i;
+
+ return b;
+end initializeNext;
+
+
+function query(run:int, a:bat[:oid,:lng], b:bat[:oid,:lng]);
+ t0:= alarm.usec();
+
+ profiler.activate("ticks");
+ profiler.activate("thread");
+ profiler.activate("stmt");
+ profiler.activate("time");
+ profiler.setAll();
+ profiler.start();
+
+ s1:= nil:bat[:oid,:oid];
+ s2:= nil:bat[:oid,:oid];
+barrier z:= language.dataflow();
+ a1 :=
algebra.subselect(a,1:lng,999999999999999999:lng,true,false,false);
+ c1 := algebra.leftfetchjoin(a1, a);
+ (s1,s2) := algebra.join(c1,b);
+exit z;
+ t1:= alarm.usec();
+ t2 := t1-t0;
+ io.printf("%d %d \n",run,t2);
+# io.printf("#run %d %d\n",run,t2);
+ stmt:= profiler.getTrace("stmt");
+ ticks:= profiler.getTrace("ticks");
+ thread:= profiler.getTrace("thread");
+# time1:= profiler.getTrace("time");
+# io.print(time1,thread,ticks,stmt);
+# io.print(thread,ticks,stmt);
+
+end query;
+
+optimizer.multicore("user","query");
+function testrun();
+
+ a:= initializeFirst();
+ bat.setReadMode(a);
+ b:= initializeNext();
+ bat.setReadMode(b);
+ user.query(0,a,b);
+ user.query(1,a,b);
+ user.query(2,a,b);
+ user.query(3,a,b);
+ user.query(4,a,b);
+ user.query(5,a,b);
+ user.query(6,a,b);
+ user.query(7,a,b);
+ user.query(8,a,b);
+ user.query(9,a,b);
+ user.query(10,a,b);
+ user.query(11,a,b);
+ user.query(12,a,b);
+ user.query(13,a,b);
+ user.query(14,a,b);
+ user.query(15,a,b);
+ user.query(16,a,b);
+ user.query(17,a,b);
+ user.query(18,a,b);
+ user.query(19,a,b);
+ user.query(20,a,b);
+end testrun;
+testrun();
diff --git a/monetdb5/scheduler/run_multicore.h
b/monetdb5/scheduler/run_multicore.h
--- a/monetdb5/scheduler/run_multicore.h
+++ b/monetdb5/scheduler/run_multicore.h
@@ -48,7 +48,7 @@ typedef struct MUTANT{
int target; // operation changed from previous
struct MUTANT *next;
} *Mutant;
-#define DEBUG_MULTICORE if(1)
+#define DEBUG_MULTICORE if(0)
run_multicore_export str RUNmulticore(Client cntxt, MalBlkPtr mb, MalStkPtr
stk, InstrPtr p);
run_multicore_export void multicorePrint(Client cntxt, Mutant m);
#endif /* MAL_RUN_MULTICORE */
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list