{"push_id":1842488886,"size":1,"distinct_size":1,"ref":"refs/heads/detect-pushed-txn","head":"5df4bfad181840fd9e33feb3e58c186a4b404727","before":"b0525199afe0392d74447b778dab0fe60c1348c1","commits":[{"sha":"5df4bfad181840fd9e33feb3e58c186a4b404727","author":{"name":"Andrei Matei","email":"82d83a1950b1b041ac07a9fa8d0428277a5e4bfe@cockroachlabs.com"},"message":"sql: automatically retry the first batches of uncommitable SERIALIZABLE txns\n\nBefore this patch, a write-read conflict (a txn attempting to write\n\"under\" a previous read) would be handled by pushing the commit\ntimestamp of the writer, but otherwise letting it continue. Even though\nit will not be allowed to commit, the writer is allowed to continue\nlaying down intents in the hope that they'll keep other conflicting txns\naway.\nSince this push is only detected at COMMIT time, that's too late to do\nautomatic retries. Therefore, the desire to let the txn go forward and\nlay down intents is at odds with the desire to sometimes retry\nautomatically.\nThis commit puts a finger on this tradeof scale and makes it so that we\ndetect pushes after statements executed in the FirstBatch state (so,\nwhile we can still retry automatically). When a push is detected, the\ntxn is (auto-)retried. Note that the write will still have laid down at\nleast one intent on the key that caused the push.\n\nThis change hopes to make it possible for some transactions to\nall-but-never see retryable errors (e.g. Jepsen's BEGIN; CREATE TABLE;\nCOMMIT).\n\nTouches #16450","distinct":true,"url":"https://api.github.com/repos/andreimatei/cockroach/commits/5df4bfad181840fd9e33feb3e58c186a4b404727"}]}
{"actor":{"display_login":"andreimatei"}}