summaryrefslogtreecommitdiff
path: root/storage/tokudb/PerconaFT/ft/tests
diff options
context:
space:
mode:
Diffstat (limited to 'storage/tokudb/PerconaFT/ft/tests')
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-4357.cc4
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-4365.cc4
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-5097.cc6
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-5978-2.cc7
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-5978.cc13
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-all-write.cc5
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-checkpoint-pending.cc8
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-checkpoint-pinned-nodes.cc6
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-checkpoint.cc5
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-checkpoint2.cc5
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-attrs-accumulate.cc8
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-everything-pinned.cc5
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-nothing-needs-flushing.cc5
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-same-fullhash.cc7
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-simple.cc7
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-clock-eviction.cc9
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-clock-eviction2.cc9
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-clock-eviction3.cc9
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-clock-eviction4.cc9
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-clone-checkpoint.cc5
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-clone-partial-fetch-pinned-node.cc7
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-clone-partial-fetch.cc7
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-clone-pin-nonblocking.cc7
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-clone-unpin-remove.cc5
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-eviction-close-test.cc4
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-eviction-close-test2.cc4
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-eviction-getandpin-test.cc14
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-eviction-getandpin-test2.cc12
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-fetch-inducing-evictor.cc15
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-flush-during-cleaner.cc3
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-getandpin-test.cc8
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-kibbutz_and_flush_cachefile.cc3
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-partial-fetch.cc18
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-pin-checkpoint.cc6
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-pin-nonblocking-checkpoint-clean.cc9
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-prefetch-close-test.cc2
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-prefetch-getandpin-test.cc12
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-put-checkpoint.cc9
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-simple-clone.cc7
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-simple-clone2.cc5
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-simple-close.cc20
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-simple-maybe-get-pin.cc3
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin-cheap.cc9
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin-dep-nodes.cc8
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin-nonblocking-cheap.cc19
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin-nonblocking.cc13
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin.cc11
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-simple-put-dep-nodes.cc6
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-simple-read-pin-nonblocking.cc13
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-simple-read-pin.cc13
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-simple-unpin-remove-checkpoint.cc7
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-simple-verify.cc5
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-test.cc22
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-unpin-and-remove-test.cc4
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-unpin-remove-and-checkpoint.cc6
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/cachetable-unpin-test.cc2
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/test-TDB2-pe.cc178
-rw-r--r--storage/tokudb/PerconaFT/ft/tests/test-TDB89.cc208
58 files changed, 551 insertions, 289 deletions
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-4357.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-4357.cc
index 0af5c8185a9..dd76b7fbc08 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-4357.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-4357.cc
@@ -42,13 +42,11 @@ CACHEFILE f1;
static void *pin_nonblocking(void *arg) {
void* v1;
- long s1;
int r = toku_cachetable_get_and_pin_nonblocking(
f1,
make_blocknum(1),
toku_cachetable_hash(f1, make_blocknum(1)),
&v1,
- &s1,
def_write_callback(NULL), def_fetch, def_pf_req_callback, def_pf_callback,
PL_WRITE_EXPENSIVE,
NULL,
@@ -70,12 +68,10 @@ cachetable_test (void) {
r = toku_cachetable_openf(&f1, ct, fname1, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
void* v1;
- long s1;
r = toku_cachetable_get_and_pin(f1,
make_blocknum(1),
toku_cachetable_hash(f1, make_blocknum(1)),
&v1,
- &s1,
def_write_callback(NULL),
def_fetch,
def_pf_req_callback,
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-4365.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-4365.cc
index 7bee0b80770..75b6eb3fcea 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-4365.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-4365.cc
@@ -42,13 +42,11 @@ CACHEFILE f1;
static void *pin_nonblocking(void *arg) {
void* v1;
- long s1;
int r = toku_cachetable_get_and_pin_nonblocking(
f1,
make_blocknum(1),
toku_cachetable_hash(f1, make_blocknum(1)),
&v1,
- &s1,
def_write_callback(NULL), def_fetch, def_pf_req_callback, def_pf_callback,
PL_WRITE_EXPENSIVE,
NULL,
@@ -92,12 +90,10 @@ cachetable_test (void) {
r = toku_cachetable_openf(&f1, ct, fname1, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
void* v1;
- long s1;
r = toku_cachetable_get_and_pin(f1,
make_blocknum(1),
toku_cachetable_hash(f1, make_blocknum(1)),
&v1,
- &s1,
def_write_callback(nullptr),
def_fetch,
def_pf_req_callback,
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-5097.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-5097.cc
index 5ab0df88e08..b9c299eb762 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-5097.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-5097.cc
@@ -88,7 +88,6 @@ flush (CACHEFILE f __attribute__((__unused__)),
static void *f2_pin(void *arg) {
int r;
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
//
// these booleans for pe_callback just ensure that the
@@ -98,7 +97,7 @@ static void *f2_pin(void *arg) {
// This is just to ensure that the bug is being exercised
//
check_pe_callback = true;
- r = toku_cachetable_get_and_pin(f2, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f2, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
assert(r == 0);
ct->ev.signal_eviction_thread();
usleep(1*1024*1024);
@@ -141,13 +140,12 @@ cachetable_test (void) {
assert(r == 0);
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.pe_callback = pe_callback;
wc.flush_callback = flush;
// pin and unpin a node 20 times, just to get clock count up
for (int i = 0; i < 20; i++) {
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
assert(r == 0);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_DIRTY, make_pair_attr(8));
assert(r == 0);
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-5978-2.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-5978-2.cc
index 0b5110ddd99..183c2c8bc44 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-5978-2.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-5978-2.cc
@@ -131,13 +131,11 @@ static void *repin_one(void *UU(arg)) {
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
struct unlockers unlockers = {true, unpin_two, NULL, NULL};
void* v1;
- long s1;
int r = toku_cachetable_get_and_pin_nonblocking(
f1,
make_blocknum(1),
1,
&v1,
- &s1,
wc,
def_fetch,
def_pf_req_callback,
@@ -164,13 +162,12 @@ cachetable_test (void) {
r = toku_cachetable_openf(&f1, ct, fname1, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
// bring pairs 1 and 2 into memory, then unpin
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, fetch_one, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, fetch_one, def_pf_req_callback, def_pf_callback, true, NULL);
assert_zero(r);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v1, &s1, wc, fetch_two, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v1, wc, fetch_two, def_pf_req_callback, def_pf_callback, true, NULL);
assert_zero(r);
toku_pthread_t tid1;
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-5978.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-5978.cc
index a4ff6c33e6a..c8a6f366ce3 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-5978.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-5978.cc
@@ -125,13 +125,11 @@ static void *repin_one(void *UU(arg)) {
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
struct unlockers unlockers = {true, unpin_four, NULL, NULL};
void* v1;
- long s1;
int r = toku_cachetable_get_and_pin_nonblocking(
f1,
make_blocknum(1),
1,
&v1,
- &s1,
wc,
def_fetch,
def_pf_req_callback,
@@ -149,13 +147,11 @@ static void *repin_two(void *UU(arg)) {
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
struct unlockers unlockers = {true, unpin_three, NULL, NULL};
void* v1;
- long s1;
int r = toku_cachetable_get_and_pin_nonblocking(
f1,
make_blocknum(2),
2,
&v1,
- &s1,
wc,
def_fetch,
def_pf_req_callback,
@@ -181,20 +177,19 @@ cachetable_test (void) {
r = toku_cachetable_openf(&f1, ct, fname1, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
// bring pairs 1 and 2 into memory, then unpin
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
assert_zero(r);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
assert_zero(r);
// now pin pairs 3 and 4
- r = toku_cachetable_get_and_pin(f1, make_blocknum(3), 3, &v1, &s1, wc, fetch_three, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(3), 3, &v1, wc, fetch_three, def_pf_req_callback, def_pf_callback, true, NULL);
assert_zero(r);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(4), 4, &v1, &s1, wc, fetch_four, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(4), 4, &v1, wc, fetch_four, def_pf_req_callback, def_pf_callback, true, NULL);
assert_zero(r);
toku_pthread_t tid1;
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-all-write.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-all-write.cc
index bc08bab944e..efc844d53a9 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-all-write.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-all-write.cc
@@ -73,12 +73,11 @@ cachetable_test (void) {
void* v1;
void* v2;
- long s1, s2;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_DIRTY, make_pair_attr(8));
- r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v2, &s2, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v2, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(2), 2, CACHETABLE_CLEAN, make_pair_attr(8));
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-checkpoint-pending.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-checkpoint-pending.cc
index 5e87fed740d..024e2f5d221 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-checkpoint-pending.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-checkpoint-pending.cc
@@ -99,13 +99,15 @@ do_update (void *UU(ignore))
CACHEKEY key = make_blocknum(i);
uint32_t hi = toku_cachetable_hash(cf, key);
void *vv;
- long size;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
- int r = toku_cachetable_get_and_pin(cf, key, hi, &vv, &size, wc, fetch_die, def_pf_req_callback, def_pf_callback, true, 0);
+ int r = toku_cachetable_get_and_pin(cf, key, hi, &vv, wc, fetch_die, def_pf_req_callback, def_pf_callback, true, 0);
//printf("g");
assert(r==0);
- assert(size==sizeof(int));
+ PAIR_ATTR attr;
+ r = toku_cachetable_get_attr(cf, key, hi, &attr);
+ assert(r==0);
+ assert(attr.size==sizeof(int));
int *CAST_FROM_VOIDP(v, vv);
assert(*v==42);
*v = 43;
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-checkpoint-pinned-nodes.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-checkpoint-pinned-nodes.cc
index 7f30305d673..0846974d3ef 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-checkpoint-pinned-nodes.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-checkpoint-pinned-nodes.cc
@@ -110,13 +110,11 @@ cachetable_test (void) {
void* v1;
void* v2;
- long s1;
- long s2;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(&dirty_val);
wc.flush_callback = flush;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, fetch, def_pf_req_callback, def_pf_callback, true, &dirty_val);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, fetch, def_pf_req_callback, def_pf_callback, true, &dirty_val);
wc.write_extraargs = NULL;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v2, &s2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
//
// Here is the test, we have two pairs, v1 is dirty, v2 is clean, but both are currently pinned
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-checkpoint.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-checkpoint.cc
index caa366e23d3..5afc1230e77 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-checkpoint.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-checkpoint.cc
@@ -103,13 +103,10 @@ cachetable_test (void) {
create_dummy_functions(f1);
void* v1;
- //void* v2;
- long s1;
- //long s2;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
wc.cleaner_callback = cleaner_callback;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
PAIR_ATTR attr = make_pair_attr(8);
attr.cache_pressure_size = 8;
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_DIRTY, attr);
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-checkpoint2.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-checkpoint2.cc
index 63f383b64b0..16e6102a234 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-checkpoint2.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-checkpoint2.cc
@@ -103,13 +103,10 @@ cachetable_test (void) {
create_dummy_functions(f1);
void* v1;
- //void* v2;
- long s1;
- //long s2;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
wc.cleaner_callback = cleaner_callback;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
PAIR_ATTR attr = make_pair_attr(8);
attr.cache_pressure_size = 8;
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_DIRTY, attr);
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-attrs-accumulate.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-attrs-accumulate.cc
index dd6c674af24..c3125d0ce57 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-attrs-accumulate.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-attrs-accumulate.cc
@@ -107,15 +107,12 @@ run_test (void) {
assert(STATUS_VALUE(CT_SIZE_CACHEPRESSURE) == 0);
void* vs[n_pairs];
- //void* v2;
- long ss[n_pairs];
- //long s2;
PAIR_ATTR expect = { .size = 0, .nonleaf_size = 0, .leaf_size = 0, .rollback_size = 0, .cache_pressure_size = 0 };
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
wc.write_extraargs = &expect;
for (int i = 0; i < n_pairs; ++i) {
- r = toku_cachetable_get_and_pin(f1, make_blocknum(i+1), i+1, &vs[i], &ss[i],
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(i+1), i+1, &vs[i],
wc,
def_fetch,
def_pf_req_callback,
@@ -139,8 +136,7 @@ run_test (void) {
assert(STATUS_VALUE(CT_SIZE_CACHEPRESSURE) == (uint64_t) expect.cache_pressure_size);
void *big_v;
- long big_s;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(n_pairs + 1), n_pairs + 1, &big_v, &big_s,
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(n_pairs + 1), n_pairs + 1, &big_v,
wc,
def_fetch,
def_pf_req_callback,
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-everything-pinned.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-everything-pinned.cc
index c518f9285d6..e643f7395a4 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-everything-pinned.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-everything-pinned.cc
@@ -71,13 +71,10 @@ run_test (void) {
assert(r==0);
void* vs[8];
- //void* v2;
- long ss[8];
- //long s2;
for (int i = 0; i < 8; ++i) {
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.cleaner_callback = everything_pinned_cleaner_callback;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(i+1), i+1, &vs[i], &ss[i],
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(i+1), i+1, &vs[i],
wc,
def_fetch,
def_pf_req_callback,
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-nothing-needs-flushing.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-nothing-needs-flushing.cc
index 63b2fd9a2b7..1dd2a8e0678 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-nothing-needs-flushing.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-nothing-needs-flushing.cc
@@ -69,13 +69,10 @@ run_test (void) {
r = toku_cachetable_openf(&f1, ct, fname1, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
void* vs[8];
- //void* v2;
- long ss[8];
- //long s2;
for (int i = 0; i < 8; ++i) {
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.cleaner_callback = everything_pinned_cleaner_callback;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(i+1), i+1, &vs[i], &ss[i],
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(i+1), i+1, &vs[i],
wc,
def_fetch,
def_pf_req_callback,
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-same-fullhash.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-same-fullhash.cc
index c38483c8e46..af519d83d6f 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-same-fullhash.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-same-fullhash.cc
@@ -76,12 +76,9 @@ run_test (void) {
r = toku_cachetable_openf(&f1, ct, fname1, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
void* vs[5];
- //void* v2;
- long ss[5];
- //long s2;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.cleaner_callback = my_cleaner_callback;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &vs[0], &ss[0],
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &vs[0],
wc,
def_fetch,
def_pf_req_callback,
@@ -92,7 +89,7 @@ run_test (void) {
attr.cache_pressure_size = 100;
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, attr);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 1, &vs[1], &ss[1],
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 1, &vs[1],
wc,
def_fetch,
def_pf_req_callback,
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-simple.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-simple.cc
index 8a5aa983f63..363b2d30935 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-simple.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-cleaner-thread-simple.cc
@@ -77,12 +77,9 @@ run_test (void) {
r = toku_cachetable_openf(&f1, ct, fname1, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
void* vs[5];
- //void* v2;
- long ss[5];
- //long s2;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.cleaner_callback = my_cleaner_callback;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(100), 100, &vs[4], &ss[4],
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(100), 100, &vs[4],
wc,
def_fetch,
def_pf_req_callback,
@@ -94,7 +91,7 @@ run_test (void) {
r = toku_test_cachetable_unpin(f1, make_blocknum(100), 100, CACHETABLE_CLEAN, attr);
for (int i = 0; i < 4; ++i) {
- r = toku_cachetable_get_and_pin(f1, make_blocknum(i+1), i+1, &vs[i], &ss[i],
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(i+1), i+1, &vs[i],
wc,
def_fetch,
def_pf_req_callback,
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-clock-eviction.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-clock-eviction.cc
index 4f8516008ee..855a7154c1d 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-clock-eviction.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-clock-eviction.cc
@@ -99,25 +99,24 @@ cachetable_test (void) {
void* v1;
void* v2;
- long s1, s2;
flush_may_occur = false;
check_flush = true;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
for (int i = 0; i < 100000; i++) {
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(1));
}
for (int i = 0; i < 8; i++) {
- r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v2, &s2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(2), 2, CACHETABLE_CLEAN, make_pair_attr(1));
}
for (int i = 0; i < 4; i++) {
- r = toku_cachetable_get_and_pin(f1, make_blocknum(3), 3, &v2, &s2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(3), 3, &v2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(3), 3, CACHETABLE_CLEAN, make_pair_attr(1));
}
for (int i = 0; i < 2; i++) {
- r = toku_cachetable_get_and_pin(f1, make_blocknum(4), 4, &v2, &s2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(4), 4, &v2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(4), 4, CACHETABLE_CLEAN, make_pair_attr(1));
}
flush_may_occur = true;
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-clock-eviction2.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-clock-eviction2.cc
index d35705002df..89b1fba5013 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-clock-eviction2.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-clock-eviction2.cc
@@ -142,34 +142,33 @@ cachetable_test (void) {
void* v1;
void* v2;
- long s1, s2;
flush_may_occur = false;
for (int i = 0; i < 100000; i++) {
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
wc.pe_callback = pe_callback;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(4));
}
for (int i = 0; i < 8; i++) {
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
wc.pe_callback = pe_callback;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v2, &s2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(2), 2, CACHETABLE_CLEAN, make_pair_attr(4));
}
for (int i = 0; i < 4; i++) {
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
wc.pe_callback = pe_callback;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(3), 3, &v2, &s2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(3), 3, &v2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(3), 3, CACHETABLE_CLEAN, make_pair_attr(4));
}
for (int i = 0; i < 2; i++) {
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
wc.pe_callback = pe_callback;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(4), 4, &v2, &s2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(4), 4, &v2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(4), 4, CACHETABLE_CLEAN, make_pair_attr(4));
}
flush_may_occur = false;
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-clock-eviction3.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-clock-eviction3.cc
index 97ae526a6b8..a6c8d2fdf72 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-clock-eviction3.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-clock-eviction3.cc
@@ -159,14 +159,13 @@ cachetable_test (void) {
void* v1;
void* v2;
- long s1, s2;
flush_may_occur = false;
for (int i = 0; i < 100000; i++) {
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
wc.pe_est_callback = pe_est_callback;
wc.pe_callback = pe_callback;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(4));
}
for (int i = 0; i < 8; i++) {
@@ -174,7 +173,7 @@ cachetable_test (void) {
wc.flush_callback = flush;
wc.pe_est_callback = pe_est_callback;
wc.pe_callback = pe_callback;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v2, &s2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(2), 2, CACHETABLE_CLEAN, make_pair_attr(4));
}
for (int i = 0; i < 4; i++) {
@@ -182,7 +181,7 @@ cachetable_test (void) {
wc.flush_callback = flush;
wc.pe_est_callback = pe_est_callback;
wc.pe_callback = pe_callback;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(3), 3, &v2, &s2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(3), 3, &v2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(3), 3, CACHETABLE_CLEAN, make_pair_attr(4));
}
for (int i = 0; i < 2; i++) {
@@ -190,7 +189,7 @@ cachetable_test (void) {
wc.flush_callback = flush;
wc.pe_est_callback = pe_est_callback;
wc.pe_callback = pe_callback;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(4), 4, &v2, &s2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(4), 4, &v2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(4), 4, CACHETABLE_CLEAN, make_pair_attr(4));
}
flush_may_occur = false;
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-clock-eviction4.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-clock-eviction4.cc
index 9982bec26bd..8537a5a0d3d 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-clock-eviction4.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-clock-eviction4.cc
@@ -137,7 +137,6 @@ cachetable_test (void) {
void* v1;
void* v2;
- long s1, s2;
flush_may_occur = false;
check_flush = true;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
@@ -145,19 +144,19 @@ cachetable_test (void) {
wc.pe_est_callback = pe_est_callback;
wc.pe_callback = pe_callback;
for (int i = 0; i < 100000; i++) {
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(1));
}
for (int i = 0; i < 8; i++) {
- r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v2, &s2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(2), 2, CACHETABLE_CLEAN, make_pair_attr(1));
}
for (int i = 0; i < 4; i++) {
- r = toku_cachetable_get_and_pin(f1, make_blocknum(3), 3, &v2, &s2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(3), 3, &v2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(3), 3, CACHETABLE_CLEAN, make_pair_attr(1));
}
for (int i = 0; i < 2; i++) {
- r = toku_cachetable_get_and_pin(f1, make_blocknum(4), 4, &v2, &s2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(4), 4, &v2, wc, fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(4), 4, CACHETABLE_CLEAN, make_pair_attr(1));
}
flush_may_occur = true;
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-clone-checkpoint.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-clone-checkpoint.cc
index 99d595b1ff1..e9571dfd0ee 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-clone-checkpoint.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-clone-checkpoint.cc
@@ -101,11 +101,10 @@ cachetable_test (void) {
create_dummy_functions(f1);
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
wc.clone_callback = clone_callback;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
assert_zero(r);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_DIRTY, make_pair_attr(8));
assert_zero(r);
@@ -124,7 +123,7 @@ cachetable_test (void) {
usleep(1 * 1024 * 1024);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
assert_zero(r);
assert(clone_flush_started && !clone_flush_completed);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8));
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-clone-partial-fetch-pinned-node.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-clone-partial-fetch-pinned-node.cc
index 3361faa071e..42faa8ade86 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-clone-partial-fetch-pinned-node.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-clone-partial-fetch-pinned-node.cc
@@ -95,12 +95,11 @@ cachetable_test (void) {
create_dummy_functions(f1);
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.clone_callback = clone_callback;
wc.flush_callback = flush;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
assert_zero(r);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_DIRTY, make_pair_attr(8));
assert_zero(r);
@@ -109,13 +108,13 @@ cachetable_test (void) {
CHECKPOINTER cp = toku_cachetable_get_checkpointer(ct);
toku_cachetable_begin_checkpoint(cp, NULL);
assert_zero(r);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
assert_zero(r);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8));
assert_zero(r);
pf_called = false;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
assert_zero(r);
assert(!pf_called);
toku_cachetable_pf_pinned_pair(v1, true_pf_callback, NULL, f1, make_blocknum(1), 1);
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-clone-partial-fetch.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-clone-partial-fetch.cc
index 2b0b828b63c..912cd0df84f 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-clone-partial-fetch.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-clone-partial-fetch.cc
@@ -100,12 +100,11 @@ cachetable_test (void) {
create_dummy_functions(f1);
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.clone_callback = clone_callback;
wc.flush_callback = flush;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
assert_zero(r);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_DIRTY, make_pair_attr(8));
assert_zero(r);
@@ -114,13 +113,13 @@ cachetable_test (void) {
CHECKPOINTER cp = toku_cachetable_get_checkpointer(ct);
toku_cachetable_begin_checkpoint(cp, NULL);
assert_zero(r);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
assert_zero(r);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8));
assert_zero(r);
pf_called = false;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, true_pf_req_callback, true_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, true_pf_req_callback, true_pf_callback, true, NULL);
assert_zero(r);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8));
assert_zero(r);
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-clone-pin-nonblocking.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-clone-pin-nonblocking.cc
index c66de89fbcf..81c6cecc3df 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-clone-pin-nonblocking.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-clone-pin-nonblocking.cc
@@ -82,23 +82,22 @@ cachetable_test (enum cachetable_dirty dirty, bool cloneable) {
create_dummy_functions(f1);
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.clone_callback = cloneable ? clone_callback : NULL;
wc.flush_callback = flush;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, dirty, make_pair_attr(8));
// test that having a pin that passes false for may_modify_value does not stall behind checkpoint
CHECKPOINTER cp = toku_cachetable_get_checkpointer(ct);
toku_cachetable_begin_checkpoint(cp, NULL);
- r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_READ, NULL, NULL);
+ r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_READ, NULL, NULL);
assert(r == 0);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8));
assert(r == 0);
- r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
+ r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
assert(r == 0);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8));
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-clone-unpin-remove.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-clone-unpin-remove.cc
index a4198217c11..625718f97cc 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-clone-unpin-remove.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-clone-unpin-remove.cc
@@ -93,12 +93,11 @@ cachetable_test (void) {
create_dummy_functions(f1);
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.clone_callback = clone_callback;
wc.flush_callback = flush;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
assert_zero(r);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), CACHETABLE_DIRTY, make_pair_attr(8));
assert_zero(r);
@@ -108,7 +107,7 @@ cachetable_test (void) {
CHECKPOINTER cp = toku_cachetable_get_checkpointer(ct);
toku_cachetable_begin_checkpoint(cp, NULL);
assert_zero(r);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
assert_zero(r);
r = toku_test_cachetable_unpin_and_remove(f1, make_blocknum(1), NULL, NULL);
assert_zero(r);
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-eviction-close-test.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-eviction-close-test.cc
index 84c507f489a..787353e679c 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-eviction-close-test.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-eviction-close-test.cc
@@ -113,9 +113,7 @@ static void cachetable_eviction_full_test (void) {
uint32_t fullhash = toku_cachetable_hash(f1, make_blocknum(0));
void* value1;
- long size1;
void* value2;
- long size2;
//
// let's pin a node multiple times
// and really bring up its clock count
@@ -129,7 +127,6 @@ static void cachetable_eviction_full_test (void) {
key,
fullhash,
&value1,
- &size1,
wc,
fetch,
def_pf_req_callback,
@@ -150,7 +147,6 @@ static void cachetable_eviction_full_test (void) {
make_blocknum(1),
1,
&value2,
- &size2,
wc,
fetch,
def_pf_req_callback,
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-eviction-close-test2.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-eviction-close-test2.cc
index ba99815eec0..6fb5311c72f 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-eviction-close-test2.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-eviction-close-test2.cc
@@ -126,9 +126,7 @@ static void cachetable_eviction_full_test (void) {
uint32_t fullhash = toku_cachetable_hash(f1, make_blocknum(0));
void* value1;
- long size1;
void* value2;
- long size2;
//
// let's pin a node multiple times
// and really bring up its clock count
@@ -143,7 +141,6 @@ static void cachetable_eviction_full_test (void) {
key,
fullhash,
&value1,
- &size1,
wc,
fetch,
def_pf_req_callback,
@@ -165,7 +162,6 @@ static void cachetable_eviction_full_test (void) {
make_blocknum(1),
1,
&value2,
- &size2,
wc,
fetch,
def_pf_req_callback,
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-eviction-getandpin-test.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-eviction-getandpin-test.cc
index cb448b88b24..61ba1e65a4d 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-eviction-getandpin-test.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-eviction-getandpin-test.cc
@@ -83,7 +83,6 @@ static void cachetable_predef_fetch_maybegetandpin_test (void) {
// let's get and pin this node a bunch of times to drive up the clock count
for (int i = 0; i < 20; i++) {
void* value;
- long size;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
r = toku_cachetable_get_and_pin(
@@ -91,7 +90,6 @@ static void cachetable_predef_fetch_maybegetandpin_test (void) {
key,
fullhash,
&value,
- &size,
wc,
def_fetch,
def_pf_req_callback,
@@ -109,14 +107,12 @@ static void cachetable_predef_fetch_maybegetandpin_test (void) {
// def_fetch another block, causing an eviction of the first block we made above
do_sleep = true;
void* value2;
- long size2;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
r = toku_cachetable_get_and_pin(
f1,
make_blocknum(1),
1,
&value2,
- &size2,
wc,
def_fetch,
def_pf_req_callback,
@@ -131,14 +127,16 @@ static void cachetable_predef_fetch_maybegetandpin_test (void) {
toku_cachetable_verify(ct);
void *v = 0;
- long size = 0;
// now verify that the block we are trying to evict is gone
wc = def_write_callback(NULL);
wc.flush_callback = flush;
- r = toku_cachetable_get_and_pin_nonblocking(f1, key, fullhash, &v, &size, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
+ r = toku_cachetable_get_and_pin_nonblocking(f1, key, fullhash, &v, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
assert(r == TOKUDB_TRY_AGAIN);
- r = toku_cachetable_get_and_pin(f1, key, fullhash, &v, &size, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
- assert(r == 0 && v == 0 && size == 8);
+ r = toku_cachetable_get_and_pin(f1, key, fullhash, &v, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ assert(r == 0 && v == 0);
+ PAIR_ATTR attr;
+ r = toku_cachetable_get_attr(f1, key, fullhash, &attr);
+ assert(r == 0 && attr.size == 8);
do_sleep = false;
struct timeval tend;
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-eviction-getandpin-test2.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-eviction-getandpin-test2.cc
index 37ec203299e..f6dd04f322f 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-eviction-getandpin-test2.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-eviction-getandpin-test2.cc
@@ -93,13 +93,11 @@ static void cachetable_prefetch_maybegetandpin_test (void) {
wc.pe_callback = pe_callback;
for (int i = 0; i < 20; i++) {
void* value;
- long size;
r = toku_cachetable_get_and_pin(
f1,
key,
fullhash,
&value,
- &size,
wc,
def_fetch,
def_pf_req_callback,
@@ -116,13 +114,11 @@ static void cachetable_prefetch_maybegetandpin_test (void) {
// fetch another block, causing an eviction of the first block we made above
void* value2;
- long size2;
r = toku_cachetable_get_and_pin(
f1,
make_blocknum(1),
1,
&value2,
- &size2,
wc,
def_fetch,
def_pf_req_callback,
@@ -139,14 +135,12 @@ static void cachetable_prefetch_maybegetandpin_test (void) {
toku_cachetable_verify(ct);
void *v = 0;
- long size = 0;
// now verify that the block we are trying to evict may be pinned
r = toku_cachetable_get_and_pin_nonblocking(
f1,
key,
fullhash,
&v,
- &size,
wc,
def_fetch,
def_pf_req_callback,
@@ -161,7 +155,6 @@ static void cachetable_prefetch_maybegetandpin_test (void) {
key,
fullhash,
&v,
- &size,
wc,
def_fetch,
def_pf_req_callback,
@@ -169,7 +162,10 @@ static void cachetable_prefetch_maybegetandpin_test (void) {
true,
NULL
);
- assert(r == 0 && v == 0 && size == 1);
+ assert(r == 0 && v == 0);
+ PAIR_ATTR attr;
+ r = toku_cachetable_get_attr(f1, key, fullhash, &attr);
+ assert(r == 0 && attr.size == 1);
struct timeval tend;
gettimeofday(&tend, NULL);
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-fetch-inducing-evictor.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-fetch-inducing-evictor.cc
index f330a6f20af..ff72e660bb5 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-fetch-inducing-evictor.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-fetch-inducing-evictor.cc
@@ -70,9 +70,8 @@ cachetable_test (enum pin_evictor_test_type test_type, bool nonblocking) {
r = toku_cachetable_openf(&f1, ct, fname1, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8));
// at this point, we should have 8 bytes of data in a cachetable that supports 7
@@ -82,11 +81,11 @@ cachetable_test (enum pin_evictor_test_type test_type, bool nonblocking) {
if (test_type == pin_in_memory) {
old_num_ev_runs = evictor_test_helpers::get_num_eviction_runs(&ct->ev);
if (nonblocking) {
- r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
+ r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
assert_zero(r);
}
else {
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
assert_zero(r);
}
new_num_ev_runs = evictor_test_helpers::get_num_eviction_runs(&ct->ev);
@@ -97,13 +96,13 @@ cachetable_test (enum pin_evictor_test_type test_type, bool nonblocking) {
else if (test_type == pin_fetch) {
old_num_ev_runs = evictor_test_helpers::get_num_eviction_runs(&ct->ev);
if (nonblocking) {
- r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(2), 2, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
+ r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(2), 2, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
assert(r == TOKUDB_TRY_AGAIN);
new_num_ev_runs = evictor_test_helpers::get_num_eviction_runs(&ct->ev);
assert(new_num_ev_runs > old_num_ev_runs);
}
else {
- r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
assert_zero(r);
new_num_ev_runs = evictor_test_helpers::get_num_eviction_runs(&ct->ev);
assert(new_num_ev_runs > old_num_ev_runs);
@@ -114,13 +113,13 @@ cachetable_test (enum pin_evictor_test_type test_type, bool nonblocking) {
else if (test_type == pin_partial_fetch) {
old_num_ev_runs = evictor_test_helpers::get_num_eviction_runs(&ct->ev);
if (nonblocking) {
- r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, pf_req_callback, pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
+ r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, wc, def_fetch, pf_req_callback, pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
assert(r == TOKUDB_TRY_AGAIN);
new_num_ev_runs = evictor_test_helpers::get_num_eviction_runs(&ct->ev);
assert(new_num_ev_runs > old_num_ev_runs);
}
else {
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, pf_req_callback, pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, pf_req_callback, pf_callback, true, NULL);
assert_zero(r);
new_num_ev_runs = evictor_test_helpers::get_num_eviction_runs(&ct->ev);
assert(new_num_ev_runs > old_num_ev_runs);
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-flush-during-cleaner.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-flush-during-cleaner.cc
index c52444d8e06..db8c5cc99e7 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-flush-during-cleaner.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-flush-during-cleaner.cc
@@ -73,11 +73,10 @@ cachetable_test (void) {
r = toku_cachetable_openf(&f1, ct, fname1, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
void* v1;
- long s1;
for (int i = 0; i < 10; i++) {
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.cleaner_callback = cleaner_callback;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(i), i, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(i), i, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
PAIR_ATTR attr = make_pair_attr(8);
attr.cache_pressure_size = 8;
r = toku_test_cachetable_unpin(f1, make_blocknum(i), i, CACHETABLE_DIRTY, attr);
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-getandpin-test.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-getandpin-test.cc
index a9a9fd2408a..c5391722bca 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-getandpin-test.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-getandpin-test.cc
@@ -93,12 +93,14 @@ cachetable_getandpin_test (int n) {
for (i=1; i<=n; i++) {
uint32_t hi;
hi = toku_cachetable_hash(f1, make_blocknum(i));
- void *v; long size;
+ void *v;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(i), hi, &v, &size, wc, fetch, def_pf_req_callback, def_pf_callback, true, 0);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(i), hi, &v, wc, fetch, def_pf_req_callback, def_pf_callback, true, 0);
assert(r == 0);
- assert(size == i);
+ PAIR_ATTR attr;
+ r = toku_cachetable_get_attr(f1, make_blocknum(i), hi, &attr);
+ assert(r == 0 && attr.size == i);
r = toku_test_cachetable_unpin(f1, make_blocknum(i), hi, CACHETABLE_CLEAN, make_pair_attr(i));
assert(r == 0);
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-kibbutz_and_flush_cachefile.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-kibbutz_and_flush_cachefile.cc
index 17792ffb6d0..df4137e934b 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-kibbutz_and_flush_cachefile.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-kibbutz_and_flush_cachefile.cc
@@ -69,10 +69,9 @@ run_test (void) {
r = toku_cachetable_openf(&f1, ct, fname1, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
foo = false;
cachefile_kibbutz_enq(f1, kibbutz_work, f1);
toku_cachefile_close(&f1, false, ZERO_LSN);
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-partial-fetch.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-partial-fetch.cc
index 5ae6cc60efb..42c60f1f8e6 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-partial-fetch.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-partial-fetch.cc
@@ -121,11 +121,8 @@ cachetable_test (void) {
r = toku_cachetable_openf(&f1, ct, fname1, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
void* v1;
- //void* v2;
- long s1;
- //long s2;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, fetch, pf_req_callback, pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, fetch, pf_req_callback, pf_callback, true, NULL);
assert(&fetch_val == v1);
//
// verify that a prefetch of this node will fail
@@ -148,16 +145,19 @@ cachetable_test (void) {
//
// now get and pin node again, and make sure that partial fetch and fetch are not called
//
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, err_fetch, pf_req_callback, err_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, err_fetch, pf_req_callback, err_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8));
//
// now make sure that if we say a partial fetch is required, that we get a partial fetch
// and that read_extraargs properly passed down
//
pf_req_called = false;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, err_fetch, true_pf_req_callback, true_pf_callback, true, &fetch_val);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, err_fetch, true_pf_req_callback, true_pf_callback, true, &fetch_val);
assert(pf_req_called);
- assert(s1 == sizeof(fetch_val)+1);
+ PAIR_ATTR attr;
+ r = toku_cachetable_get_attr(f1, make_blocknum(1), 1, &attr);
+ assert(r == 0);
+ assert(attr.size == sizeof(fetch_val)+1);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8));
// close and reopen cachefile so we can do some simple prefetch tests
@@ -185,7 +185,7 @@ cachetable_test (void) {
//
// now verify we can pin it, and NO fetch callback should get called
//
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, err_fetch, pf_req_callback, err_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, err_fetch, pf_req_callback, err_pf_callback, true, NULL);
assert(&fetch_val == v1);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8));
@@ -205,7 +205,7 @@ cachetable_test (void) {
&doing_prefetch
);
assert(doing_prefetch);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, err_fetch, pf_req_callback, err_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, err_fetch, pf_req_callback, err_pf_callback, true, NULL);
assert(&fetch_val == v1);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8));
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-pin-checkpoint.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-pin-checkpoint.cc
index 65b02aebaec..9632b199daa 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-pin-checkpoint.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-pin-checkpoint.cc
@@ -171,7 +171,6 @@ static void *move_numbers(void *arg) {
*/
void* v1;
- long s1;
CACHEKEY less_key;
less_key.b = less;
uint32_t less_fullhash = less;
@@ -184,7 +183,6 @@ static void *move_numbers(void *arg) {
less_key,
less,
&v1,
- &s1,
wc, fetch, def_pf_req_callback, def_pf_callback,
PL_WRITE_CHEAP,
NULL,
@@ -205,7 +203,6 @@ static void *move_numbers(void *arg) {
make_blocknum(greater),
greater,
&v1,
- &s1,
wc, fetch, def_pf_req_callback, def_pf_callback,
PL_WRITE_CHEAP,
NULL,
@@ -238,7 +235,6 @@ static void *move_numbers(void *arg) {
make_blocknum(third),
third,
&v1,
- &s1,
wc, fetch, def_pf_req_callback, def_pf_callback,
PL_WRITE_CHEAP,
NULL,
@@ -264,7 +260,6 @@ static void *read_random_numbers(void *arg) {
while(run_test) {
int rand_key1 = random() % NUM_ELEMENTS;
void* v1;
- long s1;
int r1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
@@ -274,7 +269,6 @@ static void *read_random_numbers(void *arg) {
make_blocknum(rand_key1),
rand_key1,
&v1,
- &s1,
wc, fetch, def_pf_req_callback, def_pf_callback,
PL_READ,
NULL,
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-pin-nonblocking-checkpoint-clean.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-pin-nonblocking-checkpoint-clean.cc
index 758bfc6934b..2d358110280 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-pin-nonblocking-checkpoint-clean.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-pin-nonblocking-checkpoint-clean.cc
@@ -57,18 +57,16 @@ run_test (void) {
void* v1;
void* v2;
- long s1;
- long s2;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, def_write_callback(NULL), def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, def_write_callback(NULL), def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8)); assert(r==0);
for (int i = 0; i < 20; i++) {
- r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v2, &s2, def_write_callback(NULL), def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v2, def_write_callback(NULL), def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(2), 2, CACHETABLE_CLEAN, make_pair_attr(8)); assert(r==0);
}
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v2, &s2, def_write_callback(NULL), def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v2, def_write_callback(NULL), def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
CHECKPOINTER cp = toku_cachetable_get_checkpointer(ct);
toku_cachetable_begin_checkpoint(cp, NULL);
// mark nodes as pending a checkpoint, so that get_and_pin_nonblocking on block 1 will return TOKUDB_TRY_AGAIN
@@ -79,7 +77,6 @@ run_test (void) {
make_blocknum(1),
1,
&v1,
- &s1,
def_write_callback(NULL),
def_fetch,
def_pf_req_callback,
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-prefetch-close-test.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-prefetch-close-test.cc
index e4d4288fbdf..bcc6556b271 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-prefetch-close-test.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-prefetch-close-test.cc
@@ -107,13 +107,11 @@ static void cachetable_prefetch_full_test (bool partial_fetch) {
if (partial_fetch) {
expect_pf = true;
void* value;
- long size;
r = toku_cachetable_get_and_pin(
f1,
key,
fullhash,
&value,
- &size,
wc,
fetch,
def_pf_req_callback,
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-prefetch-getandpin-test.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-prefetch-getandpin-test.cc
index d446560ccf6..5769b5c8a41 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-prefetch-getandpin-test.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-prefetch-getandpin-test.cc
@@ -124,13 +124,11 @@ static void cachetable_prefetch_maybegetandpin_test (bool do_partial_fetch) {
if (do_partial_fetch) {
expect_pf = true;
void* value;
- long size;
r = toku_cachetable_get_and_pin(
f1,
key,
fullhash,
&value,
- &size,
wc,
fetch,
pf_req_callback,
@@ -152,12 +150,14 @@ static void cachetable_prefetch_maybegetandpin_test (bool do_partial_fetch) {
// verify that get_and_pin waits while the prefetch is in progress
void *v = 0;
- long size = 0;
do_pf = false;
- r = toku_cachetable_get_and_pin_nonblocking(f1, key, fullhash, &v, &size, wc, fetch, pf_req_callback, pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
+ r = toku_cachetable_get_and_pin_nonblocking(f1, key, fullhash, &v, wc, fetch, pf_req_callback, pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
assert(r==TOKUDB_TRY_AGAIN);
- r = toku_cachetable_get_and_pin(f1, key, fullhash, &v, &size, wc, fetch, pf_req_callback, pf_callback, true, NULL);
- assert(r == 0 && v == 0 && size == 2);
+ r = toku_cachetable_get_and_pin(f1, key, fullhash, &v, wc, fetch, pf_req_callback, pf_callback, true, NULL);
+ assert(r == 0 && v == 0);
+ PAIR_ATTR attr;
+ r = toku_cachetable_get_attr(f1, key, fullhash, &attr);
+ assert(r == 0 && attr.size == 2);
struct timeval tend;
gettimeofday(&tend, NULL);
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-put-checkpoint.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-put-checkpoint.cc
index 4cf1678449b..a159d448b76 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-put-checkpoint.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-put-checkpoint.cc
@@ -171,7 +171,6 @@ static void move_number_to_child(
child = ((random() % 2) == 0) ? (2*parent + 1) : (2*parent + 2);
void* v1;
- long s1;
CACHEKEY parent_key;
parent_key.b = parent;
uint32_t parent_fullhash = toku_cachetable_hash(f1, parent_key);
@@ -189,7 +188,6 @@ static void move_number_to_child(
child_key,
child_fullhash,
&v1,
- &s1,
wc, fetch, def_pf_req_callback, def_pf_callback,
PL_WRITE_CHEAP,
NULL,
@@ -222,7 +220,6 @@ static void *move_numbers(void *arg) {
int parent = 0;
int r;
void* v1;
- long s1;
CACHEKEY parent_key;
parent_key.b = parent;
uint32_t parent_fullhash = toku_cachetable_hash(f1, parent_key);
@@ -234,7 +231,6 @@ static void *move_numbers(void *arg) {
parent_key,
parent_fullhash,
&v1,
- &s1,
wc, fetch, def_pf_req_callback, def_pf_callback,
PL_WRITE_CHEAP,
NULL,
@@ -280,7 +276,6 @@ static void merge_and_split_child(
assert(child != other_child);
void* v1;
- long s1;
CACHEKEY parent_key;
parent_key.b = parent;
@@ -299,7 +294,6 @@ static void merge_and_split_child(
child_key,
child_fullhash,
&v1,
- &s1,
wc, fetch, def_pf_req_callback, def_pf_callback,
PL_WRITE_CHEAP,
NULL,
@@ -325,7 +319,6 @@ static void merge_and_split_child(
other_child_key,
other_child_fullhash,
&v1,
- &s1,
wc, fetch, def_pf_req_callback, def_pf_callback,
PL_WRITE_CHEAP,
NULL,
@@ -387,7 +380,6 @@ static void *merge_and_split(void *arg) {
int parent = 0;
int r;
void* v1;
- long s1;
CACHEKEY parent_key;
parent_key.b = parent;
uint32_t parent_fullhash = toku_cachetable_hash(f1, parent_key);
@@ -399,7 +391,6 @@ static void *merge_and_split(void *arg) {
parent_key,
parent_fullhash,
&v1,
- &s1,
wc, fetch, def_pf_req_callback, def_pf_callback,
PL_WRITE_CHEAP,
NULL,
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-clone.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-clone.cc
index f303f22cb33..c51096b3063 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-clone.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-clone.cc
@@ -106,11 +106,10 @@ test_clean (enum cachetable_dirty dirty, bool cloneable) {
create_dummy_functions(f1);
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.clone_callback = cloneable ? clone_callback : NULL;
wc.flush_callback = flush;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, dirty, make_pair_attr(8));
check_flush = true;
@@ -127,13 +126,13 @@ test_clean (enum cachetable_dirty dirty, bool cloneable) {
gettimeofday(&tstart, NULL);
// test that having a pin that passes false for may_modify_value does not stall behind checkpoint
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, false, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, false, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8));
gettimeofday(&tend, NULL);
assert(tdelta_usec(&tend, &tstart) <= 2000000);
assert(!clone_called);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
gettimeofday(&tend, NULL);
// we take 5 seconds for a write
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-clone2.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-clone2.cc
index 51cf70c3e76..341bbe92106 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-clone2.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-clone2.cc
@@ -94,11 +94,10 @@ test_clean (enum cachetable_dirty dirty, bool cloneable) {
check_flush = false;
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.clone_callback = cloneable ? clone_callback : NULL;
wc.flush_callback = flush;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_DIRTY, make_pair_attr(8));
// begin checkpoint, since pair is clean, we should not
@@ -106,7 +105,7 @@ test_clean (enum cachetable_dirty dirty, bool cloneable) {
CHECKPOINTER cp = toku_cachetable_get_checkpointer(ct);
toku_cachetable_begin_checkpoint(cp, NULL);
assert_zero(r);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
// at this point, there should be no more dirty writes
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, dirty, make_pair_attr(8));
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-close.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-close.cc
index f5024806fb3..c1c4cb4f16e 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-close.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-close.cc
@@ -113,10 +113,9 @@ simple_test(bool unlink_on_close) {
r = toku_cachetable_openf(&f1, ct, fname1, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
set_cf_userdata(f1);
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), CACHETABLE_DIRTY, make_pair_attr(8));
toku_cachetable_verify(ct);
if (unlink_on_close) {
@@ -169,9 +168,8 @@ static void test_pair_stays_in_cache(enum cachetable_dirty dirty) {
r = toku_cachetable_openf(&f1, ct, fname1, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), dirty, make_pair_attr(8));
toku_cachefile_close(&f1, false, ZERO_LSN);
// now reopen the cachefile
@@ -217,28 +215,25 @@ static void test_multiple_cachefiles(bool use_same_hash) {
r = toku_cachetable_openf(&f3, ct, fname3, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
void* v1;
- long s1;
void* v2;
- long s2;
void* v3;
- long s3;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
for (int j = 0; j < 3; j++) {
uint32_t hash = use_same_hash ? 1 : toku_cachetable_hash(f1, make_blocknum(j));
- r = toku_cachetable_get_and_pin(f1, make_blocknum(j), hash, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(j), hash, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(j), hash, CACHETABLE_CLEAN, make_pair_attr(8));
}
for (int j = 0; j < 3; j++) {
uint32_t hash = use_same_hash ? 1 : toku_cachetable_hash(f2, make_blocknum(j));
- r = toku_cachetable_get_and_pin(f2, make_blocknum(j), hash, &v2, &s2, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f2, make_blocknum(j), hash, &v2, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f2, make_blocknum(j), hash, CACHETABLE_CLEAN, make_pair_attr(8));
}
for (int j = 0; j < 3; j++) {
uint32_t hash = use_same_hash ? 1 : toku_cachetable_hash(f3, make_blocknum(j));
- r = toku_cachetable_get_and_pin(f3, make_blocknum(j), hash, &v3, &s3, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f3, make_blocknum(j), hash, &v3, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f3, make_blocknum(j), hash, CACHETABLE_CLEAN, make_pair_attr(8));
}
@@ -299,9 +294,8 @@ static void test_evictor(void) {
set_cf_userdata(f1);
r = toku_cachetable_openf(&f2, ct, fname2, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), CACHETABLE_CLEAN, make_pair_attr(8));
close_called = false;
free_called = false;
@@ -311,7 +305,7 @@ static void test_evictor(void) {
// at this point, we should f1, along with one PAIR, stale in the cachetable
// now let's pin another node, and ensure that it causes an eviction and free of f1
- r = toku_cachetable_get_and_pin(f2, make_blocknum(1), toku_cachetable_hash(f2, make_blocknum(1)), &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f2, make_blocknum(1), toku_cachetable_hash(f2, make_blocknum(1)), &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f2, make_blocknum(1), toku_cachetable_hash(f2, make_blocknum(1)), CACHETABLE_CLEAN, make_pair_attr(8));
// now sleep for 2 seconds, and check to see if f1 has been closed
sleep(2);
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-maybe-get-pin.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-maybe-get-pin.cc
index 9e724dd536a..1b6ef3ec22d 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-maybe-get-pin.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-maybe-get-pin.cc
@@ -57,11 +57,10 @@ cachetable_test (void) {
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
void* v1;
- long s1;
// nothing in cachetable, so this should fail
r = toku_cachetable_maybe_get_and_pin(f1, make_blocknum(1), 1, PL_WRITE_EXPENSIVE, &v1);
assert(r==-1);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8));
// maybe_get_and_pin_clean should succeed, maybe_get_and_pin should fail
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin-cheap.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin-cheap.cc
index fff5845ef8f..d79d1fb1eaf 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin-cheap.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin-cheap.cc
@@ -80,12 +80,11 @@ run_test (pair_lock_type lock_type) {
r = toku_cachetable_openf(&f1, ct, fname1, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
- r = toku_cachetable_get_and_pin_with_dep_pairs(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, lock_type, NULL, 0, NULL, NULL);
+ r = toku_cachetable_get_and_pin_with_dep_pairs(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, lock_type, NULL, 0, NULL, NULL);
cachefile_kibbutz_enq(f1, kibbutz_work, f1);
reset_unlockers(&unlockers);
- r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, &unlockers);
+ r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, &unlockers);
// to fix #5393, we changed behavior on full fetch where if we
// requested a PL_WRITE_CHEAP, and had to grab a PL_WRITE_EXPENSIVE for
// a full fetch, we keep it as a PL_WRITE_EXPENSIVE because downgrading back
@@ -100,11 +99,11 @@ run_test (pair_lock_type lock_type) {
// now do the same test with a partial fetch required
pf_called = false;
- r = toku_cachetable_get_and_pin_with_dep_pairs(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, true_pf_req_callback, true_pf_callback, lock_type, NULL, 0, NULL, NULL);
+ r = toku_cachetable_get_and_pin_with_dep_pairs(f1, make_blocknum(1), 1, &v1, wc, def_fetch, true_pf_req_callback, true_pf_callback, lock_type, NULL, 0, NULL, NULL);
assert(pf_called);
cachefile_kibbutz_enq(f1, kibbutz_work, f1);
reset_unlockers(&unlockers);
- r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, &unlockers);
+ r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, &unlockers);
if (lock_type == PL_WRITE_EXPENSIVE) {
assert(r == TOKUDB_TRY_AGAIN); assert(!unlockers.locked);
}
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin-dep-nodes.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin-dep-nodes.cc
index f4137cebd70..f8219a0ad1a 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin-dep-nodes.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin-dep-nodes.cc
@@ -116,18 +116,15 @@ cachetable_test (bool write_first, bool write_second, bool start_checkpoint) {
void* v1;
void* v2;
void* v3;
- long s1;
- long s2;
- long s3;
PAIR dependent_pairs[2];
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(&val1);
wc.flush_callback = flush;
wc.write_extraargs = &val1;
dest_pair = &dependent_pairs[0];
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, fetch, def_pf_req_callback, def_pf_callback, true, &val1);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, fetch, def_pf_req_callback, def_pf_callback, true, &val1);
dest_pair = &dependent_pairs[1];
wc.write_extraargs = &val2;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v2, &s2, wc, fetch, def_pf_req_callback, def_pf_callback, true, &val2);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v2, wc, fetch, def_pf_req_callback, def_pf_callback, true, &val2);
// now we set the dirty state of these two.
enum cachetable_dirty cd[2];
@@ -152,7 +149,6 @@ cachetable_test (bool write_first, bool write_second, bool start_checkpoint) {
make_blocknum(3),
3,
&v3,
- &s3,
wc, fetch, def_pf_req_callback, def_pf_callback,
PL_WRITE_EXPENSIVE,
&val3,
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin-nonblocking-cheap.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin-nonblocking-cheap.cc
index 36e6e74b18c..9e3213a8462 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin-nonblocking-cheap.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin-nonblocking-cheap.cc
@@ -78,15 +78,14 @@ static void reset_unlockers(UNLOCKERS unlockers) {
static void
run_case_that_should_succeed(CACHEFILE f1, pair_lock_type first_lock, pair_lock_type second_lock) {
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
struct unlockers unlockers = {true, unlock_dummy, NULL, NULL};
- int r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, first_lock, NULL, NULL);
+ int r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, first_lock, NULL, NULL);
assert(r==0);
cachefile_kibbutz_enq(f1, kibbutz_work, f1);
reset_unlockers(&unlockers);
- r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, second_lock, NULL, &unlockers);
+ r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, second_lock, NULL, &unlockers);
assert(r==0); assert(unlockers.locked);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8)); assert(r==0);
}
@@ -94,22 +93,25 @@ run_case_that_should_succeed(CACHEFILE f1, pair_lock_type first_lock, pair_lock_
static void
run_case_that_should_fail(CACHEFILE f1, pair_lock_type first_lock, pair_lock_type second_lock) {
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
struct unlockers unlockers = {true, unlock_dummy, NULL, NULL};
- int r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, first_lock, NULL, NULL);
+ int r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, first_lock, NULL, NULL);
assert(r==0);
cachefile_kibbutz_enq(f1, kibbutz_work, f1);
reset_unlockers(&unlockers);
- r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, second_lock, NULL, &unlockers);
+ r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, second_lock, NULL, &unlockers);
assert(r == TOKUDB_TRY_AGAIN); assert(!unlockers.locked);
}
static void
run_test (void) {
- const int test_limit = 12;
+ // sometimes the cachetable evictor runs during the test. this sometimes causes cachetable pair locking contention,
+ // which results with a TOKUDB_TRY_AGAIN error occurring. unfortunately, the test does not expect this and fails.
+ // set cachetable size limit to a value big enough so that the cachetable evictor is not triggered during the test.
+ const int test_limit = 100;
+
int r;
CACHETABLE ct;
toku_cachetable_create(&ct, test_limit, ZERO_LSN, nullptr);
@@ -119,14 +121,13 @@ run_test (void) {
r = toku_cachetable_openf(&f1, ct, fname1, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
//
// test that if we are getting a PAIR for the first time that TOKUDB_TRY_AGAIN is returned
// because the PAIR was not in the cachetable.
//
- r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
+ r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
assert(r==TOKUDB_TRY_AGAIN);
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin-nonblocking.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin-nonblocking.cc
index 26551761435..6a09b53820c 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin-nonblocking.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin-nonblocking.cc
@@ -103,34 +103,33 @@ run_test (void) {
create_dummy_functions(f1);
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
//
// test that if we are getting a PAIR for the first time that TOKUDB_TRY_AGAIN is returned
// because the PAIR was not in the cachetable.
//
- r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
+ r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
assert(r==TOKUDB_TRY_AGAIN);
// now it should succeed
- r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
+ r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
assert(r==0);
foo = false;
cachefile_kibbutz_enq(f1, kibbutz_work, f1);
// because node is in use, should return TOKUDB_TRY_AGAIN
- r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
+ r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
assert(r==TOKUDB_TRY_AGAIN);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
assert(foo);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8)); assert(r==0);
// now make sure we get TOKUDB_TRY_AGAIN when a partial fetch is involved
// first make sure value is there
- r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
+ r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
assert(r==0);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8)); assert(r==0);
// now make sure that we get TOKUDB_TRY_AGAIN for the partial fetch
- r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, true_def_pf_req_callback, true_def_pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
+ r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, wc, def_fetch, true_def_pf_req_callback, true_def_pf_callback, PL_WRITE_EXPENSIVE, NULL, NULL);
assert(r==TOKUDB_TRY_AGAIN);
toku_cachetable_verify(ct);
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin.cc
index 12a6bf8926d..6750fdd3954 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-pin.cc
@@ -95,21 +95,18 @@ run_test (void) {
create_dummy_functions(f1);
void* v1;
- //void* v2;
- long s1;
- //long s2;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
foo = false;
cachefile_kibbutz_enq(f1, kibbutz_work, f1);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
assert(foo);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8));
//now let's do a simple checkpoint test
// first dirty the PAIR
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_DIRTY, make_pair_attr(8));
// now this should mark the pair for checkpoint
@@ -121,7 +118,7 @@ run_test (void) {
//
check_me = true;
flush_called = false;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
assert(flush_called);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8));
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-put-dep-nodes.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-put-dep-nodes.cc
index 5cb8285526e..892c15a11b5 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-put-dep-nodes.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-put-dep-nodes.cc
@@ -130,16 +130,14 @@ cachetable_test (bool write_first, bool write_second, bool start_checkpoint) {
void* v1;
void* v2;
- long s1;
- long s2;
PAIR dependent_pairs[2];
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
wc.flush_callback = flush;
dest_pair = &dependent_pairs[0];
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, fetch, def_pf_req_callback, def_pf_callback, true, &val1);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, fetch, def_pf_req_callback, def_pf_callback, true, &val1);
assert(r==0);
dest_pair = &dependent_pairs[1];
- r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v2, &s2, wc, fetch, def_pf_req_callback, def_pf_callback, true, &val2);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(2), 2, &v2, wc, fetch, def_pf_req_callback, def_pf_callback, true, &val2);
assert(r==0);
// now we set the dirty state of these two.
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-read-pin-nonblocking.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-read-pin-nonblocking.cc
index ebe05e50883..fdca6ef27ce 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-read-pin-nonblocking.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-read-pin-nonblocking.cc
@@ -75,9 +75,8 @@ static int sleep_pf_callback(void* UU(ftnode_pv), void* UU(disk_data), void* UU(
static void *run_expensive_pf(void *arg) {
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
- int r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, &s1, wc, sleep_fetch, sleep_pf_req_callback, sleep_pf_callback, PL_READ, NULL, NULL);
+ int r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, wc, sleep_fetch, sleep_pf_req_callback, sleep_pf_callback, PL_READ, NULL, NULL);
assert(r == TOKUDB_TRY_AGAIN);
assert(pf_called);
return arg;
@@ -85,9 +84,8 @@ static void *run_expensive_pf(void *arg) {
static void *run_expensive_fetch(void *arg) {
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
- int r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, &s1, wc, sleep_fetch, sleep_pf_req_callback, sleep_pf_callback, PL_READ, NULL, NULL);
+ int r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, wc, sleep_fetch, sleep_pf_req_callback, sleep_pf_callback, PL_READ, NULL, NULL);
assert(fetch_called);
assert(r == TOKUDB_TRY_AGAIN);
return arg;
@@ -106,7 +104,6 @@ run_test (void) {
r = toku_cachetable_openf(&f1, ct, fname1, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
toku_pthread_t fetch_tid;
@@ -118,7 +115,6 @@ run_test (void) {
make_blocknum(1),
1,
&v1,
- &s1,
wc,
sleep_fetch,
def_pf_req_callback,
@@ -133,9 +129,9 @@ run_test (void) {
assert_zero(r);
// call with may_modify_node = false twice, make sure we can get it
- r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, &s1, wc, sleep_fetch, def_pf_req_callback, def_pf_callback, PL_READ, NULL, NULL);
+ r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, wc, sleep_fetch, def_pf_req_callback, def_pf_callback, PL_READ, NULL, NULL);
assert_zero(r);
- r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, &s1, wc, sleep_fetch, def_pf_req_callback, def_pf_callback, PL_READ, NULL, NULL);
+ r = toku_cachetable_get_and_pin_nonblocking(f1, make_blocknum(1), 1, &v1, wc, sleep_fetch, def_pf_req_callback, def_pf_callback, PL_READ, NULL, NULL);
assert_zero(r);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8));
assert(r==0);
@@ -151,7 +147,6 @@ run_test (void) {
make_blocknum(1),
1,
&v1,
- &s1,
wc,
sleep_fetch,
def_pf_req_callback,
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-read-pin.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-read-pin.cc
index dd5d59df002..1a8f3813ffa 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-read-pin.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-read-pin.cc
@@ -77,11 +77,10 @@ static int sleep_pf_callback(void* UU(ftnode_pv), void* UU(disk_data), void* UU(
static void *run_expensive_pf(void *arg) {
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
pf_called = false;
fetch_called = false;
- int r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, sleep_fetch, sleep_pf_req_callback, sleep_pf_callback, false, NULL);
+ int r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, sleep_fetch, sleep_pf_req_callback, sleep_pf_callback, false, NULL);
assert_zero(r);
assert(pf_called);
return arg;
@@ -89,11 +88,10 @@ static void *run_expensive_pf(void *arg) {
static void *run_expensive_fetch(void *arg) {
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
pf_called = false;
fetch_called = false;
- int r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, sleep_fetch, sleep_pf_req_callback, sleep_pf_callback, false, NULL);
+ int r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, sleep_fetch, sleep_pf_req_callback, sleep_pf_callback, false, NULL);
assert_zero(r);
assert(fetch_called);
return arg;
@@ -112,7 +110,6 @@ run_test (void) {
r = toku_cachetable_openf(&f1, ct, fname1, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
void* v1;
- long s1;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
toku_pthread_t fetch_tid;
@@ -124,7 +121,6 @@ run_test (void) {
make_blocknum(1),
1,
&v1,
- &s1,
wc,
sleep_fetch,
def_pf_req_callback,
@@ -141,9 +137,9 @@ run_test (void) {
assert_zero(r);
// call with may_modify_node = false twice, make sure we can get it
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, sleep_fetch, def_pf_req_callback, def_pf_callback, false, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, sleep_fetch, def_pf_req_callback, def_pf_callback, false, NULL);
assert_zero(r);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, sleep_fetch, def_pf_req_callback, def_pf_callback, false, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, sleep_fetch, def_pf_req_callback, def_pf_callback, false, NULL);
assert_zero(r);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8));
assert(r==0);
@@ -159,7 +155,6 @@ run_test (void) {
make_blocknum(1),
1,
&v1,
- &s1,
wc,
sleep_fetch,
def_pf_req_callback,
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-unpin-remove-checkpoint.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-unpin-remove-checkpoint.cc
index 7430fa27405..6b0efdb011f 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-unpin-remove-checkpoint.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-unpin-remove-checkpoint.cc
@@ -70,11 +70,8 @@ cachetable_test (void) {
create_dummy_functions(f1);
void* v1;
- //void* v2;
- long s1;
- //long s2;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
CHECKPOINTER cp = toku_cachetable_get_checkpointer(ct);
toku_cachetable_begin_checkpoint(cp, NULL);
r = toku_test_cachetable_unpin_and_remove(f1, make_blocknum(1), remove_key_expect_checkpoint, NULL);
@@ -85,7 +82,7 @@ cachetable_test (void) {
NULL
);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin_and_remove(f1, make_blocknum(1), remove_key_expect_no_checkpoint, NULL);
toku_cachetable_verify(ct);
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-verify.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-verify.cc
index f8544ea82d3..67ff4b9669c 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-verify.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-simple-verify.cc
@@ -50,11 +50,8 @@ cachetable_test (void) {
r = toku_cachetable_openf(&f1, ct, fname1, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
void* v1;
- //void* v2;
- long s1;
- //long s2;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_DIRTY, make_pair_attr(8));
toku_cachetable_verify(ct);
toku_cachefile_close(&f1, false, ZERO_LSN);
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-test.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-test.cc
index 64f688c470d..a2b04d578db 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-test.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-test.cc
@@ -129,7 +129,7 @@ static void test_nested_pin (void) {
wc.flush_callback = flush_n;
toku_cachetable_put(f, make_blocknum(1), f1hash, &i0, make_pair_attr(1), wc, put_callback_nop);
r = toku_test_cachetable_unpin(f, make_blocknum(1), f1hash, CACHETABLE_CLEAN, make_pair_attr(test_object_size));
- r = toku_cachetable_get_and_pin(f, make_blocknum(1), f1hash, &vv, NULL, wc, fetch_n, def_pf_req_callback, def_pf_callback, true, f2);
+ r = toku_cachetable_get_and_pin(f, make_blocknum(1), f1hash, &vv, wc, fetch_n, def_pf_req_callback, def_pf_callback, true, f2);
assert(r==0);
assert(vv==&i0);
assert(i0==0);
@@ -215,12 +215,12 @@ static void test_multi_filehandles (void) {
wc.flush_callback = null_flush;
toku_cachetable_put(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), (void*)124, make_pair_attr(test_object_size), wc, put_callback_nop);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), CACHETABLE_DIRTY, make_pair_attr(0)); assert(r==0);
- r = toku_cachetable_get_and_pin(f2, make_blocknum(1), toku_cachetable_hash(f2, make_blocknum(1)), &v, NULL, wc, add123_fetch, def_pf_req_callback, def_pf_callback, true, (void*)123); assert(r==0);
+ r = toku_cachetable_get_and_pin(f2, make_blocknum(1), toku_cachetable_hash(f2, make_blocknum(1)), &v, wc, add123_fetch, def_pf_req_callback, def_pf_callback, true, (void*)123); assert(r==0);
assert((unsigned long)v==124);
- r = toku_cachetable_get_and_pin(f2, make_blocknum(2), toku_cachetable_hash(f2, make_blocknum(2)), &v, NULL, wc, add123_fetch, def_pf_req_callback, def_pf_callback, true, (void*)123); assert(r==0);
+ r = toku_cachetable_get_and_pin(f2, make_blocknum(2), toku_cachetable_hash(f2, make_blocknum(2)), &v, wc, add123_fetch, def_pf_req_callback, def_pf_callback, true, (void*)123); assert(r==0);
assert((unsigned long)v==125);
wc.write_extraargs = (void*)222;
- r = toku_cachetable_get_and_pin(f3, make_blocknum(2), toku_cachetable_hash(f3, make_blocknum(2)), &v, NULL, wc, add222_fetch, def_pf_req_callback, def_pf_callback, true, (void*)222); assert(r==0);
+ r = toku_cachetable_get_and_pin(f3, make_blocknum(2), toku_cachetable_hash(f3, make_blocknum(2)), &v, wc, add222_fetch, def_pf_req_callback, def_pf_callback, true, (void*)222); assert(r==0);
assert((unsigned long)v==224);
// we support only one close for a file handle
@@ -296,7 +296,7 @@ static void test_dirty(void) {
assert(dirty == 1);
assert(pinned == 0);
- r = toku_cachetable_get_and_pin(f, key, hkey, &value, NULL, wc,
+ r = toku_cachetable_get_and_pin(f, key, hkey, &value, wc,
test_dirty_fetch, def_pf_req_callback, def_pf_callback, true, 0);
assert(r == 0);
@@ -318,7 +318,7 @@ static void test_dirty(void) {
key = make_blocknum(2);
hkey = toku_cachetable_hash(f, key);
r = toku_cachetable_get_and_pin(f, key, hkey,
- &value, NULL, wc,
+ &value, wc,
test_dirty_fetch, def_pf_req_callback, def_pf_callback, true, 0);
assert(r == 0);
@@ -338,7 +338,7 @@ static void test_dirty(void) {
assert(pinned == 0);
r = toku_cachetable_get_and_pin(f, key, hkey,
- &value, NULL, wc,
+ &value, wc,
test_dirty_fetch, def_pf_req_callback, def_pf_callback, true, 0);
assert(r == 0);
@@ -429,11 +429,13 @@ static void test_size_resize(void) {
assert(r == 0);
void *current_value;
- long current_size;
- r = toku_cachetable_get_and_pin(f, key, hkey, &current_value, &current_size, wc, 0, def_pf_req_callback, def_pf_callback, true, 0);
+ r = toku_cachetable_get_and_pin(f, key, hkey, &current_value, wc, 0, def_pf_req_callback, def_pf_callback, true, 0);
assert(r == 0);
assert(current_value == value);
- assert(current_size == new_size);
+ PAIR_ATTR attr;
+ r = toku_cachetable_get_attr(f, key, hkey, &attr);
+ assert(r == 0);
+ assert(attr.size == new_size);
r = toku_test_cachetable_unpin(f, key, hkey, CACHETABLE_CLEAN, make_pair_attr(new_size));
assert(r == 0);
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-unpin-and-remove-test.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-unpin-and-remove-test.cc
index 1a8932e8cdf..5290db26597 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-unpin-and-remove-test.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-unpin-and-remove-test.cc
@@ -139,8 +139,8 @@ cachetable_put_evict_remove_test (int n) {
}
// get 0
- void *v; long s;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(0), hi[0], &v, &s, wc, fetch, def_pf_req_callback, def_pf_callback, true, 0);
+ void *v;
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(0), hi[0], &v, wc, fetch, def_pf_req_callback, def_pf_callback, true, 0);
assert(r == 0);
// remove 0
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-unpin-remove-and-checkpoint.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-unpin-remove-and-checkpoint.cc
index 0e44bf10349..9fe43672d39 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-unpin-remove-and-checkpoint.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-unpin-remove-and-checkpoint.cc
@@ -71,10 +71,7 @@ run_test (void) {
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
void* v1;
- //void* v2;
- long s1;
- //long s2;
- r = toku_cachetable_get_and_pin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
+ r = toku_cachetable_get_and_pin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), &v1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
toku_test_cachetable_unpin(
f1,
make_blocknum(1),
@@ -90,7 +87,6 @@ run_test (void) {
make_blocknum(1),
toku_cachetable_hash(f1, make_blocknum(1)),
&v1,
- &s1,
wc,
def_fetch,
def_pf_req_callback,
diff --git a/storage/tokudb/PerconaFT/ft/tests/cachetable-unpin-test.cc b/storage/tokudb/PerconaFT/ft/tests/cachetable-unpin-test.cc
index 3780b497bf2..e41181d9c2e 100644
--- a/storage/tokudb/PerconaFT/ft/tests/cachetable-unpin-test.cc
+++ b/storage/tokudb/PerconaFT/ft/tests/cachetable-unpin-test.cc
@@ -102,7 +102,6 @@ unpin_and_evictor_test(enum unpin_evictor_test_type test_type) {
evictor_test_helpers::disable_ev_thread(&ct->ev);
void* value2;
- long size2;
CACHETABLE_WRITE_CALLBACK wc = def_write_callback(NULL);
// this should put in the cachetable a pair of size 8
r = toku_cachetable_get_and_pin(
@@ -110,7 +109,6 @@ unpin_and_evictor_test(enum unpin_evictor_test_type test_type) {
make_blocknum(1),
1,
&value2,
- &size2,
wc,
def_fetch,
def_pf_req_callback,
diff --git a/storage/tokudb/PerconaFT/ft/tests/test-TDB2-pe.cc b/storage/tokudb/PerconaFT/ft/tests/test-TDB2-pe.cc
new file mode 100644
index 00000000000..fc7d5cc4368
--- /dev/null
+++ b/storage/tokudb/PerconaFT/ft/tests/test-TDB2-pe.cc
@@ -0,0 +1,178 @@
+/* -*- mode: C++; c-basic-offset: 4; indent-tabs-mode: nil -*- */
+// vim: ft=cpp:expandtab:ts=8:sw=4:softtabstop=4:
+#ident "$Id$"
+/*======
+This file is part of PerconaFT.
+
+
+Copyright (c) 2006, 2015, Percona and/or its affiliates. All rights reserved.
+
+ PerconaFT is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License, version 2,
+ as published by the Free Software Foundation.
+
+ PerconaFT is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with PerconaFT. If not, see <http://www.gnu.org/licenses/>.
+
+----------------------------------------
+
+ PerconaFT is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License, version 3,
+ as published by the Free Software Foundation.
+
+ PerconaFT is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with PerconaFT. If not, see <http://www.gnu.org/licenses/>.
+======= */
+
+#ident \
+ "Copyright (c) 2006, 2015, Percona and/or its affiliates. All rights reserved."
+
+/* The goal of this test. Make sure that inserts stay behind deletes. */
+
+#include "test.h"
+
+#include "cachetable/checkpoint.h"
+#include "ft-flusher-internal.h"
+#include "ft-flusher.h"
+#include <ft-cachetable-wrappers.h>
+
+static TOKUTXN const null_txn = 0;
+
+enum { NODESIZE = 1024, KSIZE = NODESIZE - 100, TOKU_PSIZE = 20 };
+
+CACHETABLE ct;
+FT_HANDLE ft;
+const char *fname = TOKU_TEST_FILENAME;
+
+static int update_func(DB *UU(db), const DBT *key, const DBT *old_val,
+ const DBT *UU(extra),
+ void (*set_val)(const DBT *new_val, void *set_extra),
+ void *set_extra) {
+ DBT new_val;
+ assert(old_val->size > 0);
+ if (verbose) {
+ printf("applying update to %s\n", (char *)key->data);
+ }
+ toku_init_dbt(&new_val);
+ set_val(&new_val, set_extra);
+ return 0;
+}
+
+static void doit() {
+ BLOCKNUM node_leaf;
+ BLOCKNUM node_root;
+ BLOCKNUM node_internal;
+ int r;
+
+ toku_cachetable_create(&ct, 500 * 1024 * 1024, ZERO_LSN, nullptr);
+ unlink(fname);
+ r = toku_open_ft_handle(fname, 1, &ft, NODESIZE, NODESIZE / 2,
+ TOKU_DEFAULT_COMPRESSION_METHOD, ct, null_txn,
+ toku_builtin_compare_fun);
+ assert(r == 0);
+
+ ft->options.update_fun = update_func;
+ ft->ft->update_fun = update_func;
+
+ toku_testsetup_initialize(); // must precede any other toku_testsetup calls
+ char *pivots[1];
+ pivots[0] = toku_strdup("kkkkk");
+ int pivot_len = 6;
+ r = toku_testsetup_leaf(ft, &node_leaf, 2, pivots, &pivot_len);
+ assert(r == 0);
+
+ toku_free(pivots[0]);
+
+ r = toku_testsetup_nonleaf(ft, 1, &node_internal, 1, &node_leaf, 0, 0);
+ assert(r == 0);
+
+ r = toku_testsetup_nonleaf(ft, 2, &node_root, 1, &node_internal, 0, 0);
+ assert(r == 0);
+
+ r = toku_testsetup_root(ft, node_root);
+ assert(r == 0);
+
+ r = toku_testsetup_insert_to_leaf(ft, node_leaf,
+ "a", // key
+ 2, // keylen
+ "aa", 3);
+ assert(r == 0);
+
+ r = toku_testsetup_insert_to_leaf(ft, node_leaf,
+ "z", // key
+ 2, // keylen
+ "zz", 3);
+ assert(r == 0);
+ char filler[400];
+ memset(filler, 0, sizeof(filler));
+ // now we insert filler data so that the rebalance
+ // keeps it at two nodes
+ r = toku_testsetup_insert_to_leaf(ft, node_leaf,
+ "b", // key
+ 2, // keylen
+ filler, sizeof(filler));
+ assert(r == 0);
+ r = toku_testsetup_insert_to_leaf(ft, node_leaf,
+ "y", // key
+ 2, // keylen
+ filler, sizeof(filler));
+ assert(r == 0);
+
+ r = toku_testsetup_insert_to_nonleaf(ft, node_internal, FT_INSERT,
+ "a", // key
+ 2, // keylen
+ "yy", 3);
+ assert(r == 0);
+
+ r = toku_testsetup_insert_to_nonleaf(ft, node_root, FT_INSERT,
+ "a", // key
+ 2, // keylen
+ "zz", 3);
+ assert(r == 0);
+
+ // at this point of time, the logical row count will be 6. This has to be
+ // manually set up as the tests work under the interface of the ft_send_msg
+ ft->ft->in_memory_logical_rows = 6;
+ // now run a checkpoint to get everything clean
+ CHECKPOINTER cp = toku_cachetable_get_checkpointer(ct);
+ r = toku_checkpoint(cp, NULL, NULL, NULL, NULL, NULL, CLIENT_CHECKPOINT);
+ assert_zero(r);
+ // now do a lookup on one of the keys, this should bring a leaf node up to
+ // date
+ DBT k;
+ struct check_pair pair = {2, "a", 3, "zz", 0};
+ r = toku_ft_lookup(ft, toku_fill_dbt(&k, "a", 2), lookup_checkf, &pair);
+ assert(r == 0);
+ assert(ft->ft->in_memory_logical_rows == 4);
+ FTNODE node;
+ // now lock and release the leaf node to make sure it is what we expect it to
+ // be.
+ toku_pin_node_with_min_bfe(&node, node_leaf, ft);
+ for (int i = 0; i < 20; i++) {
+ toku_ftnode_pe_callback(node, make_pair_attr(0xffffffff), ft->ft,
+ def_pe_finalize_impl, nullptr);
+ }
+ toku_unpin_ftnode(ft->ft, node);
+ assert(ft->ft->in_memory_logical_rows == 6);
+
+ r = toku_close_ft_handle_nolsn(ft, 0);
+ assert(r == 0);
+ toku_cachetable_close(&ct);
+}
+
+int test_main(int argc __attribute__((__unused__)),
+ const char *argv[] __attribute__((__unused__))) {
+ default_parse_args(argc, argv);
+ doit();
+ return 0;
+}
diff --git a/storage/tokudb/PerconaFT/ft/tests/test-TDB89.cc b/storage/tokudb/PerconaFT/ft/tests/test-TDB89.cc
new file mode 100644
index 00000000000..9371a3a07b9
--- /dev/null
+++ b/storage/tokudb/PerconaFT/ft/tests/test-TDB89.cc
@@ -0,0 +1,208 @@
+/* -*- mode: C++; c-basic-offset: 4; indent-tabs-mode: nil -*- */
+// vim: ft=cpp:expandtab:ts=8:sw=4:softtabstop=4:
+#ident "$Id$"
+/*======
+This file is part of PerconaFT.
+
+
+Copyright (c) 2006, 2015, Percona and/or its affiliates. All rights reserved.
+
+ PerconaFT is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License, version 2,
+ as published by the Free Software Foundation.
+
+ PerconaFT is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with PerconaFT. If not, see <http://www.gnu.org/licenses/>.
+
+----------------------------------------
+
+ PerconaFT is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License, version 3,
+ as published by the Free Software Foundation.
+
+ PerconaFT is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with PerconaFT. If not, see <http://www.gnu.org/licenses/>.
+======= */
+
+#ident \
+ "Copyright (c) 2006, 2015, Percona and/or its affiliates. All rights reserved."
+
+/* The goal of this test. Make sure that inserts stay behind deletes. */
+
+#include "test.h"
+
+#include "cachetable/checkpoint.h"
+#include "ft-flusher-internal.h"
+#include "ft-flusher.h"
+#include <ft-cachetable-wrappers.h>
+
+static TOKUTXN const null_txn = 0;
+
+enum { NODESIZE = 1024, KSIZE = NODESIZE - 100, TOKU_PSIZE = 20 };
+
+CACHETABLE ct;
+FT_HANDLE ft;
+const char *fname = TOKU_TEST_FILENAME;
+
+static int update_func(DB *UU(db), const DBT *key, const DBT *old_val,
+ const DBT *UU(extra),
+ void (*set_val)(const DBT *new_val, void *set_extra),
+ void *set_extra) {
+ DBT new_val;
+ assert(old_val->size > 0);
+ if (verbose) {
+ printf("applying update to %s\n", (char *)key->data);
+ }
+ toku_init_dbt(&new_val);
+ set_val(&new_val, set_extra);
+ return 0;
+}
+
+// callback functions for toku_ft_flush_some_child
+static bool destroy_bn(void *UU(extra)) { return true; }
+
+static bool recursively_flush_should_not_happen(FTNODE UU(child),
+ void *UU(extra)) {
+ assert(false);
+}
+
+static int child_to_flush(FT UU(h), FTNODE parent, void *UU(extra)) {
+ assert(parent->height == 1);
+ assert(parent->n_children == 1);
+ return 0;
+}
+
+static void dummy_update_status(FTNODE UU(child), int UU(dirtied),
+ void *UU(extra)) {}
+
+static void doit() {
+ BLOCKNUM node_leaf;
+ BLOCKNUM node_root;
+ BLOCKNUM node_internal;
+ int r;
+
+ toku_cachetable_create(&ct, 500 * 1024 * 1024, ZERO_LSN, nullptr);
+ unlink(fname);
+ r = toku_open_ft_handle(fname, 1, &ft, NODESIZE, NODESIZE / 2,
+ TOKU_DEFAULT_COMPRESSION_METHOD, ct, null_txn,
+ toku_builtin_compare_fun);
+ assert(r == 0);
+
+ ft->options.update_fun = update_func;
+ ft->ft->update_fun = update_func;
+
+ toku_testsetup_initialize(); // must precede any other toku_testsetup calls
+ char *pivots[1];
+ pivots[0] = toku_strdup("kkkkk");
+ int pivot_len = 6;
+ r = toku_testsetup_leaf(ft, &node_leaf, 2, pivots, &pivot_len);
+ assert(r == 0);
+
+ toku_free(pivots[0]);
+
+ r = toku_testsetup_nonleaf(ft, 1, &node_internal, 1, &node_leaf, 0, 0);
+ assert(r == 0);
+
+ r = toku_testsetup_nonleaf(ft, 2, &node_root, 1, &node_internal, 0, 0);
+ assert(r == 0);
+
+ r = toku_testsetup_root(ft, node_root);
+ assert(r == 0);
+
+ r = toku_testsetup_insert_to_leaf(ft, node_leaf,
+ "a", // key
+ 2, // keylen
+ "aa", 3);
+ assert(r == 0);
+
+ r = toku_testsetup_insert_to_leaf(ft, node_leaf,
+ "z", // key
+ 2, // keylen
+ "zz", 3);
+ assert(r == 0);
+ char filler[400];
+ memset(filler, 0, sizeof(filler));
+ // now we insert filler data so that the rebalance
+ // keeps it at two nodes
+ r = toku_testsetup_insert_to_leaf(ft, node_leaf,
+ "b", // key
+ 2, // keylen
+ filler, sizeof(filler));
+ assert(r == 0);
+ r = toku_testsetup_insert_to_leaf(ft, node_leaf,
+ "y", // key
+ 2, // keylen
+ filler, sizeof(filler));
+ assert(r == 0);
+
+ r = toku_testsetup_insert_to_nonleaf(ft, node_internal, FT_INSERT,
+ "a", // key
+ 2, // keylen
+ "yy", 3);
+ assert(r == 0);
+
+ r = toku_testsetup_insert_to_nonleaf(ft, node_root, FT_INSERT,
+ "a", // key
+ 2, // keylen
+ "zz", 3);
+ assert(r == 0);
+
+ // at this point of time, the logical row count will be 6. This has to be
+ // manually set up as the tests work under the interface of the ft_send_msg
+ ft->ft->in_memory_logical_rows = 6;
+ // now run a checkpoint to get everything clean
+ CHECKPOINTER cp = toku_cachetable_get_checkpointer(ct);
+ r = toku_checkpoint(cp, NULL, NULL, NULL, NULL, NULL, CLIENT_CHECKPOINT);
+ assert_zero(r);
+ // now do a lookup on one of the keys, this should bring a leaf node up to
+ // date
+ DBT k;
+ struct check_pair pair = {2, "a", 3, "zz", 0};
+ r = toku_ft_lookup(ft, toku_fill_dbt(&k, "a", 2), lookup_checkf, &pair);
+ assert(r == 0);
+ assert(ft->ft->in_memory_logical_rows == 4);
+
+ // now lock and release the leaf node to make sure it is what we expect it to
+ // be.
+ FTNODE node = NULL;
+ ftnode_fetch_extra bfe;
+ bfe.create_for_min_read(ft->ft);
+ toku_pin_ftnode_with_dep_nodes(
+ ft->ft, node_internal, toku_cachetable_hash(ft->ft->cf, node_internal),
+ &bfe, PL_WRITE_EXPENSIVE, 0, NULL, &node, true);
+ assert(node->height == 1);
+ assert(node->n_children == 1);
+
+ struct flusher_advice fa;
+ flusher_advice_init(&fa, child_to_flush, destroy_bn,
+ recursively_flush_should_not_happen, default_merge_child,
+ dummy_update_status, default_pick_child_after_split,
+ NULL);
+
+ // do the flush which forces an evict of the leaf. logical row count back to
+ // 6 before the flush
+ toku_ft_flush_some_child(ft->ft, node, &fa);
+
+ assert(ft->ft->in_memory_logical_rows == 5);
+
+ r = toku_close_ft_handle_nolsn(ft, 0);
+ assert(r == 0);
+ toku_cachetable_close(&ct);
+}
+
+int test_main(int argc __attribute__((__unused__)),
+ const char *argv[] __attribute__((__unused__))) {
+ default_parse_args(argc, argv);
+ doit();
+ return 0;
+}