{"action":"created","issue":{"url":"https://api.github.com/repos/hashicorp/raft/issues/31","labels_url":"https://api.github.com/repos/hashicorp/raft/issues/31/labels{/name}","comments_url":"https://api.github.com/repos/hashicorp/raft/issues/31/comments","events_url":"https://api.github.com/repos/hashicorp/raft/issues/31/events","html_url":"https://github.com/hashicorp/raft/issues/31","id":54278134,"number":31,"title":"Support Pre-Vote optimization","user":{"login":"armon","id":592032,"avatar_url":"https://avatars.githubusercontent.com/u/592032?v=3","gravatar_id":"","url":"https://api.github.com/users/armon","html_url":"https://github.com/armon","followers_url":"https://api.github.com/users/armon/followers","following_url":"https://api.github.com/users/armon/following{/other_user}","gists_url":"https://api.github.com/users/armon/gists{/gist_id}","starred_url":"https://api.github.com/users/armon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/armon/subscriptions","organizations_url":"https://api.github.com/users/armon/orgs","repos_url":"https://api.github.com/users/armon/repos","events_url":"https://api.github.com/users/armon/events{/privacy}","received_events_url":"https://api.github.com/users/armon/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/hashicorp/raft/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-01-14T02:52:22Z","updated_at":"2015-08-11T10:03:43Z","closed_at":null,"body":"Use a pre-vote to avoid disrupting a stable cluster when possible"},"comment":{"url":"https://api.github.com/repos/hashicorp/raft/issues/comments/129803403","html_url":"https://github.com/hashicorp/raft/issues/31#issuecomment-129803403","issue_url":"https://api.github.com/repos/hashicorp/raft/issues/31","id":129803403,"user":{"login":"icexin","id":2713364,"avatar_url":"https://avatars.githubusercontent.com/u/2713364?v=3","gravatar_id":"","url":"https://api.github.com/users/icexin","html_url":"https://github.com/icexin","followers_url":"https://api.github.com/users/icexin/followers","following_url":"https://api.github.com/users/icexin/following{/other_user}","gists_url":"https://api.github.com/users/icexin/gists{/gist_id}","starred_url":"https://api.github.com/users/icexin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/icexin/subscriptions","organizations_url":"https://api.github.com/users/icexin/orgs","repos_url":"https://api.github.com/users/icexin/repos","events_url":"https://api.github.com/users/icexin/events{/privacy}","received_events_url":"https://api.github.com/users/icexin/received_events","type":"User","site_admin":false},"created_at":"2015-08-11T10:03:43Z","updated_at":"2015-08-11T10:03:43Z","body":"I used to implement a raft in c++. In this version, before election, the candidate send a query to others to check whether the leader is alive, when receives  enough positive answers, then starts sending votes.\r\nHowever, this optimization may delay the discovery of leader failure, since everyone must wait until majority of followers is timeout.\r\nHope this helps."}}