http://med.ngntfwmwovvku6eqi7dzzgzv2wzlvq2cqtqha7ccgzub2xnivsuxnuyd.onion/@tylerneely/fear-and-loathing-in-lock-free-programming-7158b1cdd50c
The basic idea is: read the pointer to the root copy the things we want to change into new tree nodes, then go up the tree creating new (copied) nodes that reference the previous copied and changed level, going up the tree until we reach the root. All of this is done without changing the original tree. Finally, we CAS the root to point to our changed pages. if the CAS worked, our multi-item transaction was successful. if not, we either retry or propagate an error to the next higher...
2 similar results skipped