Using the holidays for a 2-week coding session. Writing a new transactional memory manager that’s O(1) for all operations, completely non-blocking and progress-guaranteeing, and uses atomics only for writes.
-
Show this thread
-
Replying to @TimSweeneyEpic
Would something based on KCAS be more efficient? Basically each TX first create a list of CAS to execute and on conflict rollback the the CAS it competed. it's called Reagent http://ccs.neu.edu/home/turon/reagents.pdf … One page C# prototypehttps://gist.github.com/maximecaron/6a69055e917d1a29e11dff648252d0c2 …
1 reply 0 retweets 1 like -
Replying to @maximecaron
That’s the gist of my approach in C++. Do CAS as code runs, build up a CAS-undo list in case we abort, and ensure every CAS tracks transaction IDs and can abort and roll back other transactions and be aborted by them.
1 reply 0 retweets 0 likes
But to CAS a multi-word data structure, you need to either block or heap allocated it and GC-manage it, thus the need for an object manager and garbage collector.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.