public class Leader extends 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) |
List<LearnerHandler> |
getForwardingFollowers()
Returns a copy of the current forwarding follower snapshot
|
List<LearnerHandler> |
getLearners()
Returns a copy of the current learner snapshot
|
int |
getNumPendingSyncs() |
List<LearnerHandler> |
getObservingLearners()
Returns a copy of the current observer snapshot
|
static 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,
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) |
public static final int LEADERINFO
public static final int ACKEPOCH
public static final int PROPOSAL
public List<LearnerHandler> getLearners()
public List<LearnerHandler> getForwardingFollowers()
public List<LearnerHandler> getObservingLearners()
public int getNumPendingSyncs()
public void processAck(long sid,
long zxid,
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 InterruptedException,
IOException
InterruptedExceptionIOExceptionpublic void waitForEpochAck(long id,
StateSummary ss)
throws IOException,
InterruptedException
IOExceptionInterruptedExceptionpublic static String getPacketType(int packetType)
packetType - Copyright © 2014 The Apache Software Foundation