Versioning seems to work properlygit add libcuckoo/cuckoohash_map.hh
Added more tests, implemented version counters
Improved version unlocking to not require knowing version number. moving to per-bucket versioning
Finished per bucket versioning.
When searching for cuckoo path, only lock_path
Removed partials to save space
Added migrate_bucket, find+insert with migration. Still need to add support for checking if bucket has moved
Added resize stuff for inserts + deletes. Still need to figure out expansion, when to return error from cuckooing. Errors on one test because triggers expansion
Removed updates
Added some comments for new methods
Added creation of new migrate thread activated by threshold pecent moved buckets. Currently segfaulting because dereferencing nullptr in insert. Need to figure out why asserts not being activated
Changed to debugging mode, so actually using my assertions...
Fixing assertion errors (P and W were same), queue has to check for emptiness before dequeuing.
Need to have two hazard pointers per thread now
Crappy performance (as expected), but seems resize upwards properly, minus not garbage collecting old tables -- must not be unsetting hazard pointer correctly. Also, big problem with too fast inserts. If new table fills up before old is fully moved, oh noes
Unset hazard pointer appropriately in expand_end.
No need to lock_path in slot_search/cuckoopath_search because check for incorrect paths in move anyways! Removing lock_path etc.
More updates for resizing
Added resizing test
When resizing, guarantee moving at least one bucket for an insert/delete