On Tue, 2011-01-11 at 12:41 +0100, Magnus Hagander wrote:
> Just to be clear, you're objecting to the *name* of the state, right,
> not how/where it's set?
Yes
> In particular, how the catchup/streaming
> things are set?
You've set it in the right places.
I would personally constrain the state transitions, so that we can't
ever make illegal changes, such as CATCHUP -> BACKUP.
I would also check the state locally before grabbing the spinlock, as is
typical in other xlog code. Continually resetting shared state to
exactly what it is already seems strange, to me. If we make the rule
that the state can only be changed by the WALSender itself, it won't
need to grab spinlock. If you don't like that, a local variable works.
Also, mixing upper camel case and uppercase for the STATe NamES looKS
weIRD. Uppercase makes them look more clearly like enum/states as used
elsewhere in similar code.
-- Simon Riggs http://www.2ndQuadrant.com/books/PostgreSQL Development, 24x7 Support, Training and Services