+ fix makefile to compute dependency info as a side-effect of compilation (-MF) + support integer keys for ht + optimize tracing code, still too much overhead + use NULL instead of a sentinal node in skiplist and list + make the interfaces for all data structures consistent + make list and skiplist use string keys + optimize integer keys + ht_print() + iterators memory manangement ------------------ - make rcu yield when its buffer gets full instead of throwing an assert - alternate memory reclamation schemes: hazard pointers and/or reference counting - verify the key management in list, skiplist, and hashtable quality ------- - transaction tests - port perf tests from lib-high-scale - characterize the performance of hashtable, list and skiplist - validate arguments in interface functions - document usage of the library - document algorithms optimization ------------ - investigate 16 byte CAS; ht can store GUIDs inline instead of pointers to actual keys - shortcut from write-set to entries/nodes - use a shared scan for write-set validation, similar to ht copy logic - experiment with the performance impact of not passing the hash between functions in ht - experiment with embedding the keys in the list/skiplist nodes features -------- - a version of hashtable for 32bit keys and values - verify correctness on 32 bit platforms - allow values of 0 to be inserted into maps (change DOES_NOT_EXIST to something else) - seperate nbd_malloc/nbd_free into general purpose malloc/free replacement