Introduced SystemLogRecord and EpochRecord (as sub-record).
Added EpochManager.
Added epochs usage into ElectionsService, improved EpochManager.
Added writing of Epoch records on becoming master (on start-up in SingleNode)
Fixed bug with BecomeMaster message handling in StorageWriterService causing following record not to be commited.
Factored ObjectPool out for general pattern of having a pool of worker items that needs to be disposed in the 'last one out - shuts the lights' fashion.
Added lazy FileStream creation up to max limit into TFChunk.
EpochManager provides ability to check for existing of specified epoch at give LogPosition.
Removed MultiCheckpoints.
Added updating of EpochManager on replication.
Added waiting for chaser caught up into Single-node version (in single-node mode is useful still on initial start-up to update EpochManager, if needed.
TcpService as internal/external. BadRequest handling with shutting down node in TcpConnectionManager. Better intermediate output for WRFL.
Improved ReadIndex rebuild (doesn't require full re-build, only in very unfortunate circumstances). Unified start-up and replica catch-up processes (writer waits for chaser to catch up when switching to master mode).
Added truncation on start if TableIndex got ahead of writer due to crash.
Changes to EpochManager.
Introduced ChaserCatchUp state in SingleNode.
Enchanced ChaserCatchUp state, fixed bug with writing new epochs in non-master state.
Replication changes.
Added flushing of WriterCheckpoint before waiting for chaser.
EpochManager can return few last epochs.