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) |
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.XidRolloverException
public 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.InterruptedException
java.io.IOException
public void waitForEpochAck(long id, StateSummary ss) throws java.io.IOException, java.lang.InterruptedException
java.io.IOException
java.lang.InterruptedException
public static java.lang.String getPacketType(int packetType)
packetType
- Copyright © 2024 The Apache Software Foundation