1. 04 Mar, 2008 1 commit
    • marko's avatar
      branches/zip: Fix most MSVC (Windows) compilation warnings. · c4605a28
      marko authored
      lock_get_table(), locks_row_eq_lock(), buf_page_get_mutex(): Add return
      after ut_error.  On Windows, ut_error is not declared as "noreturn".
      
      Add explicit type casts when assigning ulint to byte to get rid of
      "possible loss of precision" warnings.
      
      struct i_s_table_cache_struct: Declare rows_used, rows_allocd as ulint
      instead of ullint.  32 bits should be enough.
      
      fill_innodb_trx_from_cache(), i_s_zip_fill_low(): Cast 64-bit unsigned
      integers to longlong when calling Field::store(longlong, bool is_unsigned).
      Otherwise, the compiler would implicitly convert them to double and
      invoke Field::store(double) instead.
      
      recv_truncate_group(), recv_copy_group(), recv_calc_lsn_on_data_add():
      Cast ib_uint64_t expressions to ulint to get rid of "possible loss of
      precision" warnings.  (There should not be any loss of precision in
      these cases.)
      
      log_close(), log_checkpoint_margin(): Declare some variables as ib_uint64_t
      instead of ulint, so that there won't be any potential loss of precision.
      
      mach_write_ull(): Cast the second argument of mach_write_to_4() to ulint.
      
      OS_FILE_FROM_FD(): Cast the return value of _get_osfhandle() to HANDLE.
      
      row_merge_dict_table_get_index(): Cast the parameter of mem_free() to (void*)
      in order to get rid of the bogus MSVC warning C4090, which has been reported
      as MSVC bug 101661:
      <http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=101661>
      
      row_mysql_read_blob_ref(): To get rid of a bogus MSVC warning C4090,
      drop a const qualifier.
      c4605a28
  2. 03 Mar, 2008 1 commit
    • marko's avatar
      branches/zip: Improve the LRU algorithm with a separate unzip_LRU list of · 7c119c95
      marko authored
      blocks that contains uncompressed and compressed frames.  This patch was
      designed by Heikki and Inaam, implemented by Inaam, and refined and reviewed
      by Marko and Sunny.
      
      buf_buddy_n_frames, buf_buddy_min_n_frames, buf_buddy_max_n_frames: Remove.
      
      buf_page_belongs_to_unzip_LRU(): New predicate:
      bpage->zip.data && buf_page_get_state(bpage) == BUF_BLOCK_FILE_PAGE.
      
      buf_pool_t, buf_block_t: Add the linked list unzip_LRU.  A block in the
      regular LRU list is in unzip_LRU iff buf_page_belongs_to_unzip_LRU() holds.
      
      buf_LRU_free_block(): Add a third return value to refine the case
      "cannot free the block".
      
      buf_LRU_search_and_free_block(): Update the documentation to reflect the
      implementation.
      
      buf_LRU_stat_t, buf_LRU_stat_cur, buf_LRU_stat_sum, buf_LRU_stat_arr[]:
      Statistics for the unzip_LRU algorithm.
      
      buf_LRU_stat_update(): New function: Update the statistics.  Called once
      per second by srv_error_monitor_thread().
      
      buf_LRU_validate(): Validate the unzip_LRU list as well.
      
      buf_LRU_evict_from_unzip_LRU(): New predicate: Use the unzip_LRU before
      falling back to the regular LRU?
      
      buf_LRU_free_from_unzip_LRU_list(), buf_LRU_free_from_common_LRU_list():
      Subfunctions of buf_LRU_search_and_free_block().
      
      buf_LRU_search_and_free_block(): Reimplement.  Try to evict an uncompressed
      page from the unzip_LRU list before falling back to evicting an entire block
      from the common LRU list.
      
      buf_unzip_LRU_remove_block_if_needed(): New function.
      
      buf_unzip_LRU_add_block(): New function: Add a block to the unzip_LRU list.
      7c119c95
  3. 29 Feb, 2008 9 commits
  4. 28 Feb, 2008 4 commits
  5. 27 Feb, 2008 2 commits
    • vasil's avatar
      branches/zip: · 41cac32c
      vasil authored
      Use innobase_strcasecmp() insteaed of strcasecmp() in i_s.cc and get rid
      of strings.h (that file is not present on Windows).
      
      Move the prototype of innobase_strcasecmp() from ha_innodb.cc and
      dict0dict.c to ha_prototypes.h.
      
      Approved by:	Heikki
      41cac32c
    • marko's avatar
      branches/zip: Add duration statistics to INFORMATION_SCHEMA.INNODB_ZIP. · 0b6a7dac
      marko authored
      buf_buddy_relocated_duration[],
      page_zip_compress_duration[]
      page_zip_decompress_duration[]: Record the total duration of the operations.
      
      buf_buddy_relocate(), page_zip_compress(), page_zip_decompress():
      Add ut_time_us() instrumentation.
      
      i_s_zip_fields_info[], i_s_zip_fill_low(): Move the columns containing
      cumulated statistics last.  Add relocated_usec, compressed_usec, and
      decompressed_usec.
      0b6a7dac
  6. 25 Feb, 2008 2 commits
  7. 22 Feb, 2008 1 commit
  8. 21 Feb, 2008 1 commit
  9. 19 Feb, 2008 1 commit
    • marko's avatar
      branches/zip: Enable excessive binary logging of page_zip_compress(), · 949b94c5
      marko authored
      for the purpose of comparing different compression algorithms.
      
      PAGE_ZIP_COMPRESS_DBG: New preprocessor condition, to see if deflate()
      is wrapped.
      
      page_zip_compress_log: Log file counter.  If set to nonzero, logging
      is enabled.
      
      page_zip_compress_deflate(): Add the parameter logfile.
      
      FILE_LOGFILE, LOGFILE: Macros for declaring and passing the parameter logfile.
      
      page_zip_compress(): Open and close the logfile if needed.  Write the
      uncompressed page and the size of the compressed data.  The data passed
      to deflate() is written by the wrapper page_zip_compress_deflate().
      949b94c5
  10. 18 Feb, 2008 8 commits
  11. 16 Feb, 2008 1 commit
  12. 15 Feb, 2008 5 commits
  13. 13 Feb, 2008 1 commit
    • marko's avatar
      branches/zip: Minor cleanup of fast index creation diagnostics. · 388af7a7
      marko authored
      innobase_check_index_keys(): Remove unused parameters.  Use
      sql_print_error() for error message output.
      
      ha_innobase::add_index(): When row_merge_rename_tables() fails, do not
      allow row_merge_drop_table() to alter the error code returned to MySQL.
      388af7a7
  14. 12 Feb, 2008 1 commit
    • marko's avatar
      branches/zip: Pass -prefer-non-pic only on IA-32 (x86) when building · 9194c3a9
      marko authored
      the dynamic InnoDB plugin, ha_innodb.so.  This libtool option cannot
      be used on every target platform.  For instance, the AMD64 (x86_64) ABI
      mandates position-independent code (PIC) in dynamic shared objects.
      
      Makefile.am: Use $(INNODB_CFLAGS) and $(INNODB_DYNAMIC_CFLAGS) in
      target-specific CFLAGS and CXXFLAGS variable definitions.
      
      plug.in: Instead of appending to the MySQL-wide CFLAGS, introduce
      the variables INNODB_CFLAGS and INNODB_DYNAMIC_CFLAGS.  Depending on
      $target_cpu, append -prefer-non-pic to INNODB_DYNAMIC_CFLAGS.
      9194c3a9
  15. 11 Feb, 2008 1 commit
    • marko's avatar
      branches/zip: Makefile.am: Disable the generation of · 775fd54d
      marko authored
      position-independent code in the compilation of ha_innodb.so.
      
      ha_innodb_la_CXXFLAGS, ha_innodb_la_CFLAGS: Add -prefer-non-pic.
      This flag is interpreted by the ../../libtool script that acts
      as a front-end to the compiler and linker.
      775fd54d
  16. 08 Feb, 2008 1 commit