Improve ConcurrentMap_Linear scalability
authorJeff Preshing <filter-github@preshing.com>
Thu, 11 Feb 2016 17:27:24 +0000 (12:27 -0500)
committerJeff Preshing <filter-github@preshing.com>
Thu, 11 Feb 2016 17:27:24 +0000 (12:27 -0500)
commitc7fafdd7d1e574307901bb196685acf787ca23e8
tree712c1819c1f0cf6aac47bb62553b1a56ba94783b
parent6a7fe65045a50f9830aa674fcacf16f4e580eaa2
Improve ConcurrentMap_Linear scalability

Removed shared variable Table::valuesRemaining. Instead, detect and
handle overflows during migration, like ConcurrentMap_LeapFrog.

Added #defines to force migration overflows during testing:
JUNCTION_LINEAR_FORCE_MIGRATION_OVERFLOWS

6 cores runs ~57% faster on Win32.
junction/ConcurrentMap_LeapFrog.h
junction/ConcurrentMap_Linear.cpp
junction/ConcurrentMap_Linear.h
junction/details/Grampa.h
junction/details/LeapFrog.h
junction/details/Linear.cpp
junction/details/Linear.h