Changeset: 67eabc1d5d12 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=67eabc1d5d12
Removed Files:
sql/test/BugTracker-2016/Tests/querylog.stable.err
sql/test/BugTracker-2016/Tests/querylog.stable.out
Modified Files:
clients/Tests/exports.stable.out
configure.ag
gdk/gdk.h
gdk/gdk_bbp.c
gdk/gdk_hash.c
gdk/gdk_imprints.c
gdk/gdk_orderidx.c
gdk/gdk_storage.c
gdk/gdk_system.c
gdk/gdk_system.h
gdk/gdk_utils.c
monetdb5/mal/mal_client.c
monetdb5/mal/mal_client.h
monetdb5/mal/mal_dataflow.c
monetdb5/mal/mal_private.h
monetdb5/modules/mal/mal_mapi.c
monetdb5/modules/mal/tablet.c
sql/test/BugTracker-2016/Tests/All
Branch: default
Log Message:
Merge with Apr2019 branch.
diffs (truncated from 1097 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
@@ -317,7 +317,6 @@ void *MT_thread_getdata(void);
const char *MT_thread_getname(void);
bool MT_thread_init(void);
void MT_thread_setdata(void *data);
-void MT_thread_setname(const char *name);
void OIDXdestroy(BAT *b);
ssize_t OIDfromStr(const char *src, size_t *len, oid **dst, bool external);
ssize_t OIDtoStr(str *dst, size_t *len, const oid *src, bool external);
diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -2375,6 +2375,7 @@ AC_HEADER_STDBOOL
# NOTE: these header files are in alphabetical order to ease maintenance
AC_CHECK_HEADERS([ \
dirent.h \
+ dispatch/dispatch.h \
dlfcn.h \
execinfo.h \
fcntl.h \
@@ -2563,6 +2564,7 @@ AC_CHECK_FUNCS([\
cbrt \
clock_gettime \
ctime_r \
+ dispatch_semaphore_create \
fallocate \
fcntl \
fsync \
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -360,6 +360,7 @@
*/
#define THRDMASK (1)
+#define THRDDEBUG if (GDKdebug & THRDMASK)
#define CHECKMASK (1<<1)
#define CHECKDEBUG if (GDKdebug & CHECKMASK)
#define MEMMASK (1<<2)
@@ -405,6 +406,8 @@
#define ?ddbench? if (GDKdebug&(1<<19))
#define ?ddbench? if (GDKdebug&(1<<20))
*/
+#define ACCELMASK (1<<20)
+#define ACCELDEBUG if (GDKdebug & (ACCELMASK|ALGOMASK))
#define ALGOMASK (1<<21)
#define ALGODEBUG if (GDKdebug & ALGOMASK)
#define ESTIMASK (1<<22)
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -1479,8 +1479,7 @@ BBPdir_subcommit(int cnt, bat *subcommit
if (n < (bat) ATOMIC_GET(BBPsize, BBPsizeLock))
n = (bat) ATOMIC_GET(BBPsize, BBPsizeLock);
- if (GDKdebug & (IOMASK | THRDMASK))
- fprintf(stderr, "#BBPdir: writing BBP.dir (%d bats).\n", n);
+ IODEBUG fprintf(stderr, "#BBPdir: writing BBP.dir (%d bats).\n", n);
if (BBPdir_header(nbbpf, n) != GDK_SUCCEED) {
goto bailout;
@@ -1567,8 +1566,7 @@ BBPdir(int cnt, bat *subcommit)
if (subcommit)
return BBPdir_subcommit(cnt, subcommit);
- if (GDKdebug & (IOMASK | THRDMASK))
- fprintf(stderr, "#BBPdir: writing BBP.dir (%d bats).\n", (int)
(bat) ATOMIC_GET(BBPsize, BBPsizeLock));
+ IODEBUG fprintf(stderr, "#BBPdir: writing BBP.dir (%d bats).\n", (int)
(bat) ATOMIC_GET(BBPsize, BBPsizeLock));
if ((fp = GDKfilelocate(0, "BBP", "w", "dir")) == NULL) {
goto bailout;
}
diff --git a/gdk/gdk_hash.c b/gdk/gdk_hash.c
--- a/gdk/gdk_hash.c
+++ b/gdk/gdk_hash.c
@@ -128,7 +128,7 @@ HASHnew(Hash *h, int tpe, BUN size, BUN
((size_t *) h->heap.base)[3] = width;
((size_t *) h->heap.base)[4] = count;
((size_t *) h->heap.base)[5] = 0; /* # filled slots (chain heads) */
- ALGODEBUG fprintf(stderr, "#HASHnew: create hash(size " BUNFMT ", mask
" BUNFMT ", width %d, nil " BUNFMT ", total " BUNFMT " bytes);\n", size, mask,
width, h->nil, (size + mask) * width);
+ ACCELDEBUG fprintf(stderr, "#HASHnew: create hash(size " BUNFMT ", mask
" BUNFMT ", width %d, total " BUNFMT " bytes);\n", size, mask, width, (size +
mask) * width);
return GDK_SUCCEED;
}
@@ -170,9 +170,9 @@ BATcheckhash(BAT *b)
bool ret;
lng t = 0;
- ALGODEBUG t = GDKusec();
+ ACCELDEBUG t = GDKusec();
MT_lock_set(&GDKhashLock(b->batCacheid));
- ALGODEBUG t = GDKusec() - t;
+ ACCELDEBUG t = GDKusec() - t;
if (b->thash == (Hash *) 1) {
Hash *h;
const char *nme = BBP_physical(b->batCacheid);
@@ -223,7 +223,7 @@ BATcheckhash(BAT *b)
h->heap.parentid = b->batCacheid;
h->heap.dirty = false;
b->thash = h;
- ALGODEBUG fprintf(stderr,
"#BATcheckhash: reusing persisted hash %s\n", BATgetId(b));
+ ACCELDEBUG fprintf(stderr,
"#BATcheckhash: reusing persisted hash %s\n", BATgetId(b));
MT_lock_unset(&GDKhashLock(b->batCacheid));
return true;
}
@@ -237,7 +237,7 @@ BATcheckhash(BAT *b)
}
ret = b->thash != NULL;
MT_lock_unset(&GDKhashLock(b->batCacheid));
- ALGODEBUG if (ret) fprintf(stderr, "#BATcheckhash: already has hash %s,
waited " LLFMT " usec\n", BATgetId(b), t);
+ ACCELDEBUG if (ret) fprintf(stderr, "#BATcheckhash: already has hash
%s, waited " LLFMT " usec\n", BATgetId(b), t);
return ret;
}
@@ -250,7 +250,7 @@ BAThashsync(void *arg)
lng t0 = 0;
const char *failed = " failed";
- ALGODEBUG t0 = GDKusec();
+ ACCELDEBUG t0 = GDKusec();
MT_lock_set(&GDKhashLock(b->batCacheid));
if (b->thash != NULL) {
@@ -286,7 +286,7 @@ BAThashsync(void *arg)
failed = ""; /* not failed */
}
}
- ALGODEBUG fprintf(stderr, "#BAThash: persisting hash %s
(" LLFMT " usec)%s\n", hp->filename, GDKusec() - t0, failed);
+ ACCELDEBUG fprintf(stderr, "#BAThash: persisting hash
%s (" LLFMT " usec)%s\n", hp->filename, GDKusec() - t0, failed);
}
}
MT_lock_unset(&GDKhashLock(b->batCacheid));
@@ -367,16 +367,16 @@ BAThash_impl(BAT *b, BAT *s, const char
const char *nme = BBP_physical(b->batCacheid);
BATiter bi = bat_iterator(b);
- ALGODEBUG t0 = GDKusec();
- ALGODEBUG fprintf(stderr, "#BAThash: create hash(" ALGOBATFMT ");\n",
+ ACCELDEBUG t0 = GDKusec();
+ ACCELDEBUG fprintf(stderr, "#BAThash: create hash(" ALGOBATFMT ");\n",
ALGOBATPAR(b));
if (b->ttype == TYPE_void) {
if (is_oid_nil(b->tseqbase)) {
- ALGODEBUG fprintf(stderr, "#BAThash: cannot create
hash-table on void-NIL column.\n");
+ ACCELDEBUG fprintf(stderr, "#BAThash: cannot create
hash-table on void-NIL column.\n");
GDKerror("BAThash: no hash on void/nil column\n");
return NULL;
}
- ALGODEBUG fprintf(stderr, "#BAThash: creating hash-table on
void column..\n");
+ ACCELDEBUG fprintf(stderr, "#BAThash: creating hash-table on
void column..\n");
tpe = TYPE_void;
}
@@ -489,7 +489,7 @@ BAThash_impl(BAT *b, BAT *s, const char
}
break;
}
- ALGODEBUG if (p < cnt1)
+ ACCELDEBUG if (p < cnt1)
fprintf(stderr, "#BAThash(%s): abort starthash with "
"mask " BUNFMT " at " BUNFMT "\n", BATgetId(b),
mask, p);
@@ -561,7 +561,7 @@ BAThash_impl(BAT *b, BAT *s, const char
b->tkey = true;
b->batDirtydesc = true;
}
- ALGODEBUG {
+ ACCELDEBUG {
fprintf(stderr, "#BAThash: hash construction " LLFMT " usec\n",
GDKusec() - t0);
HASHcollisions(b, h);
}
@@ -585,14 +585,16 @@ BAThash(BAT *b)
if (BBP_status(b->batCacheid) & BBPEXISTING && !b->theap.dirty)
{
MT_Id tid;
BBPfix(b->batCacheid);
+ char name[16];
+ snprintf(name, sizeof(name), "hashsync%d",
b->batCacheid);
if (MT_create_thread(&tid, BAThashsync, b,
MT_THR_DETACHED,
- "BAThashsync") < 0) {
+ name) < 0) {
/* couldn't start thread: clean up */
BBPunfix(b->batCacheid);
}
} else
- ALGODEBUG fprintf(stderr, "#BAThash: NOT persisting
hash %d\n", b->batCacheid);
+ ACCELDEBUG fprintf(stderr, "#BAThash: NOT persisting
hash %d\n", b->batCacheid);
#endif
}
MT_lock_unset(&GDKhashLock(b->batCacheid));
@@ -663,7 +665,7 @@ HASHdestroy(BAT *b)
hp = BBP_cache(p);
if (!hp || hs != hp->thash) {
- ALGODEBUG if (*(size_t *) hs->heap.base & (1 <<
24))
+ ACCELDEBUG if (*(size_t *) hs->heap.base & (1
<< 24))
fprintf(stderr, "#HASHdestroy: removing
persisted hash %d\n", b->batCacheid);
HEAPfree(&hs->heap, true);
GDKfree(hs);
diff --git a/gdk/gdk_imprints.c b/gdk/gdk_imprints.c
--- a/gdk/gdk_imprints.c
+++ b/gdk/gdk_imprints.c
@@ -247,7 +247,7 @@ BATcheckimprints(BAT *b)
close(fd);
imprints->imprints.parentid =
b->batCacheid;
b->timprints = imprints;
- ALGODEBUG fprintf(stderr,
"#BATcheckimprints(" ALGOBATFMT "): reusing persisted imprints\n",
ALGOBATPAR(b));
+ ACCELDEBUG fprintf(stderr,
"#BATcheckimprints(" ALGOBATFMT "): reusing persisted imprints\n",
ALGOBATPAR(b));
MT_lock_unset(&GDKimprintsLock(b->batCacheid));
return true;
@@ -262,7 +262,7 @@ BATcheckimprints(BAT *b)
}
ret = b->timprints != NULL;
MT_lock_unset(&GDKimprintsLock(b->batCacheid));
- ALGODEBUG if (ret) fprintf(stderr, "#BATcheckimprints(" ALGOBATFMT "):
already has imprints\n", ALGOBATPAR(b));
+ ACCELDEBUG if (ret) fprintf(stderr, "#BATcheckimprints(" ALGOBATFMT "):
already has imprints\n", ALGOBATPAR(b));
return ret;
}
@@ -275,7 +275,7 @@ BATimpsync(void *arg)
lng t0 = 0;
const char *failed = " failed";
- ALGODEBUG t0 = GDKusec();
+ ACCELDEBUG t0 = GDKusec();
MT_lock_set(&GDKimprintsLock(b->batCacheid));
if ((imprints = b->timprints) != NULL) {
@@ -319,7 +319,7 @@ BATimpsync(void *arg)
failed = ""; /* not failed */
}
}
- ALGODEBUG fprintf(stderr, "#BATimpsync(" ALGOBATFMT "):
"
+ ACCELDEBUG fprintf(stderr, "#BATimpsync(" ALGOBATFMT
"): "
"imprints persisted "
"(" LLFMT " usec)%s\n", ALGOBATPAR(b),
GDKusec() - t0, failed);
@@ -363,7 +363,7 @@ BATimprints(BAT *b)
if (VIEWtparent(b)) {
/* views always keep null pointer and need to obtain
* the latest imprint from the parent at query time */
- s2 = b; /* remember for ALGODEBUG print */
+ s2 = b; /* remember for ACCELDEBUG print */
b = BBPdescriptor(VIEWtparent(b));
assert(b);
if (BATcheckimprints(b))
@@ -371,13 +371,13 @@ BATimprints(BAT *b)
assert(b->timprints == NULL);
}
MT_lock_set(&GDKimprintsLock(b->batCacheid));
- ALGODEBUG t0 = GDKusec();
+ ACCELDEBUG t0 = GDKusec();
if (b->timprints == NULL) {
BUN cnt;
const char *nme = BBP_physical(b->batCacheid);
size_t pages;
- ALGODEBUG {
+ ACCELDEBUG {
if (s2)
fprintf(stderr, "#BATimprints(b=" ALGOBATFMT
"): creating imprints on parent "
@@ -528,13 +528,15 @@ BATimprints(BAT *b)
!b->theap.dirty) {
MT_Id tid;
BBPfix(b->batCacheid);
+ char name[16];
+ snprintf(name, sizeof(name), "impssync%d",
b->batCacheid);
if (MT_create_thread(&tid, BATimpsync, b,
- MT_THR_DETACHED, "BATimpsync") < 0)
+ MT_THR_DETACHED, name) < 0)
BBPunfix(b->batCacheid);
}
}
- ALGODEBUG fprintf(stderr, "#BATimprints(%s): imprints construction "
LLFMT " usec\n", BATgetId(b), GDKusec() - t0);
+ ACCELDEBUG fprintf(stderr, "#BATimprints(%s): imprints construction "
LLFMT " usec\n", BATgetId(b), GDKusec() - t0);
MT_lock_unset(&GDKimprintsLock(b->batCacheid));
/* BBPUnfix tries to get the imprints lock which might lead to
diff --git a/gdk/gdk_orderidx.c b/gdk/gdk_orderidx.c
--- a/gdk/gdk_orderidx.c
+++ b/gdk/gdk_orderidx.c
@@ -22,7 +22,7 @@ BATidxsync(void *arg)
lng t0 = 0;
const char *failed = " failed";
- ALGODEBUG t0 = GDKusec();
+ ACCELDEBUG t0 = GDKusec();
MT_lock_set(&GDKhashLock(b->batCacheid));
if ((hp = b->torderidx) != NULL) {
@@ -57,7 +57,7 @@ BATidxsync(void *arg)
failed = ""; /* not failed */
}
}
- ALGODEBUG fprintf(stderr, "#BATidxsync(%s): orderidx
persisted"
+ ACCELDEBUG fprintf(stderr, "#BATidxsync(%s): orderidx
persisted"
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list