Changeset: 9fede45f6015 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9fede45f6015
Modified Files:
gdk/gdk_bat.c
gdk/gdk_bbp.c
gdk/gdk_heap.c
gdk/gdk_utils.c
monetdb5/modules/kernel/status.c
monetdb5/modules/mal/bbp.c
monetdb5/modules/mal/clients.c
monetdb5/modules/mal/inspect.c
monetdb5/modules/mal/mdb.c
Branch: Jul2017
Log Message:
Merge with Dec2016 branch.
diffs (297 lines):
diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -508,22 +508,19 @@ BATclear(BAT *b, int force)
/* we must dispose of all inserted atoms */
if (force && BATatoms[b->ttype].atomDel == NULL) {
- Heap th;
-
+ assert(b->tvheap == NULL || b->tvheap->parentid ==
b->batCacheid);
/* no stable elements: we do a quick heap clean */
/* need to clean heap which keeps data even though the
BUNs got removed. This means reinitialize when
free > 0
*/
- memset(&th, 0, sizeof(th));
- if (b->tvheap) {
+ if (b->tvheap && b->tvheap->free > 0) {
+ Heap th;
+
+ memset(&th, 0, sizeof(th));
th.farmid = b->tvheap->farmid;
- if (b->tvheap->free > 0 &&
- ATOMheap(b->ttype, &th, 0) != GDK_SUCCEED)
+ if (ATOMheap(b->ttype, &th, 0) != GDK_SUCCEED)
return GDK_FAIL;
- }
- assert(b->tvheap == NULL || b->tvheap->parentid ==
b->batCacheid);
- if (b->tvheap && b->tvheap->free > 0) {
th.parentid = b->tvheap->parentid;
HEAPfree(b->tvheap, 0);
*b->tvheap = th;
@@ -537,7 +534,7 @@ BATclear(BAT *b, int force)
if (tatmdel) {
BATiter bi = bat_iterator(b);
- for(p = b->batInserted, q = BUNlast(b); p < q; p++)
+ for (p = b->batInserted, q = BUNlast(b); p < q; p++)
(*tatmdel)(b->tvheap, (var_t*) BUNtloc(bi,p));
}
}
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -1466,7 +1466,7 @@ BBPexit(void)
skipped = 0;
for (i = 0; i < (bat) ATOMIC_GET(BBPsize, BBPsizeLock); i++) {
if (BBPvalid(i)) {
- BAT *b = BBP_cache(i);
+ BAT *b = BBP_desc(i);
if (b) {
if (b->batSharecnt > 0) {
@@ -1483,11 +1483,11 @@ BBPexit(void)
bat tp = VIEWtparent(b);
bat vtp = VIEWvtparent(b);
if (tp) {
-
BBP_cache(tp)->batSharecnt--;
+
BBP_desc(tp)->batSharecnt--;
--BBP_lrefs(tp);
}
if (vtp) {
-
BBP_cache(vtp)->batSharecnt--;
+
BBP_desc(vtp)->batSharecnt--;
--BBP_lrefs(vtp);
}
VIEWdestroy(b);
@@ -1811,42 +1811,57 @@ BBPdump(void)
continue;
fprintf(stderr,
"# %d[%s]: nme='%s' refs=%d lrefs=%d "
- "status=%d count=" BUNFMT " "
- "Theap=[" SZFMT "," SZFMT "] "
- "Tvheap=[" SZFMT "," SZFMT "] "
- "Thash=[" SZFMT "," SZFMT "]\n",
+ "status=%d count=" BUNFMT,
i,
ATOMname(b->ttype),
BBP_logical(i) ? BBP_logical(i) : "<NULL>",
BBP_refs(i),
BBP_lrefs(i),
BBP_status(i),
- b->batCount,
- HEAPmemsize(&b->theap),
- HEAPvmsize(&b->theap),
- HEAPmemsize(b->tvheap),
- HEAPvmsize(b->tvheap),
- b->thash && b->thash != (Hash *) -1 && b->thash !=
(Hash *) 1 ? HEAPmemsize(b->thash->heap) : 0,
- b->thash && b->thash != (Hash *) -1 && b->thash !=
(Hash *) 1 ? HEAPvmsize(b->thash->heap) : 0);
- if (BBP_logical(i) && BBP_logical(i)[0] == '.') {
- cmem += HEAPmemsize(&b->theap);
- cvm += HEAPvmsize(&b->theap);
- nc++;
+ b->batCount);
+ if (b->batSharecnt >0)
+ fprintf(stderr, " shares=%d", b->batSharecnt);
+ if (b->theap.parentid) {
+ fprintf(stderr, " Theap -> %d", b->theap.parentid);
} else {
- mem += HEAPmemsize(&b->theap);
- vm += HEAPvmsize(&b->theap);
- n++;
+ fprintf(stderr,
+ " Theap=[" SZFMT "," SZFMT "]",
+ HEAPmemsize(&b->theap),
+ HEAPvmsize(&b->theap));
+ if (BBP_logical(i) && BBP_logical(i)[0] == '.') {
+ cmem += HEAPmemsize(&b->theap);
+ cvm += HEAPvmsize(&b->theap);
+ nc++;
+ } else {
+ mem += HEAPmemsize(&b->theap);
+ vm += HEAPvmsize(&b->theap);
+ n++;
+ }
}
if (b->tvheap) {
- if (BBP_logical(i) && BBP_logical(i)[0] == '.') {
- cmem += HEAPmemsize(b->tvheap);
- cvm += HEAPvmsize(b->tvheap);
+ if (b->tvheap->parentid != b->batCacheid) {
+ fprintf(stderr,
+ " Tvheap -> %d",
+ b->tvheap->parentid);
} else {
- mem += HEAPmemsize(b->tvheap);
- vm += HEAPvmsize(b->tvheap);
+ fprintf(stderr,
+ " Tvheap=[" SZFMT "," SZFMT "]",
+ HEAPmemsize(b->tvheap),
+ HEAPvmsize(b->tvheap));
+ if (BBP_logical(i) && BBP_logical(i)[0] == '.')
{
+ cmem += HEAPmemsize(b->tvheap);
+ cvm += HEAPvmsize(b->tvheap);
+ } else {
+ mem += HEAPmemsize(b->tvheap);
+ vm += HEAPvmsize(b->tvheap);
+ }
}
}
- if (b->thash && b->thash != (Hash *) -1 && b->thash != (Hash *)
1) {
+ if (b->thash && b->thash != (Hash *) -1) {
+ fprintf(stderr,
+ " Thash=[" SZFMT "," SZFMT "]",
+ HEAPmemsize(b->thash->heap),
+ HEAPvmsize(b->thash->heap));
if (BBP_logical(i) && BBP_logical(i)[0] == '.') {
cmem += HEAPmemsize(b->thash->heap);
cvm += HEAPvmsize(b->thash->heap);
@@ -1855,6 +1870,7 @@ BBPdump(void)
vm += HEAPvmsize(b->thash->heap);
}
}
+ fprintf(stderr, "\n");
}
fprintf(stderr,
"# %d bats: mem=" SZFMT ", vm=" SZFMT " %d cached bats: mem="
SZFMT ", vm=" SZFMT "\n",
diff --git a/gdk/gdk_heap.c b/gdk/gdk_heap.c
--- a/gdk/gdk_heap.c
+++ b/gdk/gdk_heap.c
@@ -800,7 +800,7 @@ HEAPwarm(Heap *h)
size_t
HEAPvmsize(Heap *h)
{
- if (h && h->free)
+ if (h && h->base && h->free)
return h->size;
return 0;
}
@@ -810,7 +810,7 @@ HEAPvmsize(Heap *h)
size_t
HEAPmemsize(Heap *h)
{
- if (h && h->free && h->storage != STORE_MMAP)
+ if (h && h->base && h->free && h->storage != STORE_MMAP)
return h->size;
return 0;
}
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -138,8 +138,6 @@ GDKsetenv(const char *name, const char *
if (BUNappend(GDKkey, name, FALSE) != GDK_SUCCEED ||
BUNappend(GDKval, value, FALSE) != GDK_SUCCEED)
return GDK_FAIL;
- BATfakeCommit(GDKkey);
- BATfakeCommit(GDKval);
return GDK_SUCCEED;
}
@@ -516,6 +514,12 @@ GDKinit(opt *set, int setlen)
GDK_mem_maxsize = (size_t) ((double) MT_npages() * (double)
MT_pagesize() * 0.815);
BBPinit();
+ if (GDK_mem_maxsize / 16 < GDK_mmap_minsize_transient) {
+ GDK_mmap_minsize_transient = GDK_mem_maxsize / 16;
+ if (GDK_mmap_minsize_persistent > GDK_mmap_minsize_transient)
+ GDK_mmap_minsize_persistent =
GDK_mmap_minsize_transient;
+ }
+
n = (opt *) malloc(setlen * sizeof(opt));
for (i = 0; i < setlen; i++) {
int done = 0;
@@ -766,16 +770,18 @@ GDKreset(int status, int exit)
GDK_mmap_minsize_persistent = MMAP_MINSIZE_PERSISTENT;
GDK_mmap_minsize_transient = MMAP_MINSIZE_TRANSIENT;
GDK_mmap_pagesize = MMAP_PAGESIZE;
- GDK_mem_maxsize = GDK_VM_MAXSIZE;
+ GDK_mem_maxsize = (size_t) ((double) MT_npages() * (double)
MT_pagesize() * 0.815);
GDK_vm_maxsize = GDK_VM_MAXSIZE;
GDKatomcnt = TYPE_str + 1;
GDK_vm_trim = 1;
- GDK_mallocedbytes_estimate = 0;
- GDK_vm_cursize = 0;
- _MT_pagesize = 0;
- _MT_npages = 0;
+ if (GDK_mem_maxsize / 16 < GDK_mmap_minsize_transient) {
+ GDK_mmap_minsize_transient = GDK_mem_maxsize / 16;
+ if (GDK_mmap_minsize_persistent >
GDK_mmap_minsize_transient)
+ GDK_mmap_minsize_persistent =
GDK_mmap_minsize_transient;
+ }
+
GDKnr_threads = 0;
GDKnrofthreads = 0;
close_stream((stream *) THRdata[0]);
diff --git a/monetdb5/modules/kernel/status.c b/monetdb5/modules/kernel/status.c
--- a/monetdb5/modules/kernel/status.c
+++ b/monetdb5/modules/kernel/status.c
@@ -39,12 +39,6 @@
static int
pseudo(bat *ret, bat *ret2, BAT *bn, BAT *b) {
- if (BATmode(bn,TRANSIENT) != GDK_SUCCEED ||
- BATmode(b,TRANSIENT) != GDK_SUCCEED) {
- return -1;
- }
- BATfakeCommit(b);
- BATfakeCommit(bn);
*ret = bn->batCacheid;
BBPkeepref(*ret);
*ret2 = b->batCacheid;
diff --git a/monetdb5/modules/mal/bbp.c b/monetdb5/modules/mal/bbp.c
--- a/monetdb5/modules/mal/bbp.c
+++ b/monetdb5/modules/mal/bbp.c
@@ -24,11 +24,6 @@ pseudo(bat *ret, BAT *b, str X1,str X2)
return -1;
}
BATroles(b,X2);
- if (BATmode(b,TRANSIENT) != GDK_SUCCEED) {
- BBPunfix(b->batCacheid);
- return -1;
- }
- BATfakeCommit(b);
*ret = b->batCacheid;
BBPkeepref(*ret);
return -0;
diff --git a/monetdb5/modules/mal/clients.c b/monetdb5/modules/mal/clients.c
--- a/monetdb5/modules/mal/clients.c
+++ b/monetdb5/modules/mal/clients.c
@@ -34,9 +34,6 @@ pseudo(bat *ret, BAT *b, str X1,str X2)
if (BBPindex(buf) <= 0 && BBPrename(b->batCacheid, buf) != 0)
return -1;
BATroles(b,X2);
- if (BATmode(b,TRANSIENT) != GDK_SUCCEED)
- return -1;
- BATfakeCommit(b);
*ret = b->batCacheid;
BBPkeepref(*ret);
return 0;
diff --git a/monetdb5/modules/mal/inspect.c b/monetdb5/modules/mal/inspect.c
--- a/monetdb5/modules/mal/inspect.c
+++ b/monetdb5/modules/mal/inspect.c
@@ -29,9 +29,6 @@ pseudo(bat *ret, BAT *b, str X1,str X2,
if (BBPindex(buf) <= 0 && BBPrename(b->batCacheid, buf) != 0)
return -1;
BATroles(b,X2);
- if (BATmode(b,TRANSIENT) != GDK_SUCCEED)
- return -1;
- BATfakeCommit(b);
*ret = b->batCacheid;
BBPkeepref(*ret);
return 0;
diff --git a/monetdb5/modules/mal/mdb.c b/monetdb5/modules/mal/mdb.c
--- a/monetdb5/modules/mal/mdb.c
+++ b/monetdb5/modules/mal/mdb.c
@@ -53,9 +53,6 @@ pseudo(bat *ret, BAT *b, const char *X1,
if (BBPindex(buf) <= 0 && BBPrename(b->batCacheid, buf) != 0)
return -1;
BATroles(b,X2);
- if (BATmode(b, TRANSIENT) != GDK_SUCCEED)
- return -1;
- BATfakeCommit(b);
*ret = b->batCacheid;
BBPkeepref(*ret);
return 0;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list