[prev in list] [next in list] [prev in thread] [next in thread]
List: monetdb-checkins
Subject: MonetDB: Oct2010 - more protection against potential division by...
From: Stefan Manegold <Stefan.Manegold () cwi ! nl>
Date: 2010-11-28 11:24:12
Message-ID: hg.1161f24990d1.1290943452.6315528441665844383 () localhost ! localdomain
[Download RAW message or body]
Changeset: 1161f24990d1 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1161f24990d1
Modified Files:
MonetDB/src/gdk/gdk_batop.mx
MonetDB/src/gdk/gdk_relop.mx
Branch: Oct2010
Log Message:
more protection against potential division by zero
in case GDKnr_threads is not properly initialized by GDKinit(),
e.g., in case of embedded servers (?);
see also bug 2701 at
http://bugs.monetdb.org/show_bug.cgi?id=2701
diffs (24 lines):
diff -r 3a52819b4635 -r 1161f24990d1 MonetDB/src/gdk/gdk_batop.mx
--- a/MonetDB/src/gdk/gdk_batop.mx Sun Nov 28 11:28:54 2010 +0100
+++ b/MonetDB/src/gdk/gdk_batop.mx Sun Nov 28 12:24:04 2010 +0100
@@ -1229,7 +1229,7 @@
&& b->batPersistence == PERSISTENT
&& (size_t) ATOMsize(b->ttype) > sizeof(BUN) / 4
&& estimate < batcnt / 100
- && batcnt * (ATOMsize(b->ttype) + 2 * sizeof(BUN)) < (GDK_mem_maxsize / 2) /* \
MT_npages() * MT_pagesize() / GDKnr_threads */ ) { + && batcnt * \
(ATOMsize(b->ttype) + 2 * sizeof(BUN)) < (GDK_mem_maxsize / 2) /* MT_npages() * \
MT_pagesize() / (GDKnr_threads ? GDKnr_threads : 1) */ ) { /* Build a hash-table on \
the fly for equi-select on persistent BAT
* if tail-type is large (wide) and selectivity is low and BAT + hash-table fit \
in memory */ ALGODEBUG THRprintf(GDKout, "#BAT_select_(b=%s): BAT_hashselect(b=%s, \
bn=%s, tl); (building hash-table on the fly)\n", BATgetId(b), BATgetId(b), \
BATgetId(bn));
diff -r 3a52819b4635 -r 1161f24990d1 MonetDB/src/gdk/gdk_relop.mx
--- a/MonetDB/src/gdk/gdk_relop.mx Sun Nov 28 11:28:54 2010 +0100
+++ b/MonetDB/src/gdk/gdk_relop.mx Sun Nov 28 12:24:04 2010 +0100
@@ -1267,7 +1267,7 @@
static BAT *
batjoin(BAT *l, BAT *r, BUN estimate, bit swap)
{
- size_t lsize, rsize, mem_size = MT_npages() * MT_pagesize() / GDKnr_threads;
+ size_t lsize, rsize, mem_size = MT_npages() * MT_pagesize() / (GDKnr_threads ? \
GDKnr_threads : 1); BUN i, lcount, rcount;
bit lfetch, rfetch, must_hash;
lng logr, logl;
_______________________________________________
Checkin-list mailing list
Checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic