Read-log-update: a lightweight synchronization mechanism for concurrent programming
read - copy update : using execution history to solve concurrency problems .