Thread: Refactor xlog.c #1 - startup.c
Patch removes stuff related to "startup process" and creates files under src/$DIR/postmaster for this code. This makes startup process look more like bgwriter, walwriter etc.. Other refactoring patches to follow, chipping away at xlog.c. -- Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Attachment
On Wed, Nov 2, 2011 at 4:44 AM, Simon Riggs <simon@2ndquadrant.com> wrote: > Patch removes stuff related to "startup process" and creates files > under src/$DIR/postmaster for this code. > > This makes startup process look more like bgwriter, walwriter etc.. In general, +1. But I don't think we want duplicate function prototypes for the same functions, so -1 for this hunk: + /* in xlog.c */ + extern void WakeupRecovery(void); + extern void StartupXLOG(void); The existing prototypes in xlog.h seem like they should be just fine. IsPromoteTriggered could be simplified to just "return promote_triggered;"; you don't need to branch. I think one thing that would be worth considering in terms of future refactoring is to split up the gigantic StartupXLOG() function in some fashion. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
On Wed, Nov 2, 2011 at 1:14 PM, Robert Haas <robertmhaas@gmail.com> wrote: > On Wed, Nov 2, 2011 at 4:44 AM, Simon Riggs <simon@2ndquadrant.com> wrote: >> Patch removes stuff related to "startup process" and creates files >> under src/$DIR/postmaster for this code. >> >> This makes startup process look more like bgwriter, walwriter etc.. > > In general, +1. Thanks for the review. > But I don't think we want duplicate function prototypes for the same > functions, so -1 for this hunk: > > + /* in xlog.c */ > + extern void WakeupRecovery(void); > + extern void StartupXLOG(void); > > The existing prototypes in xlog.h seem like they should be just fine. That was to avoid having startup.c include xlog.h, which it doesn't really need to see. Not worried either way, so I'll do as you suggest. > IsPromoteTriggered could be simplified to just "return > promote_triggered;"; you don't need to branch. Happy to do that. > I think one thing that would be worth considering in terms of future > refactoring is to split up the gigantic StartupXLOG() function in some > fashion. There are a great many other long functions in Postgres, and few of them as critical as that one. I don't see a reason to touch it, and would do so last of all of any code in xlog.c -- Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
On Wed, Nov 2, 2011 at 14:33, Simon Riggs <simon@2ndquadrant.com> wrote: > On Wed, Nov 2, 2011 at 1:14 PM, Robert Haas <robertmhaas@gmail.com> wrote: >> On Wed, Nov 2, 2011 at 4:44 AM, Simon Riggs <simon@2ndquadrant.com> wrote: >>> Patch removes stuff related to "startup process" and creates files >>> under src/$DIR/postmaster for this code. >>> >>> This makes startup process look more like bgwriter, walwriter etc.. >> >> In general, +1. > > Thanks for the review. > >> But I don't think we want duplicate function prototypes for the same >> functions, so -1 for this hunk: >> >> + /* in xlog.c */ >> + extern void WakeupRecovery(void); >> + extern void StartupXLOG(void); >> >> The existing prototypes in xlog.h seem like they should be just fine. > > That was to avoid having startup.c include xlog.h, which it doesn't > really need to see. Double prototypes seems to me like it's a cure worse than the disease to me... > Not worried either way, so I'll do as you suggest. +1. -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/
On Wed, Nov 2, 2011 at 1:44 PM, Magnus Hagander <magnus@hagander.net> wrote: > Double prototypes seems to me like it's a cure worse than the disease to me... Doubling them was just a mistake. Anyway, thats gone now. -- Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services