Hi Bharath, +1. This seems to be good idea to have checks on upper bound for the max_wal_size and min_wal_size. We have seen customers play with these parameters and ran into issues. It will also be better to consider all the control parameters and have a min/max checks on them as well.
Thanks, Mahendrakar. On Sat, 21 May 2022 at 23:26, rajesh singarapu <rajesh.rs0...@gmail.com> wrote: > Hi Bharath, > > Could you explain why min wal size must be at least twice but not > equal to wal_segment_size ? > > thanks > Rajesh > > On Sat, May 21, 2022 at 7:08 PM Bharath Rupireddy > <bharath.rupireddyforpostg...@gmail.com> wrote: > > > > Hi, > > > > Currently postgres allows setting any value for max_wal_size or > > min_wal_size, not enforcing "at least twice as wal_segment_size" limit > > [1]. This isn't a problem if the server continues to run, however, the > > server can't come up after a crash or restart or maintenance or > > upgrade (goes to a continuous restart loop with FATAL errors [1]). > > > > How about we add GUC check hooks for both max_wal_size and > > min_wal_size where we can either emit ERROR or WARNING if values are > > not "at least twice as wal_segment_size"? > > > > Thoughts? > > > > [1] > > FATAL: "max_wal_size" must be at least twice "wal_segment_size" > > FATAL: "min_wal_size" must be at least twice "wal_segment_size" > > > > [2] > > ./initdb -D data > > ./pg_ctl -D data -l logfile start > > ./psql -c "alter system set max_wal_size='2MB'" postgres > > ./psql -c "alter system set min_wal_size='2MB'" postgres > > ./psql -c "select pg_reload_conf()" postgres > > ./pg_ctl -D data -l logfile restart > > > > Regards, > > Bharath Rupireddy. > > > > > > >