{"push_id":652670683,"size":42,"distinct_size":4,"ref":"refs/heads/pmattis/new-client-api","head":"fd07ccc3edc763b912ca56633528597805ac2707","before":"78fb6d56ce9e2efff100f6d5fd29b2b62ee79aab","commits":[{"sha":"373d2f48ce62c57c3338035bea2c0b5c732f1053","author":{"email":"45aefc834abf4b6844854d63a474b67e53b69671@gmail.com","name":"Spencer Kimball"},"message":"Machinery to resolve write intents during the course of inconsistent reads.\n\nPreviously, inconsistent reads would simply ignore write intents. This is\nnot correct for two reasons. The biggest is that we do range lookups\nwith inconsistent reads. If a dangling intent is left on a meta record,\nthis means that we'd never have a way to get to the up-to-date meta\nrecord, which might contain the latest information about a split, merge\nor replica change. The second, smaller reason is that keys which are\nonly read inconsistently (say for performance) would have to wait for\na GC event in order to be resolved, which could be a long time.\n\nThis change does two things:\n\n- Changes MVCC to continue a scan in the face of write intent errors\n  and batch up all of them into a list of intents, to be resolved in\n  parallel. Inconsistent reads continue, as before, in spite of intents,\n  but now return a write intent error containing all intents encountered.\n- At the store level, we now formulate an internal batch command to\n  do this efficiently.\n\nThere's a big caveat which is documented in the code related to infinte\nloops caused by intents encountered on range meta records. The basic\ngist is that the intent is encountered on range lookup, which then\ncauses the store to push the txn, which causes the distributed sender\nto lookup the txn. Since the txn record is always located on the range\nwhich the meta record with the intent points to, this would in turn\ncause another write intent error, and the cycle would repeat. The\nsolution to this is hairy and makes me nervous, but I couldn't find\nany less obnoxious way.","distinct":false,"url":"https://api.github.com/repos/cockroachdb/cockroach/commits/373d2f48ce62c57c3338035bea2c0b5c732f1053"},{"sha":"b7bc54ff7f7bd356e6e75ce1d5c16c5718117f68","author":{"email":"45aefc834abf4b6844854d63a474b67e53b69671@gmail.com","name":"Spencer Kimball"},"message":"Rebase and added comment","distinct":false,"url":"https://api.github.com/repos/cockroachdb/cockroach/commits/b7bc54ff7f7bd356e6e75ce1d5c16c5718117f68"},{"sha":"a306b6c4491b88cd4c45b900ff52c4d3f16a740b","author":{"email":"45aefc834abf4b6844854d63a474b67e53b69671@gmail.com","name":"Spencer Kimball"},"message":"Address PR feedback.\n\n- Handle resolves on inconsistent reads asynchronously.\n- Added new push transaction action: CONFIRM_NOT_PENDING, because we\n  don't want inconsistent reads to be pushing other txns unless they're\n  missing a heartbeat, not pending anymore, or of a different epoch.\n- Allow consistent range lookup.","distinct":false,"url":"https://api.github.com/repos/cockroachdb/cockroach/commits/a306b6c4491b88cd4c45b900ff52c4d3f16a740b"},{"sha":"0b4153a09c57cc0082cad602b0923ad3fa3762f1","author":{"email":"45aefc834abf4b6844854d63a474b67e53b69671@gmail.com","name":"Spencer Kimball"},"message":"Incorporate feedback.\n\nAlso removed transaction push check for an earlier txn epoch. Just because\nan intent from an earlier epoch is encountered doesn't mean the txn can be\npushed. This was just incorrect. Removed associated unittest.","distinct":false,"url":"https://api.github.com/repos/cockroachdb/cockroach/commits/0b4153a09c57cc0082cad602b0923ad3fa3762f1"},{"sha":"637820639889c446c7ee352b6aa445d890293d1d","author":{"email":"45aefc834abf4b6844854d63a474b67e53b69671@gmail.com","name":"Spencer Kimball"},"message":"Additional feedback.","distinct":false,"url":"https://api.github.com/repos/cockroachdb/cockroach/commits/637820639889c446c7ee352b6aa445d890293d1d"},{"sha":"77035286d45f989aed44aff80ff5bfa28b34948d","author":{"email":"45aefc834abf4b6844854d63a474b67e53b69671@gmail.com","name":"Spencer Kimball"},"message":"Merge pull request #876 from cockroachdb/spencerkimball/resolve-intents-on-inconsistent-reads\n\nMachinery to resolve write intents during the course of inconsistent rea...","distinct":false,"url":"https://api.github.com/repos/cockroachdb/cockroach/commits/77035286d45f989aed44aff80ff5bfa28b34948d"},{"sha":"0c746e64abcbf7cf8b5ddbdbbba625957f813cc2","author":{"email":"45aefc834abf4b6844854d63a474b67e53b69671@gmail.com","name":"Spencer Kimball"},"message":"Replace string version of UUID with 16 byte slice and remove the old,\ninefficient md5 computation, which was just stupid.","distinct":false,"url":"https://api.github.com/repos/cockroachdb/cockroach/commits/0c746e64abcbf7cf8b5ddbdbbba625957f813cc2"},{"sha":"b21a63927cdb5c9fab454ad2b54d7ef11769dd44","author":{"email":"45aefc834abf4b6844854d63a474b67e53b69671@gmail.com","name":"Spencer Kimball"},"message":"Merge pull request #885 from cockroachdb/spencerkimball/txn-id\n\nReplace string version of UUID with 16 byte slice and remove the old,","distinct":false,"url":"https://api.github.com/repos/cockroachdb/cockroach/commits/b21a63927cdb5c9fab454ad2b54d7ef11769dd44"},{"sha":"c03ac730e04b67d00dad15961b1ffed2a149181d","author":{"email":"45aefc834abf4b6844854d63a474b67e53b69671@gmail.com","name":"Spencer Kimball"},"message":"Add our own simple UUID version, based on go-uuid.\n\ngo-uuid seems to be going away, so this PR pulls out the part we were\nusing, namely the Version 4 UUID generation and string formatter.","distinct":false,"url":"https://api.github.com/repos/cockroachdb/cockroach/commits/c03ac730e04b67d00dad15961b1ffed2a149181d"},{"sha":"9a906f82a47408eb7f83cf5fd976a9b8ce47b3d3","author":{"email":"45aefc834abf4b6844854d63a474b67e53b69671@gmail.com","name":"Spencer Kimball"},"message":"Revert accidental commit to master.","distinct":false,"url":"https://api.github.com/repos/cockroachdb/cockroach/commits/9a906f82a47408eb7f83cf5fd976a9b8ce47b3d3"},{"sha":"c23c592a25bb8d5841da11189d404b65aeb9ae9c","author":{"email":"45aefc834abf4b6844854d63a474b67e53b69671@gmail.com","name":"Spencer Kimball"},"message":"Add our own simple UUID version, based on go-uuid.\n\ngo-uuid seems to be going away, so this PR pulls out the part we were\nusing, namely the Version 4 UUID generation and string formatter.\n\nCloses #887","distinct":false,"url":"https://api.github.com/repos/cockroachdb/cockroach/commits/c23c592a25bb8d5841da11189d404b65aeb9ae9c"},{"sha":"807d82cbc15b15169f188d2fc0ad4ea1db3a8bcd","author":{"email":"45aefc834abf4b6844854d63a474b67e53b69671@gmail.com","name":"Spencer Kimball"},"message":"Add a diagnostic switch to output detailed info when computing MVCC stats\n\nThis is to track down a bug, as tracked in #891","distinct":false,"url":"https://api.github.com/repos/cockroachdb/cockroach/commits/807d82cbc15b15169f188d2fc0ad4ea1db3a8bcd"},{"sha":"6010c85b62e01fd6bc0b67ef6a202feab847697e","author":{"email":"45aefc834abf4b6844854d63a474b67e53b69671@gmail.com","name":"Spencer Kimball"},"message":"Merge pull request #892 from cockroachdb/spencerkimball/mvcc-stats-diagnostics\n\nAdd a diagnostic switch to output detailed info when computing MVCC stat...","distinct":false,"url":"https://api.github.com/repos/cockroachdb/cockroach/commits/6010c85b62e01fd6bc0b67ef6a202feab847697e"},{"sha":"60c72257649311ddd21ee89fca0890785dba169d","author":{"email":"72bff4150c530f716f049485b33db27b61cbaaa9@gmail.com","name":"Seth Bunce"},"message":"Fix off-by-one error in encoding.DecodeBytes.\n\nThe tests check for panic, and it still panics, but it's panicing on the slice\nindex instead of the \"malformed escape\" check.","distinct":false,"url":"https://api.github.com/repos/cockroachdb/cockroach/commits/60c72257649311ddd21ee89fca0890785dba169d"},{"sha":"c0c6fe9b1548773302a35c46dcb1f4e05b793129","author":{"email":"25fad7a39062a81fcaf88abd782f9f69679c0bdf@gmail.com","name":"Tobias Schottdorf"},"message":"Merge pull request #894 from sbunce/master\n\nFix off-by-one error in encoding.DecodeBytes.","distinct":false,"url":"https://api.github.com/repos/cockroachdb/cockroach/commits/c0c6fe9b1548773302a35c46dcb1f4e05b793129"},{"sha":"f349ef2c4c2d617e3c72fe75a3fae6420cf91ab5","author":{"email":"45aefc834abf4b6844854d63a474b67e53b69671@gmail.com","name":"Spencer Kimball"},"message":"Added meta to diagnostics","distinct":false,"url":"https://api.github.com/repos/cockroachdb/cockroach/commits/f349ef2c4c2d617e3c72fe75a3fae6420cf91ab5"},{"sha":"106158de0f560124e0998639d8e3b4e531b00f0b","author":{"email":"45aefc834abf4b6844854d63a474b67e53b69671@gmail.com","name":"Spencer Kimball"},"message":"Merge pull request #896 from cockroachdb/spencerkimball/add-meta-to-diagnostics\n\nAdded meta to diagnostics","distinct":false,"url":"https://api.github.com/repos/cockroachdb/cockroach/commits/106158de0f560124e0998639d8e3b4e531b00f0b"},{"sha":"46e091c8e31281ada0c7c9239d7691fc2eb5b135","author":{"email":"45aefc834abf4b6844854d63a474b67e53b69671@gmail.com","name":"Spencer Kimball"},"message":"Remove mvcc diagnostics and fix non-determinism in TestMultiStoreEventFeed.\n\nThe problem was that intents on the meta keys had randomized priorities,\nwhich encoded to different lengths, causing a mismatch in expected value\nbytes counts depending on the random priority chosen.\n\nFixes #891","distinct":false,"url":"https://api.github.com/repos/cockroachdb/cockroach/commits/46e091c8e31281ada0c7c9239d7691fc2eb5b135"},{"sha":"d8b156d650deb16b9356294c82c50807d8842ecc","author":{"email":"45aefc834abf4b6844854d63a474b67e53b69671@gmail.com","name":"Spencer Kimball"},"message":"Fix typo; update glock file to remove go-uuid","distinct":false,"url":"https://api.github.com/repos/cockroachdb/cockroach/commits/d8b156d650deb16b9356294c82c50807d8842ecc"},{"sha":"662b1d635b3cfc6b3be5b946cecb6715eaa97197","author":{"email":"45aefc834abf4b6844854d63a474b67e53b69671@gmail.com","name":"Spencer Kimball"},"message":"Merge pull request #897 from cockroachdb/spencerkimball/remove-diag-fix-client-event-test\n\nRemove mvcc diagnostics and fix non-determinism in TestMultiStoreEventFe...","distinct":false,"url":"https://api.github.com/repos/cockroachdb/cockroach/commits/662b1d635b3cfc6b3be5b946cecb6715eaa97197"}]}