class AbstractReplicatedLogImpl implements ReplicatedLog {

    @Override
    public void snapshotCommit() {
        snapshottedJournal = null;
        previousSnapshotIndex = -1;
        previousSnapshotTerm = -1;
        dataSize = 0;
        // need to recalc the datasize based on the entries left after precommit.
        for (ReplicatedLogEntry logEntry : journal) {
            dataSize += logEntry.size();
        }

    }

    protected  AbstractReplicatedLogImpl(long snapshotIndex, long snapshotTerm,
            List<ReplicatedLogEntry> unAppliedEntries, String logContext);
    protected  AbstractReplicatedLogImpl();

}