issues
search
nevella
/
alcina
Automatically exported from code.google.com/p/alcina
1
stars
2
forks
source link
Implement logical replication (transform, postgres)
#8
Open
nevella
opened
2 years ago
nevella
commented
2 years ago
For replica set [primary, secondary], appServers [servers]
(manual) modify secondary
stop secondary
do xxx
restart secondary [as writeable, not hot standby]['new primary']
start non-public app server (catchup app server) with property "logicalReplicationPostgresUrl"=
pre-catchup configuration
mark catchup app server as 'do not proxy to', 'do not participate in leadership'
catchup
loop on unprocessed dtrs [old primary]
get batch (say 100)
if batch size < rq size, close to finished: signal non catchup servers to pause transform processing outside db transactions
apply requests (with possible translation) to [new primary]
if batch size = 0, no new requests for 5 secs and all non catchup servers indicate no in-db-tx processing , exit loop
post-catchup configuration
switch non-catchup server postgres urls
mark catchup app server as 'proxy to', 'participate in leadership'
For replica set [primary, secondary], appServers [servers]