Skip to content
  • Venkatesh Duggirala's avatar
    9f7c25ee
    Bug#21420180 BINLOG_GROUP_COMMIT_SYNC_DELAY SHOULD BE CONSIDERED · 9f7c25ee
    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.
    9f7c25ee
    Bug#21420180 BINLOG_GROUP_COMMIT_SYNC_DELAY SHOULD BE CONSIDERED
    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.
Loading