public class Leader
extends java.lang.Object
| Modifier and Type | Class | Description |
|---|---|---|
static class |
Leader.Proposal |
|
static class |
Leader.XidRolloverException |
| Modifier and Type | Field | Description |
|---|---|---|
static int |
ACKEPOCH |
This message is used by the follow to ack a proposed epoch.
|
static int |
LEADERINFO |
This message is the first that a follower receives from the leader.
|
static int |
PROPOSAL |
This message type is sent by a leader to propose a mutation.
|
| Modifier and Type | Method | Description |
|---|---|---|
void |
commit(long zxid) |
Create a commit packet and send it to all the members of the quorum
|
long |
getEpoch() |
Returns the current epoch of the leader.
|
long |
getEpochToPropose(long sid,
long lastAcceptedEpoch) |
|
java.util.List<LearnerHandler> |
getForwardingFollowers() |
Returns a copy of the current forwarding follower snapshot
|
java.util.List<LearnerHandler> |
getLearners() |
Returns a copy of the current learner snapshot
|
int |
getNumPendingSyncs() |
|
java.util.List<LearnerHandler> |
getObservingLearners() |
Returns a copy of the current observer snapshot
|
static java.lang.String |
getPacketType(int packetType) |
Get string representation of a given packet type
|
void |
inform(Leader.Proposal proposal) |
Create an inform packet and send it to all observers.
|
void |
processAck(long sid,
long zxid,
java.net.SocketAddress followerAddr) |
Keep a count of acks that are received by the leader for a particular
proposal
|
void |
processSync(LearnerSyncRequest r) |
Process sync requests
|
Leader.Proposal |
propose(Request request) |
create a proposal and send it out to all the members
|
void |
sendSync(LearnerSyncRequest r) |
Sends a sync message to the appropriate server
|
long |
startForwarding(LearnerHandler handler,
long lastSeenZxid) |
lets the leader know that a follower is capable of following and is done
syncing
|
void |
waitForEpochAck(long id,
StateSummary ss) |
|
void |
waitForNewLeaderAck(long sid,
long zxid,
QuorumPeer.LearnerType learnerType) |
Process NEWLEADER ack of a given sid and wait until the leader receives
sufficient acks.
|
public static final int LEADERINFO
public static final int ACKEPOCH
public static final int PROPOSAL
public java.util.List<LearnerHandler> getLearners()
public java.util.List<LearnerHandler> getForwardingFollowers()
public java.util.List<LearnerHandler> getObservingLearners()
public int getNumPendingSyncs()
public void processAck(long sid,
long zxid,
java.net.SocketAddress followerAddr)
zxid - the zxid of the proposal sent outfollowerAddr - public void commit(long zxid)
zxid - public void inform(Leader.Proposal proposal)
zxid - proposal - public long getEpoch()
public Leader.Proposal propose(Request request) throws Leader.XidRolloverException
request - Leader.XidRolloverExceptionpublic void processSync(LearnerSyncRequest r)
r - the requestpublic void sendSync(LearnerSyncRequest r)
f - r - public long startForwarding(LearnerHandler handler, long lastSeenZxid)
handler - handler of the followerpublic long getEpochToPropose(long sid,
long lastAcceptedEpoch)
throws java.lang.InterruptedException,
java.io.IOException
java.lang.InterruptedExceptionjava.io.IOExceptionpublic void waitForEpochAck(long id,
StateSummary ss)
throws java.io.IOException,
java.lang.InterruptedException
java.io.IOExceptionjava.lang.InterruptedExceptionpublic void waitForNewLeaderAck(long sid,
long zxid,
QuorumPeer.LearnerType learnerType)
throws java.lang.InterruptedException
sid - learnerType - java.lang.InterruptedExceptionpublic static java.lang.String getPacketType(int packetType)
packetType - Copyright © 2018 The Apache Software Foundation