
Am Wednesday 06 January 2010 02:18:50 schrieb Bob Walters:
One of the biggest challenges I'm seeing with high throughput on map is that operations like insert() and erase() cannot be done to concurrently by multiple threads, and consequently those operations become a bottlneck. I'm doing operations like find() and updates (to different entries) in parallel. A map implementation which internally segmented itself into sections under independent mutexes in order to permit highly concurrent modifications of any kind would be a big help. Anyone know of any such implementations?
any implementation based on shadowpaging, e.g. this open source one: http://1978th.net/tokyocabinet/ I don't know any internals of Berkeley DB, but it also supports concurrent modifications. the containers I describe here: https://svn.boost.org/svn/boost/sandbox/persistent/libs/persistent/doc/html/... also support concurrent modifications, since their container nodes are implemented as MVCControlled objects. but they are much less efficient in absolute terms than a low-level container implementation.