SegmentedRaftLog(RaftPeerId selfId, RaftServerImpl server,
StateMachine stateMachine, Runnable submitUpdateCommitEvent,
RaftStorage storage, long lastIndexInSnapshot, RaftProperties properties) {
super(selfId, lastIndexInSnapshot, RaftServerConfigKeys.Log.Appender.bufferByteLimit(properties).getSizeInt());
this.server = Optional.ofNullable(server);
this.storage = storage;
segmentMaxSize = RaftServerConfigKeys.Log.segmentSizeMax(properties).getSize();
cache = new RaftLogCache(selfId, storage, properties);
this.fileLogWorker = new RaftLogWorker(selfId, stateMachine, submitUpdateCommitEvent, storage, properties);
stateMachineCachingEnabled = RaftServerConfigKeys.Log.StateMachineData.cachingEnabled(properties);
}