Current section
Files
Jump to
Current section
Files
lib/rpc.ex
defmodule Graft.AppendEntriesRPC do @moduledoc false defstruct term: -1, # leader’s term leader_name: nil, # so follower can redirect clients prev_log_index: -1, # index of log entry immediately preceding new ones prev_log_term: -1, # term of prevLogIndex entry entries: [], # log entries to store (empty for heartbeat; may send more than one for efficiency) leader_commit: -1 # leader’s commit_indexenddefmodule Graft.AppendEntriesRPCReply do @moduledoc false defstruct term: -1, # current_term, for leader to update itself success: false, # true if follower contained entry matching prev_log_index and prev_log_term last_log_index: -1, # index of last entry in follower's log last_log_term: -1 # term of last entry in follower's logenddefmodule Graft.RequestVoteRPC do @moduledoc false defstruct term: -1, # candidate’s term candidate_name: nil, # candidate requesting vote last_log_index: -1, # index of candidate’s last log entry last_log_term: -1 # term of candidate’s last log entryenddefmodule Graft.RequestVoteRPCReply do @moduledoc false defstruct term: -1, # current_term, for candidate to update itself vote_granted: false # true means candidate received voteend