RE: POC: enable logical decoding when wal_level = 'replica' without a server restart - Mailing list pgsql-hackers

From Hayato Kuroda (Fujitsu)
Subject RE: POC: enable logical decoding when wal_level = 'replica' without a server restart
Date
Msg-id OSCPR01MB14966AF835B6EFD9862A1672DF5FCA@OSCPR01MB14966.jpnprd01.prod.outlook.com
Whole thread Raw
In response to Re: POC: enable logical decoding when wal_level = 'replica' without a server restart  (Masahiko Sawada <sawada.mshk@gmail.com>)
Responses Re: POC: enable logical decoding when wal_level = 'replica' without a server restart
List pgsql-hackers
Dear Sawada-san,

> > Why can't we avoid counting invalid slots? I think this needs more
> > comments. BTW, shouldn't this patch consider changing
> > effective_wal_level when the last logical slot is invalidated?
> > Ideally, when logical decoding is not possible in the system, then we
> > can reduce the wal_level back to replica, no?
> 
> Hmm, good point. I've considered this idea before but I didn't
> implement it probably because it makes the code more complex. But
> thinking of this idare carefully, it doesn't seem too complex. I've
> implemented this part as a separate patch to make reviews easy. I'll
> merge them if it looks good.

I confirmed and 0002 looks basically good. One minor comment:

```
# Drop the invalidated slot, decreasing effective_wal_level to 'replica'.
$standby4->safe_psql('postgres',
    qq[select pg_drop_replication_slot('standby4_slot')]);
wait_for_logical_decoding_disabled($standby4);
test_wal_level($standby4, "replica|replica",
    "effective_wal_level doesn't change after dropping the last invalidated slot"
);
```

Not sure the part is needed. Previous test has already ensured that
effective_wal_level would be replica. It might be trivial that dropping the slot
would keep the state.

Best regards,
Hayato Kuroda
FUJITSU LIMITED


pgsql-hackers by date:

Previous
From: vignesh C
Date:
Subject: Re: Logical Replication of sequences
Next
From: Amit Langote
Date:
Subject: Re: Batching in executor