When i read recovery internal : https://github.com/apple/foundationdb/blob/master/design/recovery-internals.md
in phase 3: https://github.com/apple/foundationdb/blob/master/design/recovery-internals.md#phase-3-recruiting
choose of recoveryVersion
maybe below than durable version:
- If all of them are alive during recovery, master will choose
max(80, 90, 95) = 95
as the last epoch’s end version andmin(100, 110, 120)=100
as the recovery version. Versions between96
and100
will be copied to new generation’s tLogs. Note some of them101
to120
are actually durable on one or two tLogs, but the master chooses to discard them. If a storage server has peeked versions in the range of[101, 120]
, these versions are in memory of the storage server and will be rolled back (i.e., discarded).
if transaction committed in [101,120], it may be rollbacked in recovery ?
which induce a voliatle of Durablilty