http://concurrencyfreaks.blogspot.com/2014/08/a-lock-free-hash-table-by-cliff-click.html
The algorithm is not trivial at all with many interesting subtleties, like the key and the value being in adjacent entries in the array to reduce cache-misses, or the entry on the array for each key being "immutable" once assigned.
You can check out his presentation at Google
https://www.youtube.com/watch?v=HJ-719EGIts
There is another version of the same presentation given at Stanford just a few days before
https://www.youtube.com/watch?v=WYXgtXWejRM
http://preshing.com/20130605/the-worlds-simplest-lock-free-hash-table/
A Non-Blocking ConcurrentHash(Map|Trie)
http://tutorials.jenkov.com/java-concurrency/non-blocking-algorithms.html
The algorithm is not trivial at all with many interesting subtleties, like the key and the value being in adjacent entries in the array to reduce cache-misses, or the entry on the array for each key being "immutable" once assigned.
You can check out his presentation at Google
https://www.youtube.com/watch?v=HJ-719EGIts
There is another version of the same presentation given at Stanford just a few days before
https://www.youtube.com/watch?v=WYXgtXWejRM
http://preshing.com/20130605/the-worlds-simplest-lock-free-hash-table/
A Non-Blocking ConcurrentHash(Map|Trie)
http://tutorials.jenkov.com/java-concurrency/non-blocking-algorithms.html