Move snapshot parsing to ShardManager
ApplySnapshot is an asynchronous triggered via a message-to-self. This
means that if we are being particularly slow about installing a snapshot
from leader, we could end up parsed user state to be present multiple
times in the pipeline.
Move user state parsing from Follower to ShardManager, so that it
remains in its ByteSource form until we are ready to process it --
thus containing the heap allocation and its application as an atomic
actor work unit.
JIRA: CONTROLLER-2135
Change-Id: I8f09709a8e38bf5a959ef5f02eb8d8377d8399d5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
16 files changed: