19 August 2018
This maintenance release fixes a wrong check for the next auto maintenance run if the maintenance wasn’t run before.
Previously when changing the value of auto_maintenance
from disabled to an interval, the process didn’t run the automatic maintenance unless a manual maintenance
was executed before.
This release adds improvements on the replay function’s speed. The new version is now replaying the data without accessing the parent log partition and the decoding logic has been simplified. Not autoritative tests has shown a cpu gain of at least 10% and a better memory allocation. However your mileage may vary.
The GTID operational mode has been improved removing the blocking mode which caused increased lag in systems with larger binlog size.
As this change requires a replica catalogue upgrade is very important to follow the upgrade instructions provided below.
- If working via ssh is suggested to use screen or tmux for the upgrade
- Stop all the replica processes with
chameleon stop_all_replicas --config <your_config>
- Take a backup of the schema
sch_chameleon
with pg_dump for good measure. - Install the upgrade with
pip install pg_chameleon --upgrade
- Check if the version is upgraded with
chameleon --version
- Upgrade the replica schema with the command
chameleon upgrade_replica_schema --config <your_config>
- Start all the replicas.
If the upgrade procedure refuses to upgrade the catalogue because of running or errored replicas is possible to reset the statuses using the command chameleon enable_replica --source <source_name>
.
If the catalogue upgrade is still not possible downgrading pgchameleon to the previous version. E.g. pip install pg_chameleon==2.0.8
will make the replica startable again.
Changelog from v2.0.8
- Fix wrong check for the next auto maintenance run if the maintenance wasn’t run before
- Improve the replay function’s speed
- Remove blocking from the GTID operational mode