Today I played around recovery and backfill of a Ceph cluster (by manually 
bringing some OSDs down/out), and got one question regards to the current flow:

Does backfill push everything to the backfill target regardless what the 
backfill target already has? The scenario is like - acting set of the PG is [1, 
2, 3], and 3 went down (at which point it already had some data) and stayed 
down for a sustained period (but not marked out), during which time there were 
sustained WRITE to the PG. At some point 3 went back up, and it is not 
sufficient to recovery via PG log, so the PG needed to be backfilled and 3 is 
the target. Does 1 needs to push everything (last_backfill starts with MIN) to 
3? It seems so to me as I don't see some round trip to negotiate what each OSD 
has and do an incremental push (as recovery does), but it would be nice to get 
confirm :)

Thanks,
Guang                                     

Reply via email to