1. 06 Mar, 2008 1 commit
  2. 05 Mar, 2008 6 commits
  3. 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
  4. 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
  5. 29 Feb, 2008 9 commits
  6. 28 Feb, 2008 4 commits
  7. 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
  8. 25 Feb, 2008 2 commits
  9. 22 Feb, 2008 1 commit
  10. 21 Feb, 2008 1 commit
  11. 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
  12. 18 Feb, 2008 8 commits
  13. 16 Feb, 2008 1 commit
  14. 15 Feb, 2008 2 commits