I currently have a patched version of pt-online-schema-change that executes curl in a subprocess to query my in-house replication delay monitoring service. This allows me to apply various pieces of business logic (e.g. seamlessly inserting and removing hosts from the pool) that the default ReplicaLagWaiter cannot provide. Obviously this patch is far too specialized for Percona to accept into the toolkit. Instead, would it be possible to add support for a plugin that, when called, returns a boolean indicating whether the tool should pause?
I also would like the ability to prevent the tool from contending for the table metadata lock without my approval. In some cases I want to run pt-online-schema-change overnight on a large table, and I don’t want the schema change to possibly cause a transactional pileup in the middle of the night by contending on the metadata lock. A plugin to do this would return a boolean indicating whether the tool should contend for the metadata lock at the given time. If the answer is ‘false’, the tool should poll the plugin periodically until the answer changes to ‘true’.