Update of /cvsroot/monetdb/sql/src/storage/bpm
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv2179/src/storage/bpm
Modified Files:
bpm_storage.mx bpm_table.mx
Log Message:
more empty sharing (leak tests now use 1/3 less bats (ie from 300 to about
200)).
use BBPquickdesk to speed startup
Index: bpm_storage.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/storage/bpm/bpm_storage.mx,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- bpm_storage.mx 6 Nov 2007 15:23:17 -0000 1.1
+++ bpm_storage.mx 10 Nov 2007 21:47:29 -0000 1.2
@@ -108,11 +108,15 @@
temp_dup(u);
}
p -> parts[nr].cnt = BATcount(b);
- p -> parts[nr].hlow = p->parts[nr].hhgh = -1;
- if (BATcount(b)) {
- BATiter bi = bat_iterator(b);
- p -> parts[nr].hlow = *(oid*)BUNhead(bi,BUNfirst(b));
- p -> parts[nr].hhgh = *(oid*)BUNhead(bi,BUNlast(b)-1);
+ if (p->type == bpm_hrange) {
+ p -> parts[nr].hlow = p -> parts[nr].hhgh = -1;
+ if (nr)
+ p->parts[nr].hlow = p->parts[nr-1].hhgh;
+ BATseqbase(b, p->parts[nr].hlow);
+ if (BATcount(b)) {
+ BATiter bi = bat_iterator(b);
+ p -> parts[nr].hhgh = *(oid*)BUNhead(bi,BUNlast(b)-1);
+ }
}
p -> parts[nr].tlow = p -> parts[nr].thgh = NULL;
p -> parts[nr].hbits = p -> parts[nr].tbits = 0;
@@ -123,10 +127,7 @@
void
bpm_add_partition(sql_bpm *p)
{
- BAT *x = temp_descriptor(p->parts[p->nr-1].bid);
BAT *b = BATnew(TYPE_void, p->ttpe, 0);
- BATseqbase(b, x->hseqbase + BATcount(x));
- bat_destroy(x);
extend_part(p, b, 0);
bat_destroy(b);
}
@@ -583,11 +584,6 @@
int ubid = logger_find_bat(bpm_logger, uname);
b = temp_descriptor(bid);
- if (b->htype == TYPE_void) {
- BATseqbase(b, o);
- o += BATcount(b);
- }
-
extend_part(pp, b, ubid);
pp->parts[pp->nr-1].name = name;
pp->parts[pp->nr-1].uname = uname;
@@ -596,7 +592,6 @@
*cnt = o;
pp->ins = pp->nr;
b = BATnew(TYPE_void, ttpe, sz);
- BATseqbase(b, o);
extend_part(pp, b, 0);
bat_destroy(b);
bat_destroy(parts);
@@ -604,8 +599,8 @@
}
static sql_bpm *
-load_bat( char *sname, char *tname, char *bname, int type, int sz, lng *cnt ) {
- oid o = 0;
+load_bat( char *sname, char *tname, char *bname, int type, int sz, lng *cnt )
+{
BAT *b;
sql_bpm *p = ZNEW(sql_bpm);
@@ -618,12 +613,11 @@
b = temp_descriptor(logger_find_bat(bpm_logger, p->name));
extend_part(p, b, logger_find_bat(bpm_logger, p->uname));
- o = BATcount(b);
+ *cnt = p->parts[0].hhgh;
bat_destroy(b);
p->ins = p->nr;
b = bat_new(TYPE_void, type, sz);
- BATseqbase(b, o);
extend_part(p, b, 0);
bat_destroy(b);
@@ -814,13 +808,13 @@
}
} else {
BAT *b;
- oid o = 0;
if (p->sz < op->nr+1) {
p -> sz = op->nr+1;
p -> parts = RENEW_ARRAY(PartRec, p->parts, p->sz);
}
for (i=0; i < op->ins; i++) {
+ /* why don't we use extend parts */
p->parts[i] = op->parts[i];
temp_dup(p->parts[i].bid);
b = temp_descriptor(p->parts[i].bid);
@@ -833,8 +827,7 @@
op->parts[i].ubid = temp_copy(p->parts[i].ubid,
0);
bat_destroy(U);
}
- BATseqbase(b, o);
- o += BATcount(b);
+ BATseqbase(b, p->parts[i].hlow);
bat_destroy(b);
p->nr++;
}
@@ -860,8 +853,7 @@
bat_destroy(U);
}
}
- BATseqbase(b, o);
- o += BATcount(b);
+ BATseqbase(b, p->parts[i].hlow);
bat_destroy(b);
p->nr++;
}
@@ -869,7 +861,6 @@
if (op->ins == 0) {
op->ins = op->nr;
b = bat_new(TYPE_void, type, t->sz);
- BATseqbase(b, o);
extend_part(op, b, 0);
bat_destroy(b);
}
@@ -877,7 +868,6 @@
if (p->ins == 0) {
p->ins = p->nr;
b = bat_new(TYPE_void, type, t->sz);
- BATseqbase(b, o);
extend_part(p, b, 0);
bat_destroy(b);
}
@@ -1116,8 +1106,11 @@
bat_clear(ins);
}
bat_clear(pi);
- BATseqbase(ins,BATcount(cur));
- BATseqbase(pi,BATcount(cur));
+ op->parts[op->ins-1].hhgh = op->parts[op->ins].hlow =
+ cp->parts[cp->ins-1].hhgh = cp->parts[cp->ins].hlow =
+ BATcount(cur);
+ BATseqbase(ins, op->parts[op->ins].hlow);
+ BATseqbase(pi, cp->parts[cp->ins].hlow);
bat_destroy(pi);
}
BATcommit(ins);
Index: bpm_table.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/storage/bpm/bpm_table.mx,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- bpm_table.mx 6 Nov 2007 15:23:17 -0000 1.1
+++ bpm_table.mx 10 Nov 2007 21:47:30 -0000 1.2
@@ -173,28 +173,10 @@
static int
column_update_value(sql_trans *tr, sql_column *c, ssize_t rid, void *value)
{
- BAT *b;
- sql_bpm *p = c->data;
-
assert(rid != (ssize_t)oid_nil);
assert(rid != -1);
- if (p->parts[0].ubid) {
- b = temp_descriptor(p->parts[0].ubid);
- if (BUNfnd(b, &rid) != BUN_NONE) {
- BUNreplace(b, (ptr) &rid, value, TRUE);
- } else {
- bat_set_access(b, BAT_WRITE);
- BUNins(b, (ptr) &rid, value, FALSE);
- bat_set_access(b, BAT_READ);
- }
- bat_destroy(b);
- } else {
- b = temp_descriptor(p->parts[p->ins].bid);
- void_inplace(b, rid, value, TRUE);
- bat_destroy(b);
- }
- c->base.wtime = c->t->base.wtime = c->t->s->base.wtime = tr->wtime =
tr->stime;
+ store_funcs.update_col(tr, c, value, c->type.type->localtype, rid);
return 0;
}
@@ -203,25 +185,15 @@
{
va_list va;
node *n = cs_first_node(&t->columns);
- sql_column *c = n->data;
- sql_bpm *p = c->data;
- BAT *b = temp_descriptor(p->parts[p->ins].bid);
void *val = NULL;
int cnt = 0;
- bat_destroy(b);
va_start(va, t);
-
- c->base.wtime = tr->stime;
for (val = va_arg(va, void *); n && val; n = n->next, val = va_arg(va,
void *))
{
+ sql_column *c = n->data;
+ store_funcs.append_col(tr, c, val, c->type.type->localtype);
cnt++;
- c = n->data;
- p = c->data;
- b = temp_descriptor(p->parts[p->ins].bid);
- BUNappend(b, val, TRUE);
- bat_destroy(b);
- c->base.wtime = tr->stime;
}
t->cnt ++;
if (n) {
@@ -229,7 +201,6 @@
assert(0);
return -1;
}
- t->base.wtime = t->s->base.wtime = tr->wtime = tr->stime;
return 0;
}
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Monetdb-sql-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins