Commit Graph

546 Commits

Author SHA1 Message Date
Ian Barwick
f2309bd0a9 Remove redundant comments 2015-01-26 21:25:37 +09:00
Ian Barwick
061e72d7cd Rename connection variable for clarity
Connection will always be the primary
2015-01-26 20:12:34 +09:00
Ian Barwick
0a19bf1e23 Reword notice to make more sense in log output context 2015-01-24 05:03:57 +09:00
Ian Barwick
84a4766f13 Basic failover for cascaded standby nodes
Attempt to attach to the next available upstream node, otherwise
quit monitoring. We'll need to add further options for failover
scenarios, including attempting to attach to another node,
shutting down the server completely etc.
2015-01-24 04:22:40 +09:00
Ian Barwick
3be8bf8e4c Check primary connection
Verify that existing primary connection is valid, and if not
attempt to find and connect to the current primary node.
2015-01-22 12:20:23 +09:00
Ian Barwick
1e6f1a88b0 On local node failure, attempt to update record on primary server 2015-01-22 11:45:01 +09:00
Ian Barwick
4a8912c2b4 Update comments and debugging output 2015-01-22 10:59:33 +09:00
Ian Barwick
3279e9e47e Separate functions for primary and cascading standby failover 2015-01-22 10:12:03 +09:00
Ian Barwick
5c4e77f8e2 do_failover() -> do_primary_failover() 2015-01-16 17:28:51 +09:00
Ian Barwick
b09f987341 Add note 2015-01-16 16:59:44 +09:00
Ian Barwick
fe758eda9f Update repl_nodes following failover
repl_nodes table updated by each node following failover to
show that either it is the primary, or which primary it has
started to follow.
2015-01-16 16:28:09 +09:00
Ian Barwick
c413cff461 Function to update node records 2015-01-16 14:14:04 +09:00
Ian Barwick
609453a848 Handle failover of top-level standby
Cascaded standbys will not go into failover so we need to ignore
these when looking for candidates for promotion.
2015-01-16 12:35:01 +09:00
Ian Barwick
a82d37e48a Improve node metadata and upstream connecting mechanism
To handle cascaded replication we're going to have to keep track
of each node's upstream node. Also enumerate the node type
("primary", "standby" or "witness") and mark if active.
2015-01-16 10:28:02 +09:00
Ian Barwick
4b6c097a3e Use AS for consistency 2015-01-16 08:46:28 +09:00
Ian Barwick
3dfa33d01d Store upstream node ID if set
Required to manage cascaded standbys
2015-01-16 00:29:43 +09:00
Ian Barwick
a20afe28ec Add upstream_node_id to repl_nodes table 2015-01-15 23:54:07 +09:00
Ian Barwick
692204e381 Consolidate duplicated schema check code 2015-01-15 18:34:51 +09:00
Ian Barwick
2ae27521a3 Some infrastructure for supporting cascading replication
Does not fully work yet.
2015-01-15 15:37:09 +09:00
Ian Barwick
d141d2a8aa Remove unused variable 2015-01-14 16:25:24 +09:00
Ian Barwick
fc6f5ddaa7 Add function repmgr_get_primary_conninfo() 2015-01-14 16:23:08 +09:00
Ian Barwick
4b7fb70de3 Add current year to copyright 2015-01-14 15:50:42 +09:00
Ian Barwick
5db6489ae5 Initial support for cascaded standbys 2015-01-14 14:18:57 +09:00
Ian Barwick
96f6695a52 Clean up repmgr_get_last_standby_location() polling loop
No need to reconnect on every iteration of the loop. Move conditions
which break out of the loop straight away out of the loop.
2015-01-13 16:08:36 +09:00
Ian Barwick
f006a79af9 Clean up log messages for invalid LSNs 2015-01-13 14:53:55 +09:00
Ian Barwick
3a8aa86e0c Remove pointless check 2015-01-13 14:25:58 +09:00
Ian Barwick
9cbac64ad4 Remove pointless check
Witness server can never be considered as a promotion candidate.
2015-01-13 14:24:19 +09:00
Ian Barwick
242fc8416c Consolidate disconnection calls 2015-01-13 13:59:27 +09:00
Ian Barwick
355d8b8f01 Use InvalidXLogRecPtr for pedantic correctness 2015-01-13 13:47:22 +09:00
Ian Barwick
8df7966540 Rename variable
"find_best" sounds like an imperative.
2015-01-13 13:42:30 +09:00
Ian Barwick
1a790549ea Refactor if-statement 2015-01-13 13:40:47 +09:00
Ian Barwick
b80d25ad33 Add some hopefully correct comments for future reference
Also some debugging output which will need to be removed later.
2015-01-13 11:12:20 +09:00
Ian Barwick
a1a61e5ec3 Remove unneeded include 2015-01-13 07:57:54 +09:00
Ian Barwick
1221b73293 repmgrd: explicitly state INSERT statement target columns 2015-01-12 20:47:22 +09:00
Ian Barwick
93d5d7905f Remove "XL*" macros and rationalize XLogRecPtr handling
As of 9.3, XLogRecPtr is a uint64, which makes it much easier to
handle, so we can retire the legacy macros and work directly
with the values.
2015-01-12 17:18:57 +09:00
Ian Barwick
41a5274b44 Comment for consistency 2015-01-12 15:30:17 +09:00
Ian Barwick
d9f83cf620 Replace hard-coded value with local_options.reconnect_attempts; 2015-01-12 14:09:44 +09:00
Ian Barwick
905a2d0a5e Have witness server retry determining the new master
Loop a few times before giving up
2015-01-12 14:05:37 +09:00
Ian Barwick
526803c5e0 Witness server should always try to re-connect to primary
Standbys will try to reconnect even in MANUAL_FAILOVER mode,
so it's consistent to have the witness server do that too.
2015-01-12 13:32:04 +09:00
Ian Barwick
2ff24fecf2 Remove redundant constant 2015-01-12 13:16:13 +09:00
Ian Barwick
a5ead16d6f Change query to use COUNT(*)
No point implying we're fetching the entire record
2015-01-12 12:28:06 +09:00
Ian Barwick
5fb84b9627 Witness server: on failover attempt to reconnect to new master
Previously it was just quitting.
2015-01-12 11:23:20 +09:00
Ian Barwick
437485bf6a Fix debugging output 2015-01-12 09:47:13 +09:00
Ian Barwick
822867ec24 Fix thinko 2015-01-12 09:40:47 +09:00
Ian Barwick
5b88a980b8 Add some debugging output 2015-01-12 07:57:42 +09:00
Ian Barwick
e958b8f2d7 Fix typo 2015-01-09 18:44:31 +09:00
Ian Barwick
74a963a10e Fix schema quoting
There was a lot of duplicated/unused related to handling the
schema name; consolidated and rationalised.
2015-01-09 15:51:34 +09:00
Ian Barwick
dd064cb47c res1 -> res 2015-01-09 11:20:07 +09:00
Ian Barwick
17de82493a Consolidate repl_node insert statements 2015-01-09 11:14:47 +09:00
Ian Barwick
f2fa60f5cf Tidy up SQL statements
Improves readability
2015-01-09 09:46:41 +09:00