Refactor xlog.c #1 - startup.c

Started by Simon Riggsover 14 years ago5 messageshackers
Jump to latest
#1Simon Riggs
simon@2ndQuadrant.com

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

Attachments:

startup_refactor.v1.patchapplication/octet-stream; name=startup_refactor.v1.patchDownload+308-203
#2Robert Haas
robertmhaas@gmail.com
In reply to: Simon Riggs (#1)
Re: Refactor xlog.c #1 - startup.c

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

#3Simon Riggs
simon@2ndQuadrant.com
In reply to: Robert Haas (#2)
Re: Refactor xlog.c #1 - startup.c

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

#4Magnus Hagander
magnus@hagander.net
In reply to: Simon Riggs (#3)
Re: Refactor xlog.c #1 - startup.c

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/

#5Simon Riggs
simon@2ndQuadrant.com
In reply to: Magnus Hagander (#4)
Re: Refactor xlog.c #1 - startup.c

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