An error occurred fetching the project authors.
  1. 06 Oct, 2010 1 commit
    • Alfranio Correia's avatar
      BUG#56343 binlog_cache_use status is bigger than expected · 0be27d8f
      Alfranio Correia authored
      The binlog_cache_use is incremented twice when changes to a transactional table
      are committed, i.e. TC_LOG_BINLOG::log_xid calls is called. The problem happens
      because log_xid calls both binlog_flush_stmt_cache and binlog_flush_trx_cache
      without checking if such caches are empty thus unintentionally increasing the
      binlog_cache_use value twice.
      
      To fix the problem we avoided incrementing the binlog_cache_use if the cache is
      empty. We also decided to increment binlog_cache_use when the cache is truncated
      as the cache is used although its content is discarded and is not written to the
      binary log.
      
      Note that binlog_cache_use is incremented for both types of cache, transactional
      and non-transactional and that the behavior presented in this patch also applies
      to the binlog_cache_disk_use.
      
      Finally, we re-organized the code around the functions binlog_flush_trx_cache and
      binlog_flush_stmt_cache.
      0be27d8f