Re: Cascade replication
| От | Fujii Masao |
|---|---|
| Тема | Re: Cascade replication |
| Дата | |
| Msg-id | CAHGQGwEH1iz4m5B8ievOZUzxt1WBbhn8n49fom3Ktz66asoM7g@mail.gmail.com обсуждение исходный текст |
| Ответ на | Re: Cascade replication (Simon Riggs <simon@2ndQuadrant.com>) |
| Ответы |
Re: Cascade replication
|
| Список | pgsql-hackers |
On Tue, Jul 19, 2011 at 5:58 PM, Simon Riggs <simon@2ndquadrant.com> wrote:
> On Mon, Jul 11, 2011 at 7:28 AM, Fujii Masao <masao.fujii@gmail.com> wrote:
>
>> Attached is the updated version which addresses all the issues raised by
>> Simon.
>
> Is there any reason why we disallow cascading unless hot standby is enabled?
>
> ISTM we can just alter the postmaster path for walsenders, patch attached.
>
> Some people might be happier if a sync standby were not HS enabled,
> yet able to cascade to other standbys for reading.
- return CAC_STARTUP; /* normal startup */
+ {
+ if (am_walsender)
+ return CAC_OK;
+ else
+ return CAC_STARTUP; /* normal startup */
+ }
In canAcceptConnections(), am_walsender is always false, so the above CAC_OK
is never returned. You should change ProcessStartupPacket() as follows, instead.
switch (port->canAcceptConnections) { case CAC_STARTUP:
+ if (am_walsender)
+ {
+ port->canAcceptConnections = CAC_OK;
+ break;
+ } ereport(FATAL,
When I fixed the above, compile the code and set up the cascading replication
environment (disable hot_standby), I got the following assertion error:
TRAP: FailedAssertion("!(slot > 0 && slot <=
PMSignalState->num_child_flags)", File: "pmsignal.c", Line: 227)
So we would still have some code to change.
Regards,
--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center
В списке pgsql-hackers по дате отправления: