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 checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list