This is the transaction protocol from Google Percolator - with slightly different wording. I don&#x27;t know if that&#x27;s a well known fact but I was surprised they did not even mention it. OSDI Paper on Percolator: <a href="https:&#x2F;&#x2F;www.usenix.org&#x2F;legacy&#x2F;event&#x2F;osdi10&#x2F;tech&#x2F;full_papers&#x2F;Peng.pdf" rel="nofollow">https:&#x2F;&#x2F;www.usenix.org&#x2F;legacy&#x2F;event&#x2F;osdi10&#x2F;tech&#x2F;full_papers&#x2F;...</a><p>Percolator is the processing system Google uses to manage its search index incrementally. It&#x27;s built on BigTable which provides cell-level linearizability, similar to what CockroachDB seems to achieve by using Raft.<p>What CockroachDB calls &quot;intents&quot; are per-value columns called &quot;write&quot; in Percolator and ordered by BigTables timestamp system. Percolators &quot;master lock&quot; is rebranded to &quot;switch&quot; and, tada, there you have CockroachDBs fancy lockless algorithm.<p>Edit: Amazon DynamoDB, too, uses a very similar approach to this in their client-driven transaction implementation <a href="https:&#x2F;&#x2F;github.com&#x2F;awslabs&#x2F;dynamodb-transactions&#x2F;blob&#x2F;master&#x2F;DESIGN.md" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;awslabs&#x2F;dynamodb-transactions&#x2F;blob&#x2F;master...</a><p>It would be interesting to have one of the CochroachDB guys comment on the novelty of their approach.