Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 9 additions & 7 deletions concurrent_pmdk/src/btree.h
Original file line number Diff line number Diff line change
Expand Up @@ -922,9 +922,9 @@ class page {
// print a node
void print() {
if (hdr.leftmost_ptr == NULL)
printf("[%d] leaf %x \n", this->hdr.level, pmemobj_oid(this).off);
printf("[%d] leaf %lx \n", this->hdr.level, pmemobj_oid(this).off);
else
printf("[%d] internal %x \n", this->hdr.level, pmemobj_oid(this).off);
printf("[%d] internal %lx \n", this->hdr.level, pmemobj_oid(this).off);
printf("last_index: %d\n", hdr.last_index);
printf("switch_counter: %d\n", hdr.switch_counter);
printf("search direction: ");
Expand All @@ -934,12 +934,12 @@ class page {
printf("<-\n");

if (hdr.leftmost_ptr != NULL)
printf("%x ", hdr.leftmost_ptr);
printf("%lx ", hdr.leftmost_ptr);

for (int i = 0; records[i].ptr != NULL; ++i)
printf("%ld,%x ", records[i].key, records[i].ptr);
printf("%ld,%lx ", records[i].key, records[i].ptr);

printf("%x ", hdr.sibling_ptr.oid.off);
printf("%lx ", hdr.sibling_ptr.oid.off);

printf("\n");
}
Expand Down Expand Up @@ -971,7 +971,9 @@ void btree::constructor(PMEMobjpool *pool) {
pop = pool;
POBJ_NEW(pop, &root, page, NULL, NULL);
D_RW(root)->constructor();
pmemobj_persist(pop, D_RW(root), sizeof(page));
height = 1;
pmemobj_persist(pop, this, sizeof(btree));
}

void btree::setNewRoot(TOID(page) new_root) {
Expand All @@ -997,7 +999,7 @@ char *btree::btree_search(entry_key_t key) {
}

if (!t) {
printf("NOT FOUND %lu, t = %x\n", key, t);
printf("NOT FOUND %lu, t = %lx\n", key, t);
return NULL;
}

Expand Down Expand Up @@ -1124,7 +1126,7 @@ void btree::printAll() {
pthread_mutex_lock(&print_mtx);
int total_keys = 0;
TOID(page) leftmost = root;
printf("root: %x\n", root.oid.off);
printf("root: %lx\n", root.oid.off);
if (root.oid.off) {
do {
TOID(page) sibling = leftmost;
Expand Down
16 changes: 9 additions & 7 deletions single_pmdk/src/btree.h
Original file line number Diff line number Diff line change
Expand Up @@ -799,9 +799,9 @@ class page {
// print a node
void print() {
if (hdr.leftmost_ptr == NULL)
printf("[%d] leaf %x \n", this->hdr.level, pmemobj_oid(this).off);
printf("[%d] leaf %lx \n", this->hdr.level, pmemobj_oid(this).off);
else
printf("[%d] internal %x \n", this->hdr.level, pmemobj_oid(this).off);
printf("[%d] internal %lx \n", this->hdr.level, pmemobj_oid(this).off);
printf("last_index: %d\n", hdr.last_index);
printf("switch_counter: %d\n", hdr.switch_counter);
printf("search direction: ");
Expand All @@ -811,12 +811,12 @@ class page {
printf("<-\n");

if (hdr.leftmost_ptr != NULL)
printf("%x ", hdr.leftmost_ptr);
printf("%lx ", hdr.leftmost_ptr);

for (int i = 0; records[i].ptr != NULL; ++i)
printf("%ld,%x ", records[i].key, records[i].ptr);
printf("%ld,%lx ", records[i].key, records[i].ptr);

printf("%x ", hdr.sibling_ptr.oid.off);
printf("%lx ", hdr.sibling_ptr.oid.off);

printf("\n");
}
Expand Down Expand Up @@ -848,7 +848,9 @@ void btree::constructor(PMEMobjpool *pool) {
pop = pool;
POBJ_NEW(pop, &root, page, NULL, NULL);
D_RW(root)->constructor();
pmemobj_persist(pop, D_RW(root), sizeof(page));
height = 1;
pmemobj_persist(pop, this, sizeof(btree));
}

void btree::setNewRoot(TOID(page) new_root) {
Expand All @@ -874,7 +876,7 @@ char *btree::btree_search(entry_key_t key) {
}

if (!t) {
printf("NOT FOUND %lu, t = %x\n", key, t);
printf("NOT FOUND %lu, t = %lx\n", key, t);
return NULL;
}

Expand Down Expand Up @@ -995,7 +997,7 @@ void btree::btree_search_range(entry_key_t min, entry_key_t max,
void btree::printAll() {
int total_keys = 0;
TOID(page) leftmost = root;
printf("root: %x\n", root.oid.off);
printf("root: %lx\n", root.oid.off);
if (root.oid.off) {
do {
TOID(page) sibling = leftmost;
Expand Down
49 changes: 3 additions & 46 deletions single_pmdk/src/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ int main(int argc, char **argv) {
}
}

int selected = num_data * selection_ratio;
// Make or Read persistent pool
TOID(btree) bt = TOID_NULL(btree);
PMEMobjpool *pop;
Expand All @@ -65,8 +64,6 @@ int main(int argc, char **argv) {

// Reading data
entry_key_t *keys = new entry_key_t[num_data];
entry_key_t *query = new entry_key_t[2000];
unsigned long *bufs = new unsigned long[num_data];

ifstream ifs;
ifs.open(input_path);
Expand All @@ -77,23 +74,8 @@ int main(int argc, char **argv) {
exit(-1);
}

for (int i = 0; i < num_data; ++i) {
for (int i = 0; i < num_data; ++i)
ifs >> keys[i];
}

ifs.close();

ifs.open("../workload/number1.txt");
if (!ifs) {
cout << "query loading error!" << endl;

delete[] query;
exit(-1);
}

for (int i = 0; i < 2000; ++i) {
ifs >> query[i];
}

ifs.close();

Expand All @@ -110,7 +92,7 @@ int main(int argc, char **argv) {
(end.tv_nsec - start.tv_nsec);
elapsed_time /= 1000;

printf("INSERT elapsed_time: %ld, Avg: %f\n", elapsed_time,
printf("INSERT elapsed_time: %lld, Avg: %f\n", elapsed_time,
(double)elapsed_time / num_data);
// D_RW(bt)->printAll();
}
Expand Down Expand Up @@ -139,36 +121,11 @@ int main(int argc, char **argv) {
(end.tv_nsec - start.tv_nsec);
elapsed_time /= 1000;

printf("SEARCH elapsed_time: %ld, Avg: %f\n", elapsed_time,
printf("SEARCH elapsed_time: %lld, Avg: %f\n", elapsed_time,
(double)elapsed_time / (num_data - Dead));
}

clear_cache();

{
clock_gettime(CLOCK_MONOTONIC, &start);

int k = 1000;
for (int i = 0; i < k; i++) {
if (query[i] + selected < 100000000)
D_RW(bt)->btree_search_range(query[i], query[i] + selected, bufs);
else
k++;
}

clock_gettime(CLOCK_MONOTONIC, &end);

long long elapsed_time = (end.tv_sec - start.tv_sec) * 1000000000 +
(end.tv_nsec - start.tv_nsec);
elapsed_time /= 1000;

printf("Range SEARCH elapsed_time: %ld, Avg: %f\n", elapsed_time,
(double)elapsed_time / num_data);
}

delete[] keys;
delete[] query;
delete[] bufs;

pmemobj_close(pop);
return 0;
Expand Down