Commit 9d233260 authored by Rich Prohaska's avatar Rich Prohaska

add keysize and valsize

git-svn-id: file:///svn/tokudb@489 c7de825b-a66e-492c-adef-691d508d4ae1
parent c2227cb6
...@@ -18,11 +18,14 @@ enum { BOUND_INCREASE_PER_ITERATION = SERIAL_SPACING*ITEMS_TO_INSERT_PER_ITERATI ...@@ -18,11 +18,14 @@ enum { BOUND_INCREASE_PER_ITERATION = SERIAL_SPACING*ITEMS_TO_INSERT_PER_ITERATI
enum { NODE_SIZE = 1<<20 }; enum { NODE_SIZE = 1<<20 };
int nodesize = NODE_SIZE;
int keysize = sizeof (long long);
int valsize = sizeof (long long);
CACHETABLE ct; CACHETABLE ct;
BRT t; BRT t;
void setup (int nodesize) { void setup (void) {
printf("nodesize=%d\n", nodesize);
int r; int r;
unlink(fname); unlink(fname);
r = brt_create_cachetable(&ct, 0); assert(r==0); r = brt_create_cachetable(&ct, 0); assert(r==0);
...@@ -41,11 +44,13 @@ void long_long_to_array (unsigned char *a, unsigned long long l) { ...@@ -41,11 +44,13 @@ void long_long_to_array (unsigned char *a, unsigned long long l) {
} }
void insert (long long v) { void insert (long long v) {
unsigned char kc[8], vc[8]; unsigned char kc[keysize], vc[valsize];
DBT kt, vt; DBT kt, vt;
memset(kc, 0, sizeof kc);
long_long_to_array(kc, v); long_long_to_array(kc, v);
memset(vc, 0, sizeof vc);
long_long_to_array(vc, v); long_long_to_array(vc, v);
brt_insert(t, fill_dbt(&kt, kc, 8), fill_dbt(&vt, vc, 8), 0, 0); brt_insert(t, fill_dbt(&kt, kc, keysize), fill_dbt(&vt, vc, valsize), 0, 0);
} }
void serial_insert_from (long long from) { void serial_insert_from (long long from) {
...@@ -89,13 +94,10 @@ void biginsert (long long n_elements, struct timeval *starttime) { ...@@ -89,13 +94,10 @@ void biginsert (long long n_elements, struct timeval *starttime) {
} }
void usage() { void usage() {
printf("benchmark-test [--nodesize NODESIZE] [TOTALITEMS]\n"); printf("benchmark-test [--nodesize NODESIZE] [--keysize KEYSIZE] [--valsize VALSIZE] [TOTALITEMS]\n");
} }
int main (int argc, char *argv[]) { int main (int argc, char *argv[]) {
/* set defaults */
int nodesize = NODE_SIZE;
/* parse parameters */ /* parse parameters */
int i; int i;
for (i=1; i<argc; i++) { for (i=1; i<argc; i++) {
...@@ -110,6 +112,22 @@ int main (int argc, char *argv[]) { ...@@ -110,6 +112,22 @@ int main (int argc, char *argv[]) {
continue; continue;
} }
if (strcmp(arg, "--keysize") == 0) {
if (i+1 < argc) {
i++;
keysize = atoi(argv[i]);
}
continue;
}
if (strcmp(arg, "--valsize") == 0) {
if (i+1 < argc) {
i++;
valsize = atoi(argv[i]);
}
continue;
}
usage(); usage();
return 1; return 1;
} }
...@@ -127,8 +145,11 @@ int main (int argc, char *argv[]) { ...@@ -127,8 +145,11 @@ int main (int argc, char *argv[]) {
total_n_items = 1LL<<22; // 1LL<<16 total_n_items = 1LL<<22; // 1LL<<16
} }
printf("nodesize=%d\n", nodesize);
printf("keysize=%d\n", keysize);
printf("valsize=%d\n", valsize);
printf("Serial and random insertions of %d per batch\n", ITEMS_TO_INSERT_PER_ITERATION); printf("Serial and random insertions of %d per batch\n", ITEMS_TO_INSERT_PER_ITERATION);
setup(nodesize); setup();
gettimeofday(&t1,0); gettimeofday(&t1,0);
biginsert(total_n_items, &t1); biginsert(total_n_items, &t1);
gettimeofday(&t2,0); gettimeofday(&t2,0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment