engine: move raft and limbo states after system data in checkpoint
Before this commit raft and limbo states were written at the end of the checkpoint, which makes it very costly to access them. Checkpoint join needs to access limbo and raft state in order to send them during JOIN_META stage. We cannot use the latest states, like it's done for read-view snapshot fetching: states may be far ahead of the data, written to the checkpoint, which we're going to send. This commit moves raft and limbo states after data from the system spaces but before user data. We cannot put them right at the beginning of the snapshot, because then we'll have to patch recovery process, which currently strongly relies on the fact, that system spaces are at the beginning of the snapshot (this was done in order to apply force recovery only for user data). If we patch recovery process, then old versions, where it's unpatched, won't be able to recover from the snapshots done by the newer version, compatibility of snapshots will be broken. The current change is not breaking, old Tarantool versions can restore from the snapshot made by the newer one. Needed for tarantool/tarantool-ee#741 NO_DOC=internal NO_CHANGELOG=internal
Loading
Please register or sign in to comment