summaryrefslogtreecommitdiff
path: root/c_src
diff options
context:
space:
mode:
Diffstat (limited to 'c_src')
-rw-r--r--c_src/permdb.c63
1 files changed, 0 insertions, 63 deletions
diff --git a/c_src/permdb.c b/c_src/permdb.c
index bdb8f39..e12ef6b 100644
--- a/c_src/permdb.c
+++ b/c_src/permdb.c
@@ -110,15 +110,9 @@ get_node_from_dirtynodes(permdb_object *state, const char *key)
#if DEBUG_CACHE
fprintf(stderr, "getting key %s, ", key);
#endif
- //struct nodecache *lookupnode = malloc(sizeof(struct nodecache) + strlen(key) + 1);
- //strcpy(lookupnode->key, key);
- //fprintf(stderr, "sending in lookup node %p: ", lookupnode);
- //print_hex(lookupnode, sizeof(struct nodecache) + strlen(key) + 1);
struct nodecache *node;
HASH_FIND(hh, state->dirtynodes, key, strlen(key), node);
- //struct nodecache *node = (struct nodecache *)hashtabsearch(state->dirtynodes, lookupnode);
- //free(lookupnode);
if (node == NULL) {
#if DEBUG_CACHE
fprintf(stderr, "found nothing\n");
@@ -160,11 +154,9 @@ put_node_in_dirtynodes(permdb_object *state, const char *key, node_object value)
}
node = malloc(sizeof(struct nodecache));
- //strcpy(node->key, key);
node->value = value;
node->key = strdup(key);
HASH_ADD(hh, state->dirtynodes, key[0], strlen(node->key), node);
- //hashtabaddreplace(state->dirtynodes, node);
}
static int
@@ -1122,80 +1114,27 @@ string_length_comparison(struct nodecache *a, struct nodecache *b) {
}
}
-#if 0
-static char **
-sorted(permdb_object *state, unsigned int ndirtynodes)
-{
- struct keylist keylist;
- keylist.keys = malloc(sizeof(char *) * ndirtynodes);
- keylist.pos = 0;
- hashtabforeach(state->dirtynodes, add_entry_to_keylist, &keylist);
-
-#if 0
- fprintf(stderr, "before sort\n");
- for (int i = 0; i < ndirtynodes; i++) {
- fprintf(stderr, " %s\n", keylist.keys[i]);
- }
-#endif
-
- qsort(keylist.keys, ndirtynodes, sizeof(char *), string_length_comparison);
-#if 0
- fprintf(stderr, "after sort\n");
- for (int i = 0; i < ndirtynodes; i++) {
- fprintf(stderr, " %p %s\n", keylist.keys[i], keylist.keys[i]);
- }
-#endif
- return keylist.keys;
-}
-#endif
-
-#if 0
-static int
-count_entry(void *ptr, void *arg)
-{
- int *flag = (int *)arg;
- *flag += 1;
- return 0;
-}
-#endif
-
int
committree(permdb_object *state)
{
get_node_from_dirtynodes(state, "");
- //unsigned int ndirtynodes = 0;
- //hashtabforeach(state->dirtynodes, count_entry, &ndirtynodes);
- //fprintf(stderr, "committree: first node %p\n", state->dirtynodes);
if (state->dirtynodes == NULL) {
return 0;
}
HASH_SORT(state->dirtynodes, string_length_comparison);
- //fprintf(stderr, "committree: sorted nodes\n");
- //char **commitlist = sorted(state, ndirtynodes);
struct nodecache *lastobject = ELMT_FROM_HH(state->dirtynodes->hh.tbl, state->dirtynodes->hh.tbl->tail);
- //fprintf(stderr, "committree: last object key: %s\n", lastobject->key);
if (lastobject->key[0] != '\0') {
fprintf(stderr, "sorted list doesn't end with root node\n");
return -1;
}
- //unsigned int ncommits = ndirtynodes;
-// unsigned int i;
#if DEBUG_WRITE
fprintf(stderr, "committing %d dirty nodes at offset %llu\n", ncommits, bf_total_length(state->indexfile));
#endif
struct nodecache *node, *tmp;
HASH_ITER(hh, state->dirtynodes, node, tmp) {
-#if 0
- fprintf(stderr, "committree: iterate node %s: ", node->key);
- fprintf(stderr, "%016llx %016llx %016llx %016llx\n",
- node->value.data[0],
- node->value.data[1],
- node->value.data[2],
- node->value.data[3]);
-#endif
assert(get_entry_in_node(node->value, 0) != NODE_ENTRY_DIRTY_NODE);
assert(get_entry_in_node(node->value, 1) != NODE_ENTRY_DIRTY_NODE);
assert(get_entry_in_node(node->value, 2) != NODE_ENTRY_DIRTY_NODE);
@@ -1213,8 +1152,6 @@ committree(permdb_object *state)
}
}
- //free(commitlist);
-
#if DEBUG_WRITE
fprintf(stderr, "writing data commit trailer at offset %llu\n", bf_total_length(state->datafile));
#endif