{"action":"created","issue":{"url":"https://api.github.com/repos/cockroachdb/cockroach/issues/10305","repository_url":"https://api.github.com/repos/cockroachdb/cockroach","labels_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/10305/labels{/name}","comments_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/10305/comments","events_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/10305/events","html_url":"https://github.com/cockroachdb/cockroach/pull/10305","id":186044233,"number":10305,"title":"Epoch-based range leases implementation","user":{"login":"spencerkimball","id":6147149,"avatar_url":"https://avatars.githubusercontent.com/u/6147149?v=3","gravatar_id":"","url":"https://api.github.com/users/spencerkimball","html_url":"https://github.com/spencerkimball","followers_url":"https://api.github.com/users/spencerkimball/followers","following_url":"https://api.github.com/users/spencerkimball/following{/other_user}","gists_url":"https://api.github.com/users/spencerkimball/gists{/gist_id}","starred_url":"https://api.github.com/users/spencerkimball/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spencerkimball/subscriptions","organizations_url":"https://api.github.com/users/spencerkimball/orgs","repos_url":"https://api.github.com/users/spencerkimball/repos","events_url":"https://api.github.com/users/spencerkimball/events{/privacy}","received_events_url":"https://api.github.com/users/spencerkimball/received_events","type":"User","site_admin":false},"labels":[{"id":371606733,"url":"https://api.github.com/repos/cockroachdb/cockroach/labels/stability","name":"stability","color":"b60205","default":false}],"state":"open","locked":false,"assignee":{"login":"bdarnell","id":160562,"avatar_url":"https://avatars.githubusercontent.com/u/160562?v=3","gravatar_id":"","url":"https://api.github.com/users/bdarnell","html_url":"https://github.com/bdarnell","followers_url":"https://api.github.com/users/bdarnell/followers","following_url":"https://api.github.com/users/bdarnell/following{/other_user}","gists_url":"https://api.github.com/users/bdarnell/gists{/gist_id}","starred_url":"https://api.github.com/users/bdarnell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bdarnell/subscriptions","organizations_url":"https://api.github.com/users/bdarnell/orgs","repos_url":"https://api.github.com/users/bdarnell/repos","events_url":"https://api.github.com/users/bdarnell/events{/privacy}","received_events_url":"https://api.github.com/users/bdarnell/received_events","type":"User","site_admin":false},"assignees":[{"login":"bdarnell","id":160562,"avatar_url":"https://avatars.githubusercontent.com/u/160562?v=3","gravatar_id":"","url":"https://api.github.com/users/bdarnell","html_url":"https://github.com/bdarnell","followers_url":"https://api.github.com/users/bdarnell/followers","following_url":"https://api.github.com/users/bdarnell/following{/other_user}","gists_url":"https://api.github.com/users/bdarnell/gists{/gist_id}","starred_url":"https://api.github.com/users/bdarnell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bdarnell/subscriptions","organizations_url":"https://api.github.com/users/bdarnell/orgs","repos_url":"https://api.github.com/users/bdarnell/repos","events_url":"https://api.github.com/users/bdarnell/events{/privacy}","received_events_url":"https://api.github.com/users/bdarnell/received_events","type":"User","site_admin":false}],"milestone":null,"comments":15,"created_at":"2016-10-28T23:41:23Z","updated_at":"2016-12-05T22:30:10Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/cockroachdb/cockroach/pulls/10305","html_url":"https://github.com/cockroachdb/cockroach/pull/10305","diff_url":"https://github.com/cockroachdb/cockroach/pull/10305.diff","patch_url":"https://github.com/cockroachdb/cockroach/pull/10305.patch"},"body":"Introduce new epoch-based range leases. These are designed to use\nthe same machinery as the expiration-based leases but use epochs from\nthe node liveness table instead of expirations.\n\nThe same Lease protobuf is utilized for both types of leases, but\nthere's now an optional Epoch. Previously, the lease proto had a \"stasis\"\ntimestamp that's now removed and replaced by logic in the replica to\nevaluate the state of a lease.\n\nIn order to evaluate whether a lease is valid at command apply time\n(downstream of Raft), we evaluate the lease upstream of Raft and send\nit with every Raft command to be compared to the lease at apply time.\n\nSee: https://github.com/cockroachdb/cockroach/blob/master/docs/RFCS/range_leases.md\n\n<!-- Reviewable:start -->\n\n---\n\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/cockroachdb/cockroach/10305)\n\n<!-- Reviewable:end -->\n"},"comment":{"url":"https://api.github.com/repos/cockroachdb/cockroach/issues/comments/264998811","html_url":"https://github.com/cockroachdb/cockroach/pull/10305#issuecomment-264998811","issue_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/10305","id":264998811,"user":{"login":"spencerkimball","id":6147149,"avatar_url":"https://avatars.githubusercontent.com/u/6147149?v=3","gravatar_id":"","url":"https://api.github.com/users/spencerkimball","html_url":"https://github.com/spencerkimball","followers_url":"https://api.github.com/users/spencerkimball/followers","following_url":"https://api.github.com/users/spencerkimball/following{/other_user}","gists_url":"https://api.github.com/users/spencerkimball/gists{/gist_id}","starred_url":"https://api.github.com/users/spencerkimball/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spencerkimball/subscriptions","organizations_url":"https://api.github.com/users/spencerkimball/orgs","repos_url":"https://api.github.com/users/spencerkimball/repos","events_url":"https://api.github.com/users/spencerkimball/events{/privacy}","received_events_url":"https://api.github.com/users/spencerkimball/received_events","type":"User","site_admin":false},"created_at":"2016-12-05T22:30:09Z","updated_at":"2016-12-05T22:30:09Z","body":"\n\n\n\nReview status: 17 of 45 files reviewed at latest revision, 39 unresolved discussions, some commit checks failed.\n\n---\n\n*[pkg/storage/below_raft_protos_test.go, line 92 at r1](https://reviewable.io:443/reviews/cockroachdb/cockroach/10305#-KVGSwtk-ZqOjAS95ogp:-KYFVHr7dciWrvYXLU6p:b-aygbd) ([raw file](https://github.com/cockroachdb/cockroach/blob/c76b6b31a9d9650c47a2cad48690a494e1bec78a/pkg/storage/below_raft_protos_test.go#L92)):*\n<details><summary><i>Previously, tamird (Tamir Duberstein) wrote…</i></summary><blockquote>\n\nSo this still changed?\n</blockquote></details>\n\nWell we now have an `Epoch`. So empty it's the same as it is nullable. However, when it's set to something, we obviously have a different checksum.\n\n---\n\n*[pkg/storage/client_raft_test.go, line 920 at r6](https://reviewable.io:443/reviews/cockroachdb/cockroach/10305#-KYFTDVYeUT3F-WAIu_e:-KYFVVPh1JFkfjDPuP0S:b-896fix) ([raw file](https://github.com/cockroachdb/cockroach/blob/29cb6a8e0c072d3edc3583c26a22b6c66df7e094/pkg/storage/client_raft_test.go#L920)):*\n<details><summary><i>Previously, tamird (Tamir Duberstein) wrote…</i></summary><blockquote>\n\nyou can call `Run(\"\", ...` and the test runner will automatically use an incrementing integer index. See 0103e37812abdf2472f652ba09cc5549dca9143a\n</blockquote></details>\n\nDone.\n\n---\n\n\n*Comments from [Reviewable](https://reviewable.io:443/reviews/cockroachdb/cockroach/10305)*\n<!-- Sent from Reviewable.io -->\n"}}
{"actor":{"display_login":"spencerkimball"}}