1. 13 Jul, 2009 4 commits
    • calvin's avatar
      branches/zip: fix run-time symbols clash on Solaris. · 0e71cfd9
      calvin authored
      This patch is from Sergey Vojtovich of Sun Microsystems,
      to fix run-time symbols clash on Solaris with older C++
      compiler:
      - when finding out a way to hide symbols, make decision basing
        on compiler, not operating system.
      - Sun Studio supports __hidden declaration specifier for this
        purpose.
      0e71cfd9
    • inaam's avatar
      branches/zip · 9af090cb
      inaam authored
      Fixed warnings on windows where ulint != ib_uint64_t
      9af090cb
    • inaam's avatar
      branches/zip rb://138 (REVERT) · ec40f5cd
      inaam authored
      Revert the flush neighbors patch as it shows regression in
      the benchmarks run by Michael.
      ec40f5cd
    • vasil's avatar
      branches/zip: · f1f529dd
      vasil authored
      Restore the original value of innodb_sync_spin_loops at the end, previously
      the test assumed that setting it to 20 will do this, but now the default is
      30 and MTR's internal check failed.
      f1f529dd
  2. 10 Jul, 2009 4 commits
  3. 08 Jul, 2009 2 commits
    • calvin's avatar
      branches/zip: fix PAUSE instruction patch on Windows · c09f41f6
      calvin authored
      The original PAUSE instruction patch (r5470) does not
      compile on Windows. Also, there is an elegant way of
      doing it on Windows - YieldProcessor().
      
      Approved by: Heikki (on IM)
      c09f41f6
    • 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
  4. 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
  5. 06 Jul, 2009 2 commits
  6. 02 Jul, 2009 1 commit
  7. 30 Jun, 2009 18 commits
  8. 29 Jun, 2009 6 commits