On Sat, Jan 16, 2016 at 6:37 PM, Michael Paquier <michael.paqu...@gmail.com> wrote: > > On Sat, Jan 16, 2016 at 9:07 PM, Amit Kapila <amit.kapil...@gmail.com> wrote: > > On Sat, Jan 16, 2016 at 5:08 PM, Michael Paquier < michael.paqu...@gmail.com> > > wrote: > >> > >> On Sat, Jan 16, 2016 at 7:10 PM, Amit Kapila <amit.kapil...@gmail.com> > >> wrote: > >> > Won't this be a problem if the checkpoint occurs after a long time and > >> > in > >> > the mean time there is some activity in the server? > >> > >> Why? If there is some activity on the server, the snapshot will be > >> immediately taken at the next iteration without caring about the > >> checkpoint. > >> > > > > + (insert_lsn % XLOG_SEG_SIZE) != SizeOfXLogLongPHD)) > > > > Do you mean to intend that it is protected by above check in the > > patch? > > Yep, in combination with is_switch_current to check if the last > completed segment was forcibly switched. > > > Isn't it possible that so much WAL is inserted between bgwriter cycles, > > that when it checks the location of WAL, it founds it to be at the beginning > > of a new segment? > > Er, no. Even if the insert LSN is at the beginning of a new segment, > this would take a standby snapshot if the last segment was not > forcibly switched. >
So here if I understand correctly the check related to the last segment forcibly switched is based on the fact that if it is forcibly switched, then we don't need to log this record? What is the reason of such an assumption? It is not very clear by reading the comments you have added in patch, may be you can expand comments slightly to explain the reason of same. With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com