mirror of
https://github.com/MariaDB/server.git
synced 2025-01-22 14:54:20 +01:00
Remove dead code for expunging fifos. Fixes #684.
git-svn-id: file:///svn/tokudb@3392 c7de825b-a66e-492c-adef-691d508d4ae1
This commit is contained in:
parent
2102667943
commit
a8a3471e43
5 changed files with 1 additions and 116 deletions
|
@ -62,7 +62,6 @@ REGRESSION_TESTS = \
|
|||
cachetable-test \
|
||||
cachetable-test2 \
|
||||
fifo-test \
|
||||
fifo-test-exp \
|
||||
list-test \
|
||||
log-test2 \
|
||||
log-test3 \
|
||||
|
@ -213,7 +212,7 @@ brt.o: $(BRT_INTERNAL_H_INCLUDES) key.h log_header.h
|
|||
fifo.o: fifo.h brttypes.h
|
||||
memory.o: memory.h
|
||||
primes.o: primes.h toku_assert.h
|
||||
fifo-test-exp fifo-test: fifo.o memory.o toku_assert.o ybt.o
|
||||
fifo-test: fifo.o memory.o toku_assert.o ybt.o
|
||||
brt-serialize.o: $(BRT_INTERNAL_H_INCLUDES) key.h wbuf.h rbuf.h
|
||||
brt-bigtest: memory.o ybt.o brt.o gpma.o cachetable.o key.o fifo.o brt-serialize.o
|
||||
brt-bigtest.o: brt.h brt-search.h ../include/db.h
|
||||
|
|
38
newbrt/brt.c
38
newbrt/brt.c
|
@ -3080,44 +3080,6 @@ int toku_brt_height_of_root(BRT brt, int *height) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct callpair {
|
||||
BRTNODE node;
|
||||
int childnum;
|
||||
};
|
||||
static int note_removal (bytevec key, ITEMLEN keylen, bytevec data, ITEMLEN datalen, int type, TXNID xid, void*cpairv) {
|
||||
struct callpair *cpair = cpairv;
|
||||
BRTNODE node = cpair->node;
|
||||
//printf("%s:%d Removed %s,%s fingerprint was %08x ", __FILE__, __LINE__, (char*)key, (char*)data, node->local_fingerprint);
|
||||
int childnum = cpair->childnum;
|
||||
u_int32_t old_fingerprint = node->local_fingerprint;
|
||||
u_int32_t diff = node->rand4fingerprint*toku_calccrc32_cmd(type, xid, key, keylen, data, datalen);
|
||||
node->local_fingerprint = old_fingerprint - diff;
|
||||
//printf("is %08x diff=%08x (addr=%p)\n", node->local_fingerprint, diff, &node->local_fingerprint);
|
||||
u_int32_t countdiff = keylen+datalen+KEY_VALUE_OVERHEAD+BRT_CMD_OVERHEAD;
|
||||
BNC_NBYTESINBUF(node,childnum) -= countdiff;
|
||||
node->u.n.n_bytes_in_buffers -= countdiff;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int toku_brt_nonleaf_expunge_xaction(BRT brt, DISKOFF diskoff, TXNID xid) {
|
||||
void *node_v;
|
||||
int r = toku_cachetable_get_and_pin(brt->cf, diskoff, &node_v, NULL, toku_brtnode_flush_callback, toku_brtnode_fetch_callback, brt);
|
||||
assert(r==0);
|
||||
if (r!=0) return r;
|
||||
BRTNODE node = node_v;
|
||||
verify_local_fingerprint_nonleaf(node);
|
||||
//printf("%s:%d node->local_fingerprint=%08x\n", __FILE__, __LINE__, node->local_fingerprint);
|
||||
int i;
|
||||
r=0;
|
||||
for (i=0; i<node->u.n.n_children; i++) {
|
||||
struct callpair pair = { node, i };
|
||||
int r3 = toku_fifo_expunge_xaction(BNC_BUFFER(node, i), xid, note_removal, &pair);
|
||||
if (r==0) r=r3;
|
||||
}
|
||||
int r2 = toku_cachetable_unpin(brt->cf, diskoff, 1, toku_serialize_brtnode_size(node));
|
||||
return r ? r : r2;
|
||||
}
|
||||
|
||||
int toku_gpma_compress_kvspace (GPMA pma, struct mempool *memp);
|
||||
void *mempool_malloc_from_gpma(GPMA pma, struct mempool *mp, size_t size);
|
||||
|
||||
|
|
|
@ -66,9 +66,6 @@ int toku_brt_get_fd(BRT, int *);
|
|||
|
||||
int toku_brt_height_of_root(BRT, int *height); // for an open brt, return the current height.
|
||||
|
||||
// Special hack for recovery
|
||||
int toku_brt_nonleaf_expunge_xaction(BRT brt, DISKOFF diskoff, TXNID xid);
|
||||
|
||||
enum brt_header_flags {
|
||||
TOKU_DB_DUP = 1,
|
||||
TOKU_DB_DUPSORT = 2,
|
||||
|
|
|
@ -1,71 +0,0 @@
|
|||
/* Test the expunge method. */
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "fifo.h"
|
||||
#include "memory.h"
|
||||
|
||||
int count;
|
||||
int callback (bytevec key, ITEMLEN keylen, bytevec data, ITEMLEN datalen, int type, TXNID xid, void *v) {
|
||||
TXNID which=(long)v;
|
||||
assert(xid==which);
|
||||
int actual_row = count;
|
||||
assert(strlen(key)+1==keylen);
|
||||
assert(strlen(data)+1==datalen);
|
||||
//printf("count=%d which=%ld deleting %s %s\n", count, (long)which, (char*)key, (char*)data);
|
||||
switch (which) {
|
||||
case 23: break;
|
||||
case 24: actual_row++; break;
|
||||
case 26: actual_row+=3;
|
||||
}
|
||||
switch (actual_row) {
|
||||
case 0: assert(strcmp(key, "hello")==0); assert(strcmp(data, "thera")==0); assert(xid==23); assert(type==0); break;
|
||||
case 1: assert(strcmp(key, "hello")==0); assert(strcmp(data, "therb")==0); assert(xid==24); assert(type==0); break;
|
||||
case 2: assert(strcmp(key, "hell1")==0); assert(strcmp(data, "therc")==0); assert(xid==24); assert(type==1); break;
|
||||
case 3: assert(strcmp(key, "hell1")==0); assert(strcmp(data, "therd")==0); assert(xid==26); assert(type==1); break;
|
||||
default: assert(0);
|
||||
}
|
||||
count++;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void doit (int which) {
|
||||
int r;
|
||||
FIFO f;
|
||||
r = toku_fifo_create(&f); assert(r==0);
|
||||
r = toku_fifo_enq(f, "hello", 6, "thera", 6, 0, 23); assert(r==0);
|
||||
r = toku_fifo_enq(f, "hello", 6, "therb", 6, 0, 24); assert(r==0);
|
||||
r = toku_fifo_enq(f, "hell1", 6, "therc", 6, 1, 24); assert(r==0);
|
||||
r = toku_fifo_enq(f, "hell1", 6, "therd", 6, 1, 26); assert(r==0);
|
||||
int i=0;
|
||||
FIFO_ITERATE(f, k, kl, d, dl, t, x,
|
||||
({
|
||||
assert(strlen(k)+1==kl);
|
||||
assert(strlen(d)+1==dl);
|
||||
switch(i) {
|
||||
case 0: assert(strcmp(k, "hello")==0); assert(strcmp(d, "thera")==0); assert(x==23); assert(t==0); i++; break;
|
||||
case 1: assert(strcmp(k, "hello")==0); assert(strcmp(d, "therb")==0); assert(x==24); assert(t==0); i++; break;
|
||||
case 2: assert(strcmp(k, "hell1")==0); assert(strcmp(d, "therc")==0); assert(x==24); assert(t==1); i++; break;
|
||||
case 3: assert(strcmp(k, "hell1")==0); assert(strcmp(d, "therd")==0); assert(x==26); assert(t==1); i++; break;
|
||||
default: assert(0);
|
||||
}
|
||||
}));
|
||||
count=0;
|
||||
r = toku_fifo_expunge_xaction(f, which, callback, (void*)(long)which);
|
||||
switch (which) {
|
||||
case 23: assert(count==1); break;
|
||||
case 24: assert(count==2); break;
|
||||
case 26: assert(count==1); break;
|
||||
}
|
||||
toku_fifo_free(&f);
|
||||
toku_malloc_cleanup();
|
||||
}
|
||||
|
||||
int main (int argc __attribute__((__unused__)), char *argv[] __attribute__((__unused__))) {
|
||||
doit(23);
|
||||
doit(24);
|
||||
doit(26);
|
||||
doit(27);
|
||||
return 0;
|
||||
}
|
|
@ -44,6 +44,4 @@ void toku_fifo_iterate (FIFO, void(*f)(bytevec key,ITEMLEN keylen,bytevec data,I
|
|||
} \
|
||||
})
|
||||
|
||||
int toku_fifo_expunge_xaction(FIFO fifo, TXNID xid, int (*callback_on_delete)(bytevec key, ITEMLEN keylen, bytevec data, ITEMLEN datalen, int type, TXNID xid, void*), void*arg);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue