Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

type

zxid

data

notation

meaning

SERVERINFO(11) aka FOLLOWERINFO

last zxid accepted

Info

SERVERINFO(lastZxid, info)

The follower has accepted up to lastZxid.

NEWEPOCH(9)

newEpoch << 32

n/a

NEWEPOCH(newEpoch)

A proposal to move to a new epoch.

DIFF(13)

last committed zxid

n/a

DIFF(lastCommittedZxid)

lastCommittedZxid is the last zxid committed by the leader.

TRUNC(14)

truncZxid

n/a

TRUNC(truncZxid)

Truncate the history to truncZxid

SNAP(15)

n/a

n/a

SNAP

A state transfer (aka snapshot) will be sent to the follower. this will be a fuzzy state transfer that may include zxids being sent to the follower. The state transfer will immediately follow this packet.

OBSERVERINFO(16)

last zxid accepted

n/a

OBSERVERINFO(lastZxid)

The observer has accepted up to lastZxid.

NEWLEADER(10)

lastZxid

n/a

NEWLEADER(lastZxid)

Accept this leader as the leader of the epoch of lastZxid.

UPTODATE(12)

n/a

n/a

UPTODATE

The follower is now uptodate enough to begin serving clients.

PROPOSAL(2)

zxid of proposal

proposed message

PROPOSAL(zxid, data)

Propose a message. (Request that it be accepted into a followers history.)

ACK(3)

zxid of proposal to ack

n/a

ACK(zxid)

Everything sent to the follower by the leader up to zxid has been accepted into its history (logged to disk).

COMMIT(4)

zxid of proposal to commit

n/a

COMMIT(zxid)

Everything in the followers history up to zxid should be committed (aka delivered).

INFORM(8)

zxid of proposal

data of proposal

INFORM(zxid, data)

Deliver the data. (Only used with observers.) i

Zab servers have the following state:

...