rationale for a PGLog::merge_old_entry case

2013-06-02 Thread Loic Dachary
Hi Sam, TL;DR: When there no new entry, what is the rationale for merge_old_entry to remove the object from missing only if the tail is eversion_t() and the object prior_version is also eversion_t() ? https://github.com/dachary/ceph/blob/f58299db098d5f18c817b516fa6ffaa76245e57d/src/osd/PGLog.cc

Re: rationale for a PGLog::merge_old_entry case

2013-06-03 Thread Samuel Just
In all three cases, we know the authoritative log does not contain an entry for oe.soid, therefore: If oe.prior_version > log.tail, we must already have processed an earlier entry for that object resulting in the object being correctly marked missing (or not) (specifically, the entry for oe.prior_

Re: rationale for a PGLog::merge_old_entry case

2013-06-04 Thread Loic Dachary
Hi Sam, Thanks for the explanation. I misread the third case, my description was incorrect. I amended https://github.com/ceph/ceph/pull/340 accordingly. Cheers On 06/03/2013 10:28 PM, Samuel Just wrote: > In all three cases, we know the authoritative log does not contain an > entry for oe.soid,