Changeset: 31dd2cc775d7 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=31dd2cc775d7
Modified Files:
        gdk/gdk.h
        gdk/gdk_imprints.c
        gdk/gdk_join.c
        gdk/gdk_select.c
        monetdb5/mal/mal.h
        tools/mserver/mserver5.c
Branch: leftmart
Log Message:

added to mserver5 the --indexes debug option.

This option will print all index load and access events during select, join, 
group by etc.
Use IDXACCESS fprintf(stderr, "");


diffs (134 lines):

diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -475,6 +475,8 @@
 #define XPROPMASK      (1<<23)
 #define XPROPDEBUG     if (GDKdebug & XPROPMASK)
 */
+#define IDXACCMASK     (1<<23)
+#define IDXACCESS      if (GDKdebug & IDXACCMASK)
 
 #define JOINPROPMASK   (1<<24)
 #define JOINPROPCHK    if (!(GDKdebug & JOINPROPMASK))
diff --git a/gdk/gdk_imprints.c b/gdk/gdk_imprints.c
--- a/gdk/gdk_imprints.c
+++ b/gdk/gdk_imprints.c
@@ -243,6 +243,7 @@ BATcheckimprints(BAT *b)
                                        imprints->imprints->parentid = 
b->batCacheid;
                                        b->T->imprints = imprints;
                                        ALGODEBUG fprintf(stderr, 
"#BATcheckimprints: reusing persisted imprints %d\n", b->batCacheid);
+                                       IDXACCESS fprintf(stderr, "[%d] 
#BATcheckimprints: loaded persistent imprints\n", b->batCacheid);
                                        
MT_lock_unset(&GDKimprintsLock(abs(b->batCacheid)));
                                        return 1;
                                }
@@ -493,6 +494,7 @@ BATimprints(BAT *b)
 
        t1 = GDKusec();
        ALGODEBUG fprintf(stderr, "#BATimprints: imprints construction " LLFMT 
" usec\n", t1 - t0);
+       IDXACCESS fprintf(stderr, "[%d] #BATimprints: created imprints\n", 
b->batCacheid);
 
        MT_lock_unset(&GDKimprintsLock(abs(b->batCacheid)));
        /* BBPUnfix tries to get the imprints lock which might lead to a 
deadlock
diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -2642,7 +2642,7 @@ binsearchcand(const oid *cand, BUN lo, B
                                        r1->trevsorted = 0;             \
                        }                                               \
                }                                                       \
-               fprintf(stderr,"#hashjoin(b=%s#" BUNFMT ") %s: "        \
+               ALGODEBUG fprintf(stderr,"#hashjoin(b=%s#" BUNFMT ") %s: "      
\
                                "ask bloom filter: yes = " BUNFMT ", no = " 
BUNFMT \
                                ", probes = " BUNFMT ", false positives = " 
BUNFMT "\n", \
                                BATgetId(r), BATcount(r), r->T->heap.filename, \
diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c
--- a/gdk/gdk_select.c
+++ b/gdk/gdk_select.c
@@ -432,11 +432,15 @@ do {                                                      
                \
 #define scanloop(NAME,CAND,TEST)                                       \
 do {                                                                   \
        ALGODEBUG fprintf(stderr,                                       \
-                         "#BATselect(b=%s#"BUNFMT",s=%s%s,anti=%d): " \
+                         "#BATselect(b=%s#"BUNFMT",s=%s%s,anti=%d): "  \
                          "%s %s\n", BATgetId(b), BATcount(b),          \
                          s ? BATgetId(s) : "NULL",                     \
                          s && BATtdense(s) ? "(dense)" : "",           \
                          anti, #NAME, #TEST);                          \
+       IDXACCESS fprintf(stderr,                                       \
+                         "[%d]%s #BATselect: using imprints\n",        \
+                         VIEWtparent(b)?-VIEWtparent(b):b->batCacheid, \
+                         VIEWtparent(b)?"*":" ");                      \
        if (BATcapacity(bn) < maximum) {                                \
                while (p < q) {                                         \
                        CAND;                                           \
@@ -559,7 +563,7 @@ NAME##_##TYPE(BAT *b, BAT *s, BAT *bn, c
                                (TYPE *)Tloc(parent,0)+BUNfirst(parent)); \
                BBPunfix(parent->batCacheid);                           \
        } else {                                                        \
-               imprints= b->T->imprints;                               \
+               imprints = b->T->imprints;                              \
                basesrc = (const TYPE *) Tloc(b, BUNfirst(b));          \
        }                                                               \
        END;                                                            \
@@ -1846,6 +1850,11 @@ BATselect(BAT *b, BAT *s, const void *tl
                         *  ii) it is not an equi-select, and
                         * iii) is not var-sized.
                         */
+                       IDXACCESS fprintf(stderr,
+                                         "[%d] #BATselect: use imprints %s\n",
+                                         
VIEWtparent(b)?-VIEWtparent(b):b->batCacheid,
+                                         VIEWtparent(b)?BATgetId(b):"\b");
+
                        use_imprints = 1;
                }
                bn = BAT_scanselect(b, s, bn, tl, th, li, hi, equi, anti,
diff --git a/monetdb5/mal/mal.h b/monetdb5/mal/mal.h
--- a/monetdb5/mal/mal.h
+++ b/monetdb5/mal/mal.h
@@ -69,6 +69,7 @@ mal_export int have_hge;
 #define GRPtransactions (TMMASK | DELTAMASK | TEMMASK)
 #define GRPmodules (LOADMASK)
 #define GRPalgorithms (ALGOMASK | ESTIMASK)
+#define GRPindexes (IDXACCMASK)
 #define GRPperformance (JOINPROPMASK | DEADBEEFMASK)
 #define GRPoptimizers  (OPTMASK)
 #define GRPforcemito (FORCEMITOMASK)
@@ -97,7 +98,7 @@ mal_export void mserver_reset(void);
 #define LIST_INPUT      1       /* echo original input */
 #define LIST_MAL_NAME   2       /* show variable name */
 #define LIST_MAL_TYPE   4       /* show type resolutoin */
-#define LIST_MAL_VALUE  8              /* list bat tuple count */
+#define LIST_MAL_VALUE  8       /* list bat tuple count */
 #define LIST_MAL_PROPS 16       /* show variable properties */
 #define LIST_MAL_MAPI  32       /* output Mapi compatible output */
 #define LIST_MAL_REMOTE  64       /* output MAL for remote execution */
diff --git a/tools/mserver/mserver5.c b/tools/mserver/mserver5.c
--- a/tools/mserver/mserver5.c
+++ b/tools/mserver/mserver5.c
@@ -115,6 +115,7 @@ usage(char *prog, int xit)
        fprintf(stderr, "     --transactions\n");
        fprintf(stderr, "     --modules\n");
        fprintf(stderr, "     --algorithms\n");
+       fprintf(stderr, "     --indexes\n");
        fprintf(stderr, "     --performance\n");
        fprintf(stderr, "     --optimizers\n");
        fprintf(stderr, "     --trace\n");
@@ -271,6 +272,7 @@ main(int argc, char **av)
                { "trace", 2, 0, 't' },
                { "modules", 0, 0, 0 },
                { "algorithms", 0, 0, 0 },
+               { "indexes", 0, 0, 0 },
                { "optimizers", 0, 0, 0 },
                { "performance", 0, 0, 0 },
                { "forcemito", 0, 0, 0 },
@@ -380,6 +382,10 @@ main(int argc, char **av)
                                grpdebug |= GRPalgorithms;
                                break;
                        }
+                       if (strcmp(long_options[option_index].name, "indexes") 
== 0) {
+                               grpdebug |= GRPindexes;
+                               break;
+                       }
                        if (strcmp(long_options[option_index].name, 
"optimizers") == 0) {
                                grpdebug |= GRPoptimizers;
                                break;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to