In my quest for a good design for multi-cpu pike I ran across this
rather interesting design for a lock free hash table:

http://blogs.azulsystems.com/cliff/2007/03/a_nonblocking_h.html

The most complete description of it is a taped talk:

http://video.google.com/videoplay?docid=2139967204534450862

The way it can be resized without locking is pretty cool. Several
threads can even share the work to carry out the copying.

His design parameters for the hash table are a bit unorthodox though:

o  Size is always power of two (not prime).
o  It's closed.
o  Reprobing is linear.
o  Keys are never deleted (a "resize" to the same size is necessary).
o  It never shrinks.

The first three together are a bit scary if the hash function is bad,
but maybe it's just me..

This could put to good use for the shared string table, but probably
more places too. I think it'd be good to implement shrinking, though.
  • Lock free hash map... Martin Stjernholm, Roxen IS @ Pike developers forum
    • Lock free has... Jonas Walld�n @ Pike developers forum
      • Lock free... Martin Stjernholm, Roxen IS @ Pike developers forum
        • Re: L... Stephen R. van den Berg
          • R... Martin Stjernholm, Roxen IS @ Pike developers forum
            • ... Stephen R. van den Berg
              • ... Henrik Grubbstr�m (Lysator) @ Pike (-) developers forum
                • ... Stephen R. van den Berg
              • ... Martin Stjernholm, Roxen IS @ Pike developers forum
                • ... Stephen R. van den Berg
                • ... Martin Stjernholm, Roxen IS @ Pike developers forum

Reply via email to