Manuel Pöter
Manuel Pöter
Thanks @yiwu-arbug, but according to the comment in the code "accessing members of this class is not thread-safe and requires external synchronization (ie db mutex held or on write thread)",...
I reimplemented the `SnapshotList` and removed the locks in `GetSnapshotImpl` and `ReleaseSnapshot`. Inserting new snapshots via `SnapshotList::New` is lock-free. `SnapshotList::Delete` marks a snapshot as deleted (no lock required). If the...
@yiwu-arbug my implementation is only partially lock-free - removing entries from the list still requires a lock. That's why most threads only mark their snapshot as "deleted" and leave removal...
@maysamyabandeh @yiwu-arbug Unfortunately I had to put my experiments on ice for the last few months. I still want to keep working on this at some point, I just have...
@frew Yes, but only for a short time before I was again sucked into a different project. However, I switched jobs in the meantime and am now working even more...
No unfortunately I never found the time to work on this some more. In all my recent tests on our system this never showed up as significant anymore, so we...
As @reductor has already explained, the standard describes an abstract machine, and the memory model introduced in C11/C++11 defines a set of rules around the happens-before relation, which in turn...