Why do we have checkPointCopy in ControlFileData?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Why do we have checkPointCopy in ControlFileData?

Jialun Zhang
Hi All,

I am reading the code about checkpoint, I think ControlFileData::checkPoint in pg_control.h is the last checkpoint, so why is there also a checkPointCopy? What is its role?

Thanks,
Reatank
Reply | Threaded
Open this post in threaded view
|

Re: Why do we have checkPointCopy in ControlFileData?

Tom Lane-2
Jialun Zhang <[hidden email]> writes:
> I am reading the code about checkpoint, I think ControlFileData::checkPoint
> in pg_control.h is the last checkpoint, so why is there also a checkPointCopy?
> What is its role?

IIRC, checkPointCopy is the info about the preceding checkpoint.

I think the reason for it being there is an idea that if the latest
checkpoint record is corrupt, we could go back to the prior one and
replay forward from there.  I don't believe any such recovery method was
ever implemented (and it's fair to wonder if you'd have a consistent
database afterwards, anyway) but no one has bothered to remove the
field.

                        regards, tom lane