1. 16 Feb, 2012 3 commits
    • Sergey Petrunya's avatar
      Backport of: · 541334c5
      Sergey Petrunya authored
      timestamp: Thu 2011-12-01 15:12:10 +0100
      Fix for Bug#13430436 PERFORMANCE DEGRADATION IN SYSBENCH ON INNODB DUE TO ICP
      
      When running sysbench on InnoDB there is a performance degradation due
      to index condition pushdown (ICP). Several of the queries in sysbench
      have a WHERE condition that the optimizer uses for executing these
      queries as range scans. The upper and lower limit of the range scan
      will ensure that the WHERE condition is fulfilled. Still, the WHERE
      condition is part of the queries' condition and if ICP is enabled the
      condition will be pushed down to InnoDB as an index condition. 
      
      Due to the range scan's upper and lower limits ensure that the WHERE
      condition is fulfilled, the pushed index condition will not filter out
      any records. As a result the use of ICP for these queries results in a
      performance overhead for sysbench. This overhead comes from using
      resources for determining the part of the condition that can be pushed
      down to InnoDB and overhead in InnoDB for executing the pushed index
      condition.
      
      With the default configuration for sysbench the range scans will use
      the primary key. This is a clustered index in InnoDB. Using ICP on a
      clustered index provides the lowest performance benefit since the
      entire record is part of the clustered index and in InnoDB it has the
      highest relative overhead for executing the pushed index condition.
      
      The fix for removing the overhead ICP introduces when running sysbench
      is to disable use of ICP when the index used by the query is a
      clustered index.
      
      When WL#6061 is implemented this change should be re-evaluated.
      541334c5
    • Sergey Petrunya's avatar
      Added comments · e98e05da
      Sergey Petrunya authored
      e98e05da
    • unknown's avatar
      607aab9c
  2. 14 Feb, 2012 5 commits
  3. 13 Feb, 2012 1 commit
    • unknown's avatar
      When we fail during slave thread initialisation, keep mi->run_lock · 27dfa45e
      unknown authored
      locked until we have finished clean up.
      
      Previously, the code released the lock without marking that the thread
      was running. This allowed a new slave thread to start while the old one
      was still in the middle of cleaning up, causing assertions and probably
      general mayhem.
      27dfa45e
  4. 12 Feb, 2012 2 commits
  5. 11 Feb, 2012 4 commits
  6. 10 Feb, 2012 5 commits
  7. 09 Feb, 2012 1 commit
  8. 03 Feb, 2012 9 commits
  9. 02 Feb, 2012 1 commit
  10. 01 Feb, 2012 2 commits
  11. 31 Jan, 2012 1 commit
  12. 30 Jan, 2012 2 commits
  13. 28 Jan, 2012 3 commits
  14. 27 Jan, 2012 1 commit