Changeset: 6e7b837f8d47 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6e7b837f8d47
Modified Files:
        gdk/gdk_join.c
Branch: leftmart
Log Message:

do not use bloom filters with the new fnv hash function.

This is to be bale to do experiments with one change at a time.


diffs (71 lines):

diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -2546,7 +2546,7 @@ mergejoin(BAT *r1, BAT *r2, BAT *l, BAT 
 }
 
 /* binary search in a candidate list, return 1 if found, 0 if not */
-inline int
+static inline int
 binsearchcand(const oid *cand, BUN lo, BUN hi, oid v)
 {
        BUN mid;
@@ -2606,18 +2606,13 @@ binsearchcand(const oid *cand, BUN lo, B
 #define HASHJOIN(TYPE, WIDTH)                                          \
        do {                                                            \
                BUN hashnil = HASHnil(hsh);                             \
-               BUN yes = 0, no = 0, false_positive = 0;                \
                for (lo = lstart - BUNfirst(l) + l->hseqbase;           \
                     lstart < lend;                                     \
                     lo++) {                                            \
-                       int ask;                                        \
                        v = FVALUE(l, lstart);                          \
                        lstart++;                                       \
                        nr = 0;                                         \
-                       ask = BLOOMask((BUN) (*(TYPE*)v), r->T->bloom); \
-                       no++;                                           \
-                       if (*(const TYPE*)v != TYPE##_nil && ask) {     \
-                               yes++; no--;                            \
+                       if (*(const TYPE*)v != TYPE##_nil) {            \
                                for (rb = HASHget##WIDTH(hsh, hash_##TYPE(hsh, 
v)); \
                                     rb != hashnil;                     \
                                     rb = HASHgetlink##WIDTH(hsh, rb))  \
@@ -2628,7 +2623,6 @@ binsearchcand(const oid *cand, BUN lo, B
                                        }                               \
                        }                                               \
                        if (nr == 0) {                                  \
-                               if (ask) false_positive++;              \
                                lskipped = BATcount(r1) > 0;            \
                        } else {                                        \
                                if (lskipped) {                         \
@@ -2642,11 +2636,6 @@ binsearchcand(const oid *cand, BUN lo, B
                                        r1->trevsorted = 0;             \
                        }                                               \
                }                                                       \
-               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, \
-                               yes, no, lo, false_positive );          \
        } while (0)
 
 static gdk_return
@@ -2778,18 +2767,6 @@ hashjoin(BAT *r1, BAT *r2, BAT *l, BAT *
        hsh = r->T->hash;
        t = ATOMbasetype(r->ttype);
 
-       /* check for bloom filter on right */
-       if (!BATcheckbloom(r)) {
-               BATbloom(r);
-               ALGODEBUG
-                       fprintf(stderr,"#hashjoin(b=%s#" BUNFMT ") %s: bloom 
filter not found, created.\n",
-                               BATgetId(r), BATcount(r), r->T->heap.filename);
-       } else {
-               ALGODEBUG
-                       fprintf(stderr,"#hashjoin(b=%s#" BUNFMT ") %s: bloom 
filter found.\n",
-                               BATgetId(r), BATcount(r), r->T->heap.filename);
-       }
-
        if (lcand == NULL && rcand == NULL && lvars == NULL &&
            !nil_matches && !nil_on_miss && !semi && !only_misses &&
            l->ttype != TYPE_void && (t == TYPE_int || t == TYPE_lng)) {
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to