-
Venkatesh Duggirala authored
ONLY WHEN SYNCING BINLOG Problem: binlog_group_commit_sync_delay is getting applied to every binary log commit group. Analysis: binlog_group_commit_sync_delay variable is introduced to control how many microseconds the binary log commit waits before synchronizing the binary log file to disk. sync_binlog variable is introduced to control the number of binary log commit groups to collect before synchronizing the binary log to disk In the current code, server is waiting for binlog_group_commit_sync_delay microseconds after entering into the sync stage of every group i.e., every leader of BGC group is waiting the specified time. In case of sync_binlog > 1 case or sync_binlog=0 case that every leader will not be doing 'sync' and users expectation will be that those groups that are doing sync will *only* hit the waiting period. Fix: wait_count_or_timeout logic should be protected in such a way that it will enter only if the sync stage is going to do the sync i.e., check if sync_counter reaches sync_binlog value, only then call the wait_count_or_timeout function.
Venkatesh Duggirala authoredONLY WHEN SYNCING BINLOG Problem: binlog_group_commit_sync_delay is getting applied to every binary log commit group. Analysis: binlog_group_commit_sync_delay variable is introduced to control how many microseconds the binary log commit waits before synchronizing the binary log file to disk. sync_binlog variable is introduced to control the number of binary log commit groups to collect before synchronizing the binary log to disk In the current code, server is waiting for binlog_group_commit_sync_delay microseconds after entering into the sync stage of every group i.e., every leader of BGC group is waiting the specified time. In case of sync_binlog > 1 case or sync_binlog=0 case that every leader will not be doing 'sync' and users expectation will be that those groups that are doing sync will *only* hit the waiting period. Fix: wait_count_or_timeout logic should be protected in such a way that it will enter only if the sync stage is going to do the sync i.e., check if sync_counter reaches sync_binlog value, only then call the wait_count_or_timeout function.
Loading