On Fri, Jul 14, 2017 at 8:17 AM, Mithun Cy <mithun...@enterprisedb.com> wrote: > [ new patch ]
I spent some time going over this patch. I initially thought it only needed minor cosmetic tweaking but the more I poked at it the more things I found that seemed like they should be changed, so the attached version looks pretty significantly different from what was last posted. It's not actually as different as it looks because a lot of the changes are purely cosmetic. Changes: - Rewrote the documentation, many of the comments, and some of the other messages significantly. - Renamed private functions so they all start with apw_ instead of having what seemed to be a mix of naming conventions. - Reorganized the file so that the important functions are at the top. - Added prototypes for the static functions that lacked them. - Got rid of AutoPrewarmTask. - Got rid of skip_prewarm_on_restart. - Added LWLockAcquire/LWLockRelease calls in many places where they were left out. This may make no difference but it seems safer. - Refactored the worker-starting code into two separate functions, one for the main worker and one for the per-database worker. - Inlined some functions that were only called from one place. - Rewrote the delay loop. Previously this used a struct timeval but tv_usec was always 0 and the actual struct was never passed to any system function, so I think this loop couldn't have been accurate to more than the nearest second and depending unnecessarily on the operating system structure seems pointless. I changed also changed it to be more explicit about the autoprewarm_interval == 0 case and to bump the last dump time before, rather than after, dumping. Otherwise, the time between dumps will be increased by the amount of time the dump itself takes, which is not what the user will expect. - Used the correct PG_RETURN macro -- the return type of autoprewarm_dump_now is int8, so PG_RETURN_INT64 must be used. - Updated various other places to use int64 for consistency. - Possibly a few other things I'm forgetting about right now. It's quite possible that in making all of these changes I've introduced some bugs, so I think this needs some testing and review. It's also possible that some of the changes that I made are actually not improvements and should be reverted, but it's always hard to tell that about your own code. Anyway, please see the attached version. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
autoprewarm-rmh.patch
Description: Binary data
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers