PG
优质
小牛编辑
132浏览
2023-12-01
Concepts
- Peering Interval
See PG::start_peering_interval. See PG::acting_up_affected See PG::RecoveryState::Reset
A peering interval is a maximal set of contiguous map epochs in which the up and acting sets did not change. PG::RecoveryMachine represents a transition from one interval to another as passing through RecoveryState::Reset. On PG::RecoveryState::AdvMap PG::acting_up_affected can cause the pg to transition to Reset.
Peering Details and Gotchas
For an overview of peering, see Peering.
- PG::flushed defaults to false and is set to false in PG::start_peering_interval. Upon transitioning to PG::RecoveryState::Started we send a transaction through the pg op sequencer which, upon complete, sends a FlushedEvt which sets flushed to true. The primary cannot go active until this happens (See PG::RecoveryState::WaitFlushedPeering). Replicas can go active but cannot serve ops (writes or reads). This is necessary because we cannot read our ondisk state until unstable transactions from the previous interval have cleared.