public class Leader
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
static class |
Leader.Proposal |
static class |
Leader.XidRolloverException |
| Modifier and Type | Field and 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 and 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 © 2016 The Apache Software Foundation