4 ms·
I implemented multiversion concurrency control and a poor but safe lock free algorithm. I am still coming up with rules. As the Serializable Snapshot Isolatio
by samsquire 4y ago
I implemented multiversion concurrency control and a poor but safe lock free algorithm.
I am still coming up with rules. As the Serializable Snapshot Isolation paper attests, you can avoid dangerous 2 reads and writes to the same data structure with an algorithm (in the paper) with timestamp ordering and trying to detect cycles with a heuristic in the graph with two booleans inConflict and outConflict.
The answer to concurrency bugs is that languages implement MVCC.
See my ideas4 page for concurrency control ideas.
Most software doesn't scale with threads and doesn't offer true parallelism. In other words programs don't use threads to their full potential.
I have an idea for LMAX disruptors with a multiproducer multiconsumer ringbuffer in ideas4. Don't block the event loop!
I like process calculus and pi calculus and CSP. But I think we can combine them altogether.
Universal constructors and work stealing and compare and set is a powerful primitive for concurrency.
HTTPS://GitHub.com/samsquire/multiversion-concurrency-control
HTTPS://GitHub.com/samsquire/compare-and-swap-sort
HTTPS://GitHub.com/samsquire/ideas4