Patroni生成postgresql.conf文件时,不仅仅根据patroni.yml和dcs中的dynamic setting生成,还会根据controlfile中的参数(例如max_connections、max_prepared_transactions、max_locks_per_transaction)生成。
以max_connections为例,如果controlfile中的值是200,而patroni.yml或者dcs中的值是100,则生成postgresql.conf的max_connections是controlfile的200,这是函数def effective_configuration()(postgresql/config.py)设置的。
但是经验证,postgresql.conf中的参数值小于controlfile中的参数时,opengauss不会退出,与代码中所说的不一致,我对这个函数(postgresql/config.py)做了修改,不参考controlfile,直接从patroni.yml或dcs生成参数。