DAOS-10524 pool: add rebuild version to pool query
Add rebuild version to pool map query reply, which will be used to generate the object layout. So any targets whose in_version (when target is added to the map) is newer than the rebuild version will be regarded as unavaible targets, otherwise inflight I/O data may be lost during reintegration.
Inflight I/O also needs to wait rebuild fence is generated, so the inflight I/O epoch will have newer epoch than the rebuild stable epoch, which is even older than rebuild fence, so rebuild will use rebuild fence epoch to check if the data needs to be rebuilt.
Do not need change it during leader switch to avoid unnecessary IV communication, i.e. do not need invalidate this IV entry during svc step down, and the new PS leader will still pick up the same handle anyway.
Signed-off-by: Di Wang [email protected]
Bug-tracker data: Ticket title is 'support EC object inflight I/O during reintegration and drain' Status is 'In Review' Job should run at elevated priority (3) https://daosio.atlassian.net/browse/DAOS-10524
Please review. Thanks
ping
Test stage NLT on EL 8 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10345/2/execution/node/635/log
Test stage checkpatch completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10345/3/execution/node/145/log
Test stage Functional Hardware Large completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10345/8/execution/node/1137/log