1. 27 Nov, 2014 2 commits
    • Sergei Petrunia's avatar
      EXPLAIN FORMAT=JSON: support join buffering · 461dbd80
      Sergei Petrunia authored
      - Basic support for JOIN buffering
      - The output is not polished but catches the main point:
        tab->select_cond and tab->cache_select->cond are printed separately.
      - Hash join support is poor still.
      
      - Also fixed identation in JOIN_TAB::save_explain_data
      461dbd80
    • Sergei Petrunia's avatar
      EXPLAIN FORMAT=JSON: further development · 37c444e1
      Sergei Petrunia authored
      Writing JSON:
      - Fix a bug in Single_line_formatting_helper
      - Add Json_writer_nesting_guard - safety class
      
      EXPLAIN JSON support
      - Add basic subquery support
      - Add tests for UNION/UNION ALL.
      37c444e1
  2. 26 Nov, 2014 2 commits
  3. 25 Nov, 2014 1 commit
  4. 24 Nov, 2014 6 commits
  5. 23 Nov, 2014 1 commit
  6. 22 Nov, 2014 1 commit
  7. 21 Nov, 2014 2 commits
    • Sergei Petrunia's avatar
      Make testsuite to pass · 3c5ce8a0
      Sergei Petrunia authored
      - Drop all tables in explain_json.test
      - Tabular form should print ref='' when type='fulltext' (another peculiarity
        of the traditional EXPLAIN format)
      - String_list::append_str should allocate memory for \0, too
      - Some temporary code for EXPLAIN JSON and join buffering.
      3c5ce8a0
    • Sergei Petrunia's avatar
      Better comments · 305dd8e5
      Sergei Petrunia authored
      305dd8e5
  8. 20 Nov, 2014 4 commits
  9. 19 Nov, 2014 2 commits
  10. 17 Nov, 2014 1 commit
  11. 12 Nov, 2014 1 commit
  12. 11 Nov, 2014 1 commit
  13. 06 Nov, 2014 1 commit
    • Jan Lindström's avatar
      MDEV-6936: Buffer pool list scan optimization · a03dd94b
      Jan Lindström authored
      Merged Facebook commit 617aef9f911d825e9053f3d611d0389e02031225
      authored by Inaam Rana to InnoDB storage engine (not XtraDB)
      from https://github.com/facebook/mysql-5.6
      
      WL#7047 - Optimize buffer pool list scans and related batch processing
      
      Reduce excessive scanning of pages when doing flush list batches. The
      fix is to introduce the concept of "Hazard Pointer", this reduces the
      time complexity of the scan from O(n*n) to O.
      
      The concept of hazard pointer is reversed in this work. Academically
      hazard pointer is a pointer that the thread working on it will declar
      such and as long as that thread is not done no other thread is allowe
      do anything with it.
      
      In this WL we declare the pointer as a hazard pointer and then if any
      thread attempts to work on it, it is allowed to do so but it has to a
      the hazard pointer to the next valid value. We use hazard pointer sol
      reverse traversal of lists within a buffer pool instance.
      
      Add an event to control the background flush thread. The background f
      thread wait has been converted to an os event timed wait so that it c
      signalled by threads that want to kick start a background flush when
      buffer pool is running low on free/dirty pages.
      a03dd94b
  14. 05 Nov, 2014 1 commit
  15. 04 Nov, 2014 3 commits
  16. 03 Nov, 2014 3 commits
  17. 30 Oct, 2014 2 commits
  18. 29 Oct, 2014 4 commits
    • Jan Lindström's avatar
      MDEV-6932: Enable Lazy Flushing · 2bf3e416
      Jan Lindström authored
      Merge Facebook commit 4f3e0343fd2ac3fc7311d0ec9739a8f668274f0d
      authored by Steaphan Greene from https://github.com/facebook/mysql-5.6
      
      Adds innodb_idle_flush_pct to enable tuning of the page flushing rate
      when the system is relatively idle. We care about this, since doing
      extra unnecessary flash writes shortens the lifespan of the flash.
      2bf3e416
    • Jan Lindström's avatar
      MDEV-6935: Change the default value for innodb_log_compressed_pages to false · 58888e2c
      Jan Lindström authored
      Merge Facebook commit ca40b4417fd224a68de6636b58c92f133703fc68
      authored by Steaphan Greene from https://github.com/facebook/mysql-5.6
      Change the default value for innodb_log_compressed_pages to false
      
      Logging these pages is a waste. We don't want this to be enabled.
      
      One caution here: If the zlib version used by innodb is changed, but
      the running version is still the previous version, and the running
      version crashes, it is possible crash recovery could fail.
      
      When crash recovery uses a zlib version at all different than the
      version used by the crashed instance, it is possible that a redone
      compression could fail, where the original did not, because the new
      zlib version compresses the same data to a slightly larger size.
      
      Because of the nature of compression, this is even possible when
      upgrading to a version of zlib which actually peforms overall better
      compression than the previous version.
      
      If this happens, mysql will fail to recover, since a page split can
      not be safely triggered during crash recovery.
      
      So, either the exact zlib version must be controlled between builds,
      or these rare recovery failures must be accepted. The cost of
      logging these pages is quite high, so we consider this limitation to
      be worthwhile.
      
      This failure scenario can not happen if there was a clean shutdown.
      This is only relevant to restarting crashed instances, or starting an
      instance built via a hot backup too (XtraBackup).
      58888e2c
    • Jan Lindström's avatar
      MDEV-6968: CREATE TABLE crashes with InnoDB plugin · 2d2d11f0
      Jan Lindström authored
      Analysis: fil_extend_space_to_desired_size() does not provide file
      node to os_aio(). This failed on Windows only because on Windows
      we do not use posix_fallocate() to extend file space.
      
      Fix: Add file node to os_aio() function call and make sure that
      we do not use NULL pointer at os_aio_array_reserve_slot(). Additionally,
      make sure that we do not use 0 as file_block_size (512 is the minimum).
      2d2d11f0
    • Jan Lindström's avatar
      MDEV-6648: InnoDB: Add support for 4K sector size if supported · b96697d2
      Jan Lindström authored
      New generation hard drives, SSDs and NVM devices support 4K
      sector size. Supported sector size can be found using fstatvfs()
      or GetDiskFreeSpace() functions.
      b96697d2
  19. 28 Oct, 2014 2 commits