1. 08 Jul, 2009 1 commit
    • inaam's avatar
      branches/zip rb://133 · 6e6d1e86
      inaam authored
      This patch introduces heuristics based flushing rate of dirty pages to
      avoid IO bursts at checkpoint.
      
      1) log_capacity / log_generated per second gives us number of seconds
      in which ALL dirty pages need to be flushed. Based on this rough
      assumption we can say that
      n_dirty_pages / (log_capacity / log_generation_rate) = desired_flush_rate
      
      2) We use weighted averages (hard coded to 20 seconds) of
      log_generation_rate to avoid resonance.
      
      3) From the desired_flush_rate we subtract the number of pages that have
      been flushed due to LRU flushing. That gives us pages that we should
      flush as part of flush_list cleanup. And that is the number (capped by
      maximum io_capacity) that we try to flush from the master thread.
      
      Knobs:
      ======
      
      innodb_adaptive_flushing: boolean, global, dynamic, default TRUE.
      Since this heuristic is very experimental and has the potential to
      dramatically change the IO pattern I think it is a good idea to leave a
      knob to turn it off.
      
      Approved by: Heikki
      
      6e6d1e86
  2. 07 Jul, 2009 3 commits
    • inaam's avatar
      branches/zip rb://138 · b6cb94ed
      inaam authored
      The current implementation is to try to flush the neighbors of every
      page that we flush. This patch makes the following distinction:
      
      1) If the flush is from flush_list AND
      2) If the flush is intended to move the oldest_modification LSN ahead
      (this happens when a user thread sees little space in the log file and
      attempts to flush pages from the buffer pool so that a checkpoint can
      be made)
      
      THEN
      
      Do not try to flush the neighbors. Just focus on flushing dirty pages at
      the end of flush_list
      
      Approved by: Heikki
      b6cb94ed
    • inaam's avatar
      branches/zip rb://126 · a1955cd2
      inaam authored
      Based on contribution from Google Inc.
      This patch introduces a new parameter innodb_io_capacity to control the
      rate at which master threads performs various tasks. The default value
      is 200 and higher values imply more aggressive flushing and ibuf merges
      from within the master thread.
      This patch also changes the ibuf merge from synchronous to asynchronous.
      Another minor change is not to force the master thread to wait for a
      log flush to complete every second.
      
      Approved by: Heikki
      a1955cd2
    • calvin's avatar
      branches/zip: add IB_HAVE_PAUSE_INSTRUCTION to CMake. · d7d19d4c
      calvin authored
      Windows will support PAUSE instruction by default.
      d7d19d4c
  3. 06 Jul, 2009 2 commits
  4. 02 Jul, 2009 1 commit
  5. 30 Jun, 2009 18 commits
  6. 29 Jun, 2009 7 commits
  7. 26 Jun, 2009 1 commit
  8. 25 Jun, 2009 4 commits
  9. 24 Jun, 2009 1 commit
  10. 23 Jun, 2009 1 commit
    • calvin's avatar
      branches/zip: change the header file path. · f799db1d
      calvin authored
      Change the header file path from ../storage/innobase/include/
      to ../include/. In the planned 5.1 + plugin release, the source
      directory of the plugin will not be in storage/innobase.
      
      Approved by: Heikki (IM)
      f799db1d
  11. 22 Jun, 2009 1 commit