On Tue, Jun 30, 2015 at 11:00 AM, Simon Riggs <simon@2ndquadrant.com> wrote: > > On 30 June 2015 at 05:02, Amit Kapila <amit.kapila16@gmail.com> wrote: >> >> On Mon, Jun 29, 2015 at 7:18 PM, Simon Riggs <simon@2ndquadrant.com> wrote: >> > >> > On 28 June 2015 at 17:17, Tom Lane <tgl@sss.pgh.pa.us> wrote: >> >> >> > If lseek fails badly then SeqScans would give *silent* data loss, which in my view is worse. Just added pages aren't the only thing we might miss if lseek is badly wrong. >> > >> >> So for the purpose of this patch, do we need to assume that >> lseek can give us wrong size of file and we should add preventive >> checks and other handling for the same? >> I am okay to change that way, if we are going to have that as assumption >> in out code wherever we are using it or will use it in-future, otherwise >> we will end with some preventive checks which are actually not required. > > > They're preventative checks. You always hope it is wasted effort. >
I am not sure if Preventative checks (without the real need) are okay if they
are not-cheap which could happen in this case. I think Validating buffer-tag
would require rel or sys cache lookup.
True, so don't do that.
Keep a list of dropped relations and have the checkpoint process scan the buffer pool every 64 tables, kinda like AbsorbFsync
All the heavy lifting gets done in a background process and we know we're safe.
--
Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services