Details
-
New Feature
-
Status: Open (View Workflow)
-
Critical
-
Resolution: Unresolved
-
None
-
None
Description
The idea behind this filter is to ensure that we limit replica lag. The filter would delay (throttle) any query that cause goes into the binlog (any query beyond a SELECT / SHOW) if the lag in the replica is beyond a certain set limit. The delay would be for a given time and would not block completely. The use for this plugin is to ensure that replicas don't fall too far behind in an attempt to limit failover time and to ensure that one doesn't get iinto a situation where the replica just falls more and more behind, never to catch up. The latter is something that easily can happen for example in SkySQL.
The settings would be someting like this
replica_lag_start throttle - Replica lag in second when to start delaying queries
replica_lag_stop_throttle - Replica lag when to stop delaying queries
replica_mode - How to select which replica lag to consider, i,e, one of the values any (for any server lagging), all (all servers lagging). min (replica with the least replica lag)
cluster - The monitor cluster with replias to consider
servers - The replioca servers to consider
delay_time - Time to delay queries
delay_time_max - Max time to delay queries. The idea is that if a query is delayed, after delay_time has passed and the replica lag is the same as or higher than at the start of the delay, then there is another delay_time period, up to delay_time_max. The default for delay_time_max would be the same as the value for delay_time.
query_delay_regeg - List of regex for queries to delay
query_not_delay_regex - List of regex for queries not to delay (default is SELECT and SHOW)