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
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to