Changeset: 371dc0ceb65c for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=371dc0ceb65c Removed Files: monetdb5/modules/mal/trader.c monetdb5/modules/mal/trader.h monetdb5/modules/mal/trader.mal monetdb5/optimizer/Tests/octopus00.mal monetdb5/optimizer/Tests/octopus01.mal monetdb5/optimizer/opt_octopus.c monetdb5/optimizer/opt_octopus.h monetdb5/scheduler/run_octopus.c monetdb5/scheduler/run_octopus.h monetdb5/scheduler/run_octopus.mal sql/backends/monet5/sql_octopus.mal sql/scripts/octopus.sql sql/test/octopus/Tests/All sql/test/octopus/Tests/lhminit.sql sql/test/octopus/Tests/lhmquery00.sql sql/test/octopus/Tests/lhmviews00.sql sql/test/octopus/Tests/squid.sql sql/test/octopus/Tests/squid.stable.err sql/test/octopus/Tests/squid.stable.out sql/test/octopus/Tests/squid00.sql sql/test/octopus/Tests/squid00.stable.err sql/test/octopus/Tests/squid00.stable.out sql/test/octopus/Tests/squid01.sql sql/test/octopus/Tests/squid01.stable.err sql/test/octopus/Tests/squid01.stable.out sql/test/octopus/Tests/squidtrace.mal Modified Files: clients/Tests/exports.stable.out monetdb5/mal/mal_import.c monetdb5/modules/mal/Makefile.ag monetdb5/modules/mal/mal_init.mal monetdb5/optimizer/Makefile.ag monetdb5/optimizer/Tests/dataflow3.stable.out monetdb5/optimizer/opt_mitosis.c monetdb5/optimizer/opt_pipes.c monetdb5/optimizer/opt_prelude.c monetdb5/optimizer/opt_prelude.h monetdb5/optimizer/opt_reorder.c 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/srvpool.c monetdb5/scheduler/srvpool.h sql/backends/monet5/Makefile.ag sql/scripts/Makefile.ag Branch: default Log Message:
Moving the octopus code to the attic diffs (truncated from 14533 to 300 lines): diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -1673,13 +1673,6 @@ str MTIMEtzone_get_local(tzone *z); str MTIMEtzone_set_local(void *res, const tzone *z); str MTIMEtzone_tostr(str *s, const tzone *ret); str MTIMEunix_epoch(timestamp *ret); -str OCTOPUSbidding(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str OCTOPUSconnect(str *c, str *dbname); -str OCTOPUSdiscoverRegister(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); -str OCTOPUSgetVersion(int *res); -str OCTOPUSmakeSchedule(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); -str OCTOPUSregister(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str OCTOPUSrun(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); int OPTaccumulatorsImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); void OPTaliasRemap(InstrPtr p, int *alias); int OPTaliasesImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); @@ -1701,8 +1694,6 @@ int OPTinlineImplementation(Client cntxt int OPTisAlias(InstrPtr p); int OPTjoinPathImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); int OPTjsonImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str OPTlegAdvice(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -int OPTlegAdviceInternal(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str OPTmacro(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); int OPTmacroImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); int OPTmatpackImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); @@ -1710,7 +1701,6 @@ int OPTmergetableImplementation(Client c int OPTmitosisImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); int OPTmultiplexImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str OPTmultiplexSimple(Client cntxt); -int OPToctopusImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str OPTorcam(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); int OPTorcamImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); int OPTpushrangesImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); @@ -2007,8 +1997,6 @@ str TKNZRlocate(Client cntxt, MalBlkPtr str TKNZRopen(void *r, str *name); str TKNZRtakeOid(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); void TRACEtable(BAT **r); -str TRADERmakeBid(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str TRADERmakeBids(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str TRNglobal_abort(bit *ret); str TRNglobal_commit(bit *ret); str TRNglobal_sync(bit *ret); @@ -2520,7 +2508,6 @@ str not_ilikeRef; str not_likeRef; str not_uniqueRef; int notnilProp; -str octopusRef; str oidRef; void oldmoveInstruction(InstrPtr dst, InstrPtr src); str openProfilerStream(stream *fd); diff --git a/monetdb5/mal/mal_import.c b/monetdb5/mal/mal_import.c --- a/monetdb5/mal/mal_import.c +++ b/monetdb5/mal/mal_import.c @@ -94,7 +94,7 @@ malLoadScript(Client c, str name, bstrea size_t sz; fd = malOpenSource(name); - if (mnstr_errnr(fd) == MNSTR_OPEN_ERROR) { + if (fd == 0 || mnstr_errnr(fd) == MNSTR_OPEN_ERROR) { mnstr_destroy(fd); throw(MAL, "malInclude", "could not open file: %s", name); } diff --git a/monetdb5/modules/mal/Makefile.ag b/monetdb5/modules/mal/Makefile.ag --- a/monetdb5/modules/mal/Makefile.ag +++ b/monetdb5/modules/mal/Makefile.ag @@ -55,7 +55,6 @@ lib_mal = { sysmon.c sysmon.h \ tablet.c tablet.h \ tokenizer.c tokenizer.h \ - trader.c trader.h \ transaction.c \ txtsim.c txtsim.h \ zorder.c zorder.h \ @@ -75,7 +74,7 @@ headers_mal = { transaction.mal \ mal_mapi.mal sabaoth.mal remote.mal \ txtsim.mal recycle.mal \ - cluster.mal trader.mal \ + cluster.mal \ tokenizer.mal zorder.mal sample.mal json_util.mal \ batmtime.mal querylog.mal sysmon.mal } @@ -97,7 +96,7 @@ headers_hge = { EXTRA_DIST = batExtensions.mal iterator.mal \ groupby.mal mal_init.mal manual.mal mkey.mal manifold.mal pcre.mal \ - profiler.mal recycle.mal remote.mal sabaoth.mal trader.mal \ + profiler.mal recycle.mal remote.mal sabaoth.mal \ transaction.mal txtsim.mal tablet.mal tablet.h sample.mal json_util.mal \ mal_mapi.mal mat.mal tokenizer.mal \ batmtime.mal querylog.mal sysmon.mal \ 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 @@ -108,7 +108,6 @@ include zorder; # scheduler components include run_isolate; include run_memo; -include run_octopus; include srvpool; include mal_mapi; diff --git a/monetdb5/modules/mal/trader.c b/monetdb5/modules/mal/trader.c deleted file mode 100644 --- a/monetdb5/modules/mal/trader.c +++ /dev/null @@ -1,232 +0,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 - * - * 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. - */ - -/* - * @a M. Ivanova, M. Kersten - * @f trader - * @- This module contains primitives for bidding of (sub)-query execution - * among mservers. - * - * trader.makeBid() is used to ask another server to make a bid for a mal function (sub-query) execution. - * - * Currently the bid estimate is made using only the recycle cache. - * ToDo: use the info about server load - * FactFinder - */ -#include "monetdb_config.h" -#include <mal.h> -#include <mal_exception.h> -#include <mal_instruction.h> -#include <mal_module.h> -#include <mal_recycle.h> -#include "trader.h" -#include <time.h> - -/* -static lng estimateSavings0(MalBlkPtr mb, sht bidtype) -{ - (void) mb; - (void) bidtype; - return (lng)100; -} -*/ - -static lng estimateSavings(MalBlkPtr mb, sht bidtype) -{ - MalStkPtr stk = NULL; - int i, j, k, marked = 0, maxparam = 0; - ValPtr lhs, rhs; - InstrPtr p, q; - lng savedInstr = 0, savedKB = 0; - static str octopusRef = 0, bindRef = 0, bindidxRef = 0; - - if (octopusRef == 0) - octopusRef = putName("octopus",7); - if (bindRef == 0) - bindRef = putName("bind",4); - if (bindidxRef == 0) - bindidxRef = putName("bind_idxbat",11); - - if( recycleBlk == 0 ) - return 0; - - /* Create a phony exec. stack */ - stk = newGlobalStack(mb->vsize); - stk->stktop = mb->vtop; - stk->stkbot = 0; - stk->blk = mb; - - /* Init symbol table of the phony stack */ - for(i= 0; i< mb->vtop; i++) { - lhs = &stk->stk[i]; - if( isVarConstant(mb,i) > 0 ){ -/* assert(!isVarCleanup(mb,i)); */ - if( !isVarDisabled(mb,i)){ - rhs = &getVarConstant(mb,i); - *lhs = *rhs; - if (rhs->vtype == TYPE_str && rhs->val.sval != 0) - lhs->val.sval = GDKstrdup(rhs->val.sval); - } - } else{ - lhs->vtype = getVarGDKType(mb,i); - lhs->val.pval = 0; - lhs->len = 0; - } - } - maxparam = getArg(mb->stmt[0], mb->stmt[0]->argc - 1); - /* don't compare function parameters */ - - for (k = 0; k < mb->stop; k++){ - p = getInstrPtr(mb,k); - if ( !RECYCLEinterest(p) ) - continue; - marked++; - if ( bidtype == BID_TRANS ) /* check only octopus.bind */ - if ( getModuleId(p) != octopusRef || - getFunctionId(p) != bindRef ) - continue; - - /* Match p against the recycle pool */ - for (i = 0; i < recycleBlk->stop; i++){ - q = getInstrPtr(recycleBlk,i); - - if ((getFunctionId(p) != getFunctionId(q)) || - (getModuleId(p) != getModuleId(q))) - continue; - - if (p->argc < q->argc-1) continue; - /* sub-range instructions can be subsumed from entire table */ - - else if (p->argc == q->argc-1) { /* check for exact match */ - - if ( bidtype == BID_TRANS ) j = p->retc + 1; - else j = p->retc; - for ( ; j < p->argc; j++){ - if (getArg(p,j) <= maxparam) continue; - if (VALcmp(&stk->stk[getArg(p,j)], &getVarConstant(recycleBlk,getArg(q,j)))) - goto nomatch; - } - - /* found an exact match - get the results on the stack */ - for( j=0; j<p->retc; j++){ - VALcopy(&stk->stk[getArg(p,j)], - &getVarConstant(recycleBlk,getArg(q,j)) ); - } - - if ( bidtype == BID_TRANS ) - savedKB += recycleBlk->stmt[i]->wbytes; - else savedInstr++; - break; - } - else { /* check for bind subsumption */ - int nr_part = 0; - if ( bidtype != BID_TRANS ) - continue; - for (j = p->retc + 1; j < 6; j++) - if ( VALcmp(&stk->stk[getArg(p,j)], - &getVarConstant(recycleBlk, getArg(q,j))) ) - goto nomatch; - nr_part = * (int*) getVarValue(mb, getArg(p,7)); - savedKB += nr_part?recycleBlk->stmt[i]->wbytes/nr_part : 0; - } - - nomatch: - continue; - } /* end loop over RP */ - } - - /* clean up the phony stack */ - freeStack(stk); - - if ( bidtype == BID_TRANS ) - return savedKB; - return (marked? (lng)100*savedInstr/marked: 0) ; -} - - -str TRADERmakeBid(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) -{ - lng *c = getArgReference_lng(stk,pci,0); - str fnname = *getArgReference_str(stk,pci,1); - sht bidtype = *getArgReference_sht(stk,pci,2); - Symbol sym; - static char fname[BUFSIZ] = ""; - static str biddingLog = NULL; - stream *s; - time_t now; - struct tm *nowtm; - char timestr[20]; - - (void) mb; - sym = findSymbol(cntxt->nspace, putName("octopus",7), fnname); - if ( sym == NULL) - throw(MAL,"trader.makeBid", RUNTIME_SIGNATURE_MISSING "%s", fnname); - - *c = estimateSavings(sym->def, bidtype); - - /* log bidding */ - if ( biddingLog == NULL) { - sprintf(fname,"%s%cbidding.log", GDKgetenv("gdk_dbpath"), DIR_SEP); - biddingLog = fname; - } - s = append_wastream(biddingLog); - if (s == NULL ) - throw(MAL,"trader.makeBid", RUNTIME_FILE_NOT_FOUND "%s", biddingLog); - if (mnstr_errnr(s)) { - mnstr_close(s); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list