On December 10, 2015 5:02:27 AM GMT+01:00, Michael Paquier <michael.paqu...@gmail.com> wrote: >On Wed, Dec 9, 2015 at 9:07 PM, Andres Freund <and...@anarazel.de> >wrote: >> On 2015-12-09 21:03:47 +0900, Michael Paquier wrote: >>> Oh, OK. I didn't read though your lines correctly. So you basically >>> mean that we would look at the init files that are on disk, and >check >>> if they are empty. If they are, we simply use XLogReadBufferExtended >>> to fetch the INIT_FORKNUM content and fill in another buffer for the >>> MAIN_FORKNUM. More or less right? >> >> We would not just do so if they're empty, we would just generally >copy the file >> via shared buffers, instead of copy_file(). But we'd get the file >size >> from the filesystem (which is fine, we make sure it is correct during >> replay). > >So, this suggestion is basically implementing the reverse operation of >GetRelationPath() to be able to rebuild a RelFileNode from scratch and >then look at the shared buffers needed. Isn't it a bit brittle for >back-branches? RelFileNode stuff is available easily through records >when replaying individually FPIs, but not really in this code path.
Oh, sorry. In definitely not thinking about doing this for the back branches. That was more musing about a way to optimize this. Andres --- Please excuse brevity and formatting - I am writing this on my mobile phone. -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers