{"action":"created","issue":{"url":"https://api.github.com/repos/cockroachdb/cockroach/issues/230","labels_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/230/labels{/name}","comments_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/230/comments","events_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/230/events","html_url":"https://github.com/cockroachdb/cockroach/issues/230","id":52155768,"number":230,"title":"Multiraft: leader leases","user":{"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},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/cockroachdb/cockroach/milestones/1","labels_url":"https://api.github.com/repos/cockroachdb/cockroach/milestones/1/labels","id":778698,"number":1,"title":"v0.1 (Beta)","description":"","creator":{"login":"andybons","id":365204,"avatar_url":"https://avatars.githubusercontent.com/u/365204?v=3","gravatar_id":"","url":"https://api.github.com/users/andybons","html_url":"https://github.com/andybons","followers_url":"https://api.github.com/users/andybons/followers","following_url":"https://api.github.com/users/andybons/following{/other_user}","gists_url":"https://api.github.com/users/andybons/gists{/gist_id}","starred_url":"https://api.github.com/users/andybons/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andybons/subscriptions","organizations_url":"https://api.github.com/users/andybons/orgs","repos_url":"https://api.github.com/users/andybons/repos","events_url":"https://api.github.com/users/andybons/events{/privacy}","received_events_url":"https://api.github.com/users/andybons/received_events","type":"User","site_admin":false},"open_issues":10,"closed_issues":4,"state":"open","created_at":"2014-09-04T16:42:18Z","updated_at":"2015-02-09T20:13:18Z","due_on":null,"closed_at":null},"comments":19,"created_at":"2014-12-16T19:27:47Z","updated_at":"2015-02-20T14:28:28Z","closed_at":null,"body":"We need to introduce a concept of leader leases so a leader can take read-only actions without writing them to the raft log. This means\r\n* Ensuring that no node calls an election without first waiting for at least the leader lease timeout (including just after starting up)\r\n* Keeping track of heartbeat responses and reverting to follower status if a timeout elapses without a quorum of heartbeat responses."},"comment":{"url":"https://api.github.com/repos/cockroachdb/cockroach/issues/comments/75245810","html_url":"https://github.com/cockroachdb/cockroach/issues/230#issuecomment-75245810","issue_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/230","id":75245810,"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":"2015-02-20T14:28:27Z","updated_at":"2015-02-20T14:28:27Z","body":"These comments apply to your comments two posts back...\r\n\r\n@tschottdorf yes, we want a separate issue for inconsistent writes. We actually want to do those as a matter of course when looking up meta[12] indexing entries.\r\n\r\n@tschottdorf: having follower exit the quorum lease in the event of a write / read-timestamp-cache conflict would be too coarse-grained. I would favor something simpler: push transaction forward on leader write to current time + reasonable delta. The \"reasonable delta\" would be enough to cover the likely latency of pushing newly-advanced write to the consensus group.\r\n\r\n"}}