public interface RaftActorSnapshotCohort
Modifier and Type | Method and Description |
---|---|
void |
applySnapshot(Snapshot.State snapshotState)
This method is called to apply a snapshot installed by the leader.
|
void |
createSnapshot(akka.actor.ActorRef actorRef,
Optional<OutputStream> installSnapshotStream)
This method is called by the RaftActor when a snapshot needs to be
created.
|
Snapshot.State |
deserializeSnapshot(com.google.common.io.ByteSource snapshotBytes)
This method is called to de-serialize snapshot data that was previously serialized via
createSnapshot(akka.actor.ActorRef, java.util.Optional<java.io.OutputStream>)
to a State instance. |
void createSnapshot(@Nonnull akka.actor.ActorRef actorRef, @Nonnull Optional<OutputStream> installSnapshotStream)
actorRef
- the actor to which to respondinstallSnapshotStream
- Optional OutputStream that is present if the snapshot is to also be installed
on a follower. The implementation must serialize its state to the OutputStream and return the
installSnapshotStream instance in the CaptureSnapshotReply along with the snapshot State instance.
The snapshot State is serialized directly to the snapshot store while the OutputStream is used to send
the state data to follower(s) in chunks. The deserializeSnapshot(com.google.common.io.ByteSource)
method is used to convert the
serialized data back to a State instance on the follower end. The serialization for snapshot install is
passed off so the cost of serialization is not charged to the raft actor's thread.void applySnapshot(@Nonnull Snapshot.State snapshotState)
snapshotState
- a snapshot of the state of the actor@Nonnull Snapshot.State deserializeSnapshot(@Nonnull com.google.common.io.ByteSource snapshotBytes) throws IOException
createSnapshot(akka.actor.ActorRef, java.util.Optional<java.io.OutputStream>)
to a State instance.snapshotBytes
- the ByteSource containing the serialized dataIOException
- if an error occurs accessing the ByteSource or de-serializingCopyright © 2019 OpenDaylight. All rights reserved.