On Fri, Jun 9, 2017 at 10:01 AM, Mithun Cy <mithun...@enterprisedb.com> wrote: > I have merged Rafia's patch for cosmetic changes. I have also fixed > some of the changes you have recommended over that. But kept few as it > is since Rafia's opinion was needed on that. >
Few comments on the latest patch: 1. + /* Check whether blocknum is valid and within fork file size. */ + if (blk->blocknum >= nblocks) + { + /* Move to next forknum. */ + ++pos; + old_blk = blk; + continue; + } + + /* Prewarm buffer. */ + buf = ReadBufferExtended(rel, blk->forknum, blk->blocknum, RBM_NORMAL, + NULL); + if (BufferIsValid(buf)) + ReleaseBuffer(buf); + + old_blk = blk; + ++pos; You are incrementing position at different places in this loop. I think you can do it once at the start of the loop. 2. +dump_now(bool is_bgworker) { .. + fd = OpenTransientFile(transient_dump_file_path, + O_CREAT | O_WRONLY | O_TRUNC, 0666); +prewarm_buffer_pool(void) { .. + file = AllocateFile(AUTOPREWARM_FILE, PG_BINARY_R); During prewarm, you seem to be using binary mode to open a file whereas during dump binary flag is not passed. Is there a reason for such a difference? 3. + ereport(LOG, + (errmsg("saved metadata info of %d blocks", num_blocks))); It doesn't seem like a good idea to log this info at each dump interval. How about making this as a DEBUG1 message? -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers