My favorites | Sign in
Project Logo
                
Show all Featured downloads:
nbds.0.4.3.tar.gz
Feeds:
People details
Project owners:
  jdybnis

C implementations of several scalable non-blocking data structures for x86 and x86-64.


Status

Overall the package is pre-alpha. It is still under development.

Tested under Linux with gcc 4.1-4.3 with Ubuntu 8.10. Probably works on Mac OS 10.5 with gcc 4.1-4.2.


News


What's Inside

Lock-Free Transactional Map

Lock-free transactional key-value store. The transactional semantics follow database-style snapshot isolation using multi-version concurrency control.

With snapshot isolation updates are versioned. Transactions are isolated from changes after they begin. They always see a consistent view of the structure. Conversely, a transaction's updates are invisible to all other transactions until it commits. When a transaction tries to commit its writes are checked for conflicts against any committed concurrent transactions. If the system detects a conflict then the committing transaction rolls back. Otherwise its updates become visible to future transactions.

Lock-Free Skiplist

The lock-free skiplist data structure created by Maurice Herlihy, Yossi Lev, and Nir Shavit. See Herlihy's and Shavit's book "The Art of Multiprocessor Programming" and Kir Fraser's dissertation "Practical Lock Freedom"

http://www.amazon.com/Art-Multiprocessor-Programming-Maurice-Herlihy/dp/0123705916/

http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-579.pdf

I've generalized the data structure to support update operations like set() and CAS() in addition to the normal add() and remove() operations, while preserving the lock-free property and linearizability.

Lock-Free Hashtable

Cliff Click's lock-free hash table from

http://www.azulsystems.com/events/javaone_2008/2008_CodingNonBlock.pdf
http://sourceforge.net/projects/high-scale-lib

License

All code in this project is public domain, except the unit test framework (which was not written by me). The hash function (murmur hash 2.0) is not written by me, but is public domain.


Contact

Feel free to email me with comments or questions: jdybnis at gmail.









Hosted by Google Code