Changeset: d55814a0163e for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d55814a0163e
Removed Files:
        gdk/gdk_mapreduce.c
        gdk/gdk_mapreduce.h
Modified Files:
        clients/Tests/exports.stable.out
        gdk/Makefile.ag
        sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out
        sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out
        sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out.int128.single
        sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out.single
Branch: partitioned-hash
Log Message:

Merged with default.


diffs (truncated from 484 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
@@ -267,7 +267,6 @@ gdk_return HEAPextend(Heap *h, size_t si
 size_t HEAPmemsize(Heap *h);
 size_t HEAPvmsize(Heap *h);
 lng IMPSimprintsize(BAT *b);
-void MRschedule(int taskcnt, void **arg, void( *cmd)(void *p));
 int MT_check_nr_cores(void);
 int MT_create_thread(MT_Id *t, void( *function)(void *), void *arg, enum 
MT_thr_detach d);
 void MT_exiting_thread(void);
diff --git a/gdk/Makefile.ag b/gdk/Makefile.ag
--- a/gdk/Makefile.ag
+++ b/gdk/Makefile.ag
@@ -25,7 +25,7 @@ lib_gdk = {
                gdk_private.h gdk_delta.h gdk_logger.h gdk_posix.h \
                gdk_system.h gdk_system_private.h gdk_tm.h gdk_storage.h \
                gdk_calc.c gdk_calc.h gdk_calc_compare.h gdk_calc_private.h \
-               gdk_aggr.c gdk_group.c gdk_mapreduce.c gdk_mapreduce.h \
+               gdk_aggr.c gdk_group.c \
                gdk_hash.c gdk_hash.h \
                gdk_imprints.c gdk_imprints.h \
                gdk_join.c \
diff --git a/gdk/gdk_mapreduce.c b/gdk/gdk_mapreduce.c
deleted file mode 100644
--- a/gdk/gdk_mapreduce.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * 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/.
- *
- * Copyright 2008-2015 MonetDB B.V.
- */
-
-/*
- * (co)  Martin L. Kersten 
- * This module provide a lightweight map-reduce scheduler for multicore 
systems.
- * A limited number of workers are initialized upfront, which take the tasks
- * from a central queue. The header of these task descriptors should comply
- * with the MRtask structure.
- *
- */
-#include "monetdb_config.h"
-#include "gdk.h"
-#include "gdk_mapreduce.h"
-
-typedef struct {
-       MT_Sema *sema;                  /* micro scheduler handle */
-       void (*cmd) (void *);           /* the function to be executed */
-       void *arg;                      /* the arguments of the function */
-} MRtask;
-
-/* each entry in the queue contains a list of tasks */
-typedef struct MRQUEUE {
-       MRtask *tasks;
-       int index;              /* next available task */
-       int size;               /* number of tasks */
-} MRqueue;
-
-static MRqueue *mrqueue;
-static int mrqsize = -1;       /* size of queue */
-static int mrqlast = -1;
-/* it's a shared resource, so we need locks */
-static MT_Lock mrqlock MT_LOCK_INITIALIZER("mrqlock");
-static MT_Sema mrqsema;                /* threads wait on empty queues */
-
-
-static void MRworker(void *);
-
-/* There is just a single queue for the workers */
-static void
-MRqueueCreate(int sz)
-{
-       int i;
-       MT_Id tid;
-
-#ifdef NEED_MT_LOCK_INIT
-       MT_lock_init(&mrqlock, "mrqlock");
-#endif
-       MT_lock_set(&mrqlock, "MRqueueCreate");
-       MT_sema_init(&mrqsema, 0, "mrqsema");
-       if (mrqueue) {
-               MT_lock_unset(&mrqlock, "MRqueueCreate");
-               GDKerror("One map-reduce queue allowed");
-               return;
-       }
-       sz *= 2;
-       mrqueue = (MRqueue *) GDKzalloc(sizeof(MRqueue) * sz);
-       if (mrqueue == 0) {
-               MT_lock_unset(&mrqlock, "MRqueueCreate");
-               GDKerror("Could not create the map-reduce queue");
-               return;
-       }
-       mrqsize = sz;
-       mrqlast = 0;
-       /* create a worker thread for each core as specified as system 
parameter */
-       for (i = 0; i < GDKnr_threads; i++)
-               MT_create_thread(&tid, MRworker, (void *) 0, MT_THR_DETACHED);
-       MT_lock_unset(&mrqlock, "MRqueueCreate");
-}
-
-static void
-MRenqueue(int taskcnt, MRtask *tasks)
-{
-       assert(taskcnt > 0);
-       MT_lock_set(&mrqlock, "MRenqueue");
-       if (mrqlast == mrqsize) {
-               mrqsize <<= 1;
-               mrqueue = (MRqueue *) GDKrealloc(mrqueue, sizeof(MRqueue) * 
mrqsize);
-               if (mrqueue == 0) {
-                       MT_lock_unset(&mrqlock, "MRenqueue");
-                       GDKerror("Could not enlarge the map-reduce queue");
-                       return;
-               }
-       }
-       mrqueue[mrqlast].index = 0;
-       mrqueue[mrqlast].tasks = tasks;
-       mrqueue[mrqlast].size = taskcnt;
-       mrqlast++;
-       MT_lock_unset(&mrqlock, "MRenqueue");
-       /* a task list is added for consumption */
-       while (taskcnt-- > 0)
-               MT_sema_up(&mrqsema, "MRenqueue");
-}
-
-static MRtask *
-MRdequeue(void)
-{
-       MRtask *r = NULL;
-       int idx;
-
-       MT_sema_down(&mrqsema, "MRdequeue");
-       assert(mrqlast);
-       MT_lock_set(&mrqlock, "MRdequeue");
-       if (mrqlast > 0) {
-               idx = mrqueue[mrqlast - 1].index;
-               r = &mrqueue[mrqlast - 1].tasks[idx++];
-               if (mrqueue[mrqlast - 1].size == idx)
-                       mrqlast--;
-               else
-                       mrqueue[mrqlast - 1].index = idx;
-       }
-       MT_lock_unset(&mrqlock, "MRdequeue");
-       assert(r);
-       return r;
-}
-
-static void
-MRworker(void *arg)
-{
-       MRtask *task;
-       (void) arg;
-       do {
-               task = MRdequeue();
-               (task->cmd) (task->arg);
-               MT_sema_up(task->sema, "MRworker");
-       } while (1);
-}
-
-/* schedule the tasks and return when all are done */
-void
-MRschedule(int taskcnt, void **arg, void (*cmd) (void *p))
-{
-       int i;
-       MT_Sema sema;
-       MRtask *task = GDKmalloc(taskcnt * sizeof(MRtask));
-
-       if (mrqueue == 0)
-               MRqueueCreate(1024);
-
-       MT_sema_init(&sema, 0, "sema");
-       for (i = 0; i < taskcnt; i++) {
-               task[i].sema = &sema;
-               task[i].cmd = cmd;
-               task[i].arg = arg ? arg[i] : NULL;
-       }
-       MRenqueue(taskcnt, task);
-       /* waiting for all report result */
-       for (i = 0; i < taskcnt; i++)
-               MT_sema_down(&sema, "MRschedule");
-       MT_sema_destroy(&sema);
-       GDKfree(task);
-}
diff --git a/gdk/gdk_mapreduce.h b/gdk/gdk_mapreduce.h
deleted file mode 100644
--- a/gdk/gdk_mapreduce.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * 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/.
- *
- * Copyright 2008-2015 MonetDB B.V.
- */
-
-#ifndef _GDK_MAPREDUCE_H_
-#define _GDK_MAPREDUCE_H_
-
-gdk_export void MRschedule(int taskcnt, void **arg, void (*cmd) (void *p));
-
-#endif /* _GDK_MAPREDUCE_H_ */
diff --git a/sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out 
b/sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out
--- a/sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out
+++ b/sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out
@@ -46,42 +46,42 @@ project (
 % clob # type
 % 142 # length
 function user.s4_1(A0:lng,A1:bte):void;
-    X_60:void := querylog.define("explain select a as d, sum(b), (2 * (sum(b) 
/ (select 2))) as f from dbg group by d;","sequential_pipe",38);
+    X_59:void := querylog.define("explain select a as d, sum(b), (2 * (sum(b) 
/ (select 2))) as f from dbg group by d;","sequential_pipe",38);
     X_26 := bat.new(nil:oid,nil:str);
     X_34 := bat.append(X_26,"sys.dbg");
-    X_44 := bat.append(X_34,"sys.L1");
-    X_53 := bat.append(X_44,".L3");
+    X_43 := bat.append(X_34,"sys.L1");
+    X_52 := bat.append(X_43,".L3");
     X_29 := bat.new(nil:oid,nil:str);
     X_36 := bat.append(X_29,"d");
-    X_46 := bat.append(X_36,"L1");
-    X_55 := bat.append(X_46,"f");
+    X_45 := bat.append(X_36,"L1");
+    X_54 := bat.append(X_45,"f");
     X_30 := bat.new(nil:oid,nil:str);
     X_38 := bat.append(X_30,"int");
-    X_48 := bat.append(X_38,"bigint");
-    X_57 := bat.append(X_48,"bigint");
+    X_47 := bat.append(X_38,"bigint");
+    X_56 := bat.append(X_47,"bigint");
     X_31 := bat.new(nil:oid,nil:int);
     X_40 := bat.append(X_31,32);
-    X_50 := bat.append(X_40,64);
-    X_58 := bat.append(X_50,64);
+    X_49 := bat.append(X_40,64);
+    X_57 := bat.append(X_49,64);
     X_33 := bat.new(nil:oid,nil:int);
     X_42 := bat.append(X_33,0);
-    X_52 := bat.append(X_42,0);
-    X_59 := bat.append(X_52,0);
+    X_51 := bat.append(X_42,0);
+    X_58 := bat.append(X_51,0);
     X_3 := sql.mvc();
-    X_4:bat[:oid,:oid]  := sql.tid(X_3,"sys","dbg");
+    C_4:bat[:oid,:oid] := sql.tid(X_3,"sys","dbg");
     X_7:bat[:oid,:int]  := sql.bind(X_3,"sys","dbg","a",0);
-    X_10 := algebra.leftfetchjoin(X_4,X_7);
+    X_10 := algebra.leftfetchjoin(C_4,X_7);
     (X_11,r1_11,r2_11) := group.subgroupdone(X_10);
     X_14 := algebra.leftfetchjoin(r1_11,X_10);
     X_15:bat[:oid,:int]  := sql.bind(X_3,"sys","dbg","b",0);
-    X_17 := algebra.leftfetchjoin(X_4,X_15);
+    X_17 := algebra.leftfetchjoin(C_4,X_15);
     X_18:bat[:oid,:lng]  := aggr.subsum(X_17,X_11,r1_11,true,true);
     X_20 := algebra.project(X_10,A1);
     X_21 := algebra.leftfetchjoin(r1_11,X_20);
     X_22 := batcalc.lng(X_21);
     X_23:bat[:oid,:lng]  := batcalc./(X_18,X_22);
     X_24:bat[:oid,:lng]  := batcalc.*(A0,X_23);
-    sql.resultSet(X_53,X_55,X_57,X_58,X_59,X_14,X_18,X_24);
+    sql.resultSet(X_52,X_54,X_56,X_57,X_58,X_14,X_18,X_24);
 end user.s4_1;
 #set optimizer = 'default_pipe';
 #SELECT a as d, SUM(b), (2 * (SUM(b) / (SELECT 2))) as f FROM dbg GROUP BY d;
@@ -114,42 +114,42 @@ project (
 % clob # type
 % 147 # length
 function user.s10_1(A0:lng,A1:bte):void;
-    X_60:void := querylog.define("explain select a as d, sum(b) as e, (2 * 
(sum(b) / (select 2))) as f from dbg group by d;","sequential_pipe",38);
+    X_59:void := querylog.define("explain select a as d, sum(b) as e, (2 * 
(sum(b) / (select 2))) as f from dbg group by d;","sequential_pipe",38);
     X_26 := bat.new(nil:oid,nil:str);
     X_34 := bat.append(X_26,"sys.dbg");
-    X_44 := bat.append(X_34,"sys.L1");
-    X_53 := bat.append(X_44,".L3");
+    X_43 := bat.append(X_34,"sys.L1");
+    X_52 := bat.append(X_43,".L3");
     X_29 := bat.new(nil:oid,nil:str);
     X_36 := bat.append(X_29,"d");
-    X_46 := bat.append(X_36,"e");
-    X_55 := bat.append(X_46,"f");
+    X_45 := bat.append(X_36,"e");
+    X_54 := bat.append(X_45,"f");
     X_30 := bat.new(nil:oid,nil:str);
     X_38 := bat.append(X_30,"int");
-    X_48 := bat.append(X_38,"bigint");
-    X_57 := bat.append(X_48,"bigint");
+    X_47 := bat.append(X_38,"bigint");
+    X_56 := bat.append(X_47,"bigint");
     X_31 := bat.new(nil:oid,nil:int);
     X_40 := bat.append(X_31,32);
-    X_50 := bat.append(X_40,64);
-    X_58 := bat.append(X_50,64);
+    X_49 := bat.append(X_40,64);
+    X_57 := bat.append(X_49,64);
     X_33 := bat.new(nil:oid,nil:int);
     X_42 := bat.append(X_33,0);
-    X_52 := bat.append(X_42,0);
-    X_59 := bat.append(X_52,0);
+    X_51 := bat.append(X_42,0);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to