1. 08 Jul, 2009 1 commit
    • inaam's avatar
      branches/zip rb://133 · 43fceb74
      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
      43fceb74
  2. 07 Jul, 2009 3 commits
    • inaam's avatar
      branches/zip rb://138 · 449e6af3
      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
      449e6af3
    • inaam's avatar
      branches/zip rb://126 · 46211114
      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
      46211114
    • calvin's avatar
      branches/zip: add IB_HAVE_PAUSE_INSTRUCTION to CMake. · b495b79f
      calvin authored
      Windows will support PAUSE instruction by default.
      b495b79f
  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. · eebca3bf
      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)
      eebca3bf
  11. 22 Jun, 2009 1 commit