1. 22 Apr, 2010 2 commits
  2. 21 Apr, 2010 1 commit
    • sbains's avatar
      branches/innodb+: Factor out srv_threads_mutex from the kernel mutex. · af1478e0
      sbains authored
      Splitting the kernel mutex at once is a complex task, several mutexes will
      be factored out of it. This is one of the easier ones. This mutex sits below
      the kernel mutex and is used by the threads infra-structure. It is important
      for the multi-threaded purge because for multi-threaded purge we will need
      to activate and use InnoDB task queue and query thread scheduling code.
      rb://285
      af1478e0
  3. 19 Apr, 2010 2 commits
    • Vasil Dimov's avatar
      Merge from SVN · ed30b504
      Vasil Dimov authored
      ed30b504
    • irana's avatar
      branches/innodb+ · 7f741204
      irana authored
      Merge r6915:6992 from branches/innodb+multipbp (i.e.: all the changes
      made since it's creation)
      
      This also reverts r6930 to branches/innodb+ because a different
      solution for that issue is already present in innodb+multibp which
      is being merged.
      
      After this commit branches/innodb+multibp should be discarded
      and this branch should become our main development tree.
      
        ------------------------------------------------------------------------
        r6915 | sbains | 2010-03-31 07:33:43 +0300 (Wed, 31 Mar 2010) | 1 line
        Changed paths:
           A /branches/innodb+multibp (from /branches/innodb+:6914)
        
        Creating a branch for the multiple buffer pool
        ------------------------------------------------------------------------
        r6916 | sbains | 2010-03-31 08:21:00 +0300 (Wed, 31 Mar 2010) | 3 lines
        Changed paths:
           M /branches/innodb+multibp/CMakeLists.txt
           M /branches/innodb+multibp/btr/btr0btr.c
           M /branches/innodb+multibp/btr/btr0cur.c
           M /branches/innodb+multibp/btr/btr0sea.c
           M /branches/innodb+multibp/buf/buf0buddy.c
           M /branches/innodb+multibp/buf/buf0buf.c
           M /branches/innodb+multibp/buf/buf0flu.c
           M /branches/innodb+multibp/buf/buf0lru.c
           M /branches/innodb+multibp/buf/buf0rea.c
           M /branches/innodb+multibp/handler/ha_innodb.cc
           M /branches/innodb+multibp/handler/i_s.cc
           M /branches/innodb+multibp/ibuf/ibuf0ibuf.c
           M /branches/innodb+multibp/include/buf0buddy.h
           M /branches/innodb+multibp/include/buf0buddy.ic
           M /branches/innodb+multibp/include/buf0buf.h
           M /branches/innodb+multibp/include/buf0buf.ic
           M /branches/innodb+multibp/include/buf0flu.h
           M /branches/innodb+multibp/include/buf0flu.ic
           M /branches/innodb+multibp/include/buf0lru.h
           M /branches/innodb+multibp/include/buf0rea.h
           M /branches/innodb+multibp/include/buf0types.h
           M /branches/innodb+multibp/include/ibuf0ibuf.ic
           M /branches/innodb+multibp/include/srv0srv.h
           M /branches/innodb+multibp/include/univ.i
           M /branches/innodb+multibp/log/log0log.c
           M /branches/innodb+multibp/log/log0recv.c
           M /branches/innodb+multibp/mem/mem0mem.c
           M /branches/innodb+multibp/page/page0zip.c
           M /branches/innodb+multibp/srv/srv0srv.c
           M /branches/innodb+multibp/srv/srv0start.c
           M /branches/innodb+multibp/trx/trx0trx.c
           M /branches/innodb+multibp/trx/trx0undo.c
        
        branches/innodb+multibp: Unable to crash it with UNIV_DEBUG and UNIV_SYNC_DEBUG
        with both ibtests and Sysbench. The patch now needs a workout from Michael.
        
        ------------------------------------------------------------------------
        r6917 | sbains | 2010-03-31 08:56:18 +0300 (Wed, 31 Mar 2010) | 2 lines
        Changed paths:
           M /branches/innodb+multibp/handler/ha_innodb.cc
        
        branches/innodb+multibp: Fix error introduced in r6916.
        
        ------------------------------------------------------------------------
        r6923 | sbains | 2010-03-31 15:16:04 +0300 (Wed, 31 Mar 2010) | 3 lines
        Changed paths:
           M /branches/innodb+multibp/btr/btr0cur.c
           M /branches/innodb+multibp/buf/buf0buddy.c
           M /branches/innodb+multibp/buf/buf0buf.c
           M /branches/innodb+multibp/buf/buf0flu.c
           M /branches/innodb+multibp/buf/buf0lru.c
           M /branches/innodb+multibp/include/buf0buddy.ic
           M /branches/innodb+multibp/include/buf0buf.h
           M /branches/innodb+multibp/include/buf0buf.ic
           M /branches/innodb+multibp/include/buf0flu.ic
           M /branches/innodb+multibp/page/page0zip.c
        
        branches/innodb+multibp: Fix whitespace issues. Add function
        buf_pool_from_block(). Add some comments to parameters.
        
        ------------------------------------------------------------------------
        r6932 | sbains | 2010-04-01 01:12:07 +0300 (Thu, 01 Apr 2010) | 4 lines
        Changed paths:
           M /branches/innodb+multibp/include/buf0buf.ic
           M /branches/innodb+multibp/include/univ.i
        
        branches/innodb+multibp: Remove bogus assertion. It's possible for the space
        and offset of a page to be undefined during the lifecycle of a page. Remove
        the debug #defines from univ.i.
        
        ------------------------------------------------------------------------
        r6933 | sbains | 2010-04-01 01:22:40 +0300 (Thu, 01 Apr 2010) | 2 lines
        Changed paths:
           M /branches/innodb+multibp/srv/srv0start.c
        
        branches/innodb+multibp: Fix whitespace issues.
        
        ------------------------------------------------------------------------
        r6934 | sbains | 2010-04-01 01:53:18 +0300 (Thu, 01 Apr 2010) | 2 lines
        Changed paths:
           M /branches/innodb+multibp/CMakeLists.txt
           M /branches/innodb+multibp/ChangeLog
           M /branches/innodb+multibp/buf/buf0buf.c
           M /branches/innodb+multibp/buf/buf0flu.c
           M /branches/innodb+multibp/handler/ha_innodb.cc
           M /branches/innodb+multibp/include/buf0buf.h
           M /branches/innodb+multibp/include/buf0buf.ic
           M /branches/innodb+multibp/include/buf0flu.ic
           M /branches/innodb+multibp/include/srv0srv.h
           M /branches/innodb+multibp/include/sync0sync.h
           M /branches/innodb+multibp/include/trx0purge.h
           M /branches/innodb+multibp/include/ut0ut.h
           M /branches/innodb+multibp/include/ut0ut.ic
           M /branches/innodb+multibp/lock/lock0lock.c
           M /branches/innodb+multibp/log/log0recv.c
           M /branches/innodb+multibp/mtr/mtr0mtr.c
           M /branches/innodb+multibp/mysql-test/innodb_bug38231.test
           A /branches/innodb+multibp/mysql-test/innodb_bug51920.result (from /branches/innodb+/mysql-test/innodb_bug51920.result:6931)
           A /branches/innodb+multibp/mysql-test/innodb_bug51920.test (from /branches/innodb+/mysql-test/innodb_bug51920.test:6931)
           M /branches/innodb+multibp/row/row0sel.c
           M /branches/innodb+multibp/srv/srv0srv.c
           M /branches/innodb+multibp/srv/srv0start.c
           M /branches/innodb+multibp/sync/sync0sync.c
           M /branches/innodb+multibp/trx/trx0purge.c
        
        branches/innodb+multibp: Merge revisions r6914:6931 from branches/innodb+
        
        ------------------------------------------------------------------------
        r6935 | sbains | 2010-04-01 02:08:32 +0300 (Thu, 01 Apr 2010) | 3 lines
        Changed paths:
           M /branches/innodb+multibp/buf/buf0flu.c
           M /branches/innodb+multibp/include/buf0flu.ic
           M /branches/innodb+multibp/mtr/mtr0mtr.c
        
        branches/innodb+multibp: Fix the debug assertions for flush order mutex. These
        were missed in r6934.
        
        ------------------------------------------------------------------------
        r6936 | sbains | 2010-04-01 02:46:52 +0300 (Thu, 01 Apr 2010) | 4 lines
        Changed paths:
           M /branches/innodb+multibp/sync/sync0sync.c
        
        branches/innodb+multibp: Because now we have multiple instances of a mutex at
        the same level and these mutexes can be acquired simultaneously we can't
        simply check for <= level. We need to check for <= level - 1.
        
        ------------------------------------------------------------------------
        r6937 | sbains | 2010-04-01 04:40:17 +0300 (Thu, 01 Apr 2010) | 5 lines
        Changed paths:
           M /branches/innodb+multibp/trx/trx0purge.c
        
        branches/innodb+multibp: We need to check if the history list len is > than
        some threshold not that it is evenly divisible by the some batch size. While
        running tests on dscczz01 I've observed that the purge thread can't keep up
        with the generation of the UNDO log records because of the faster code.
        
        ------------------------------------------------------------------------
        r6938 | irana | 2010-04-01 10:15:00 +0300 (Thu, 01 Apr 2010) | 7 lines
        Changed paths:
           M /branches/innodb+multibp/buf/buf0buf.c
           M /branches/innodb+multibp/buf/buf0flu.c
           M /branches/innodb+multibp/include/buf0buf.h
           M /branches/innodb+multibp/include/buf0buf.ic
           M /branches/innodb+multibp/include/buf0flu.h
           M /branches/innodb+multibp/include/buf0flu.ic
           M /branches/innodb+multibp/include/log0log.h
           M /branches/innodb+multibp/include/sync0sync.h
           M /branches/innodb+multibp/log/log0log.c
           M /branches/innodb+multibp/log/log0recv.c
           M /branches/innodb+multibp/mtr/mtr0mtr.c
           M /branches/innodb+multibp/sync/sync0sync.c
        
        branches/innodb+multibp
        
        The buf_flush_order patch that was ported in from 1.1 won't work with
        multiple buffer pools. This patch moves the mutex protecting order of
        insertion in the flush list(s) to log_sys struct so that we can have
        one global mutex protecting insertions into all flush list(s)
        
        ------------------------------------------------------------------------
        r6941 | sbains | 2010-04-02 00:51:28 +0300 (Fri, 02 Apr 2010) | 4 lines
        Changed paths:
           M /branches/innodb+multibp/lock/lock0lock.c
        
        branches/innodb+multibp: We should get the record heap no to check recursively
        only if we are checking a record lock. Prior to this fix we were doing it for
        table locks as well, this is a bug.
        
        ------------------------------------------------------------------------
        r6942 | csun | 2010-04-02 02:39:10 +0300 (Fri, 02 Apr 2010) | 4 lines
        Changed paths:
           M /branches/innodb+multibp/ha/ha0ha.c
        
        branches/innodb+multibp: fix compiler errors on Windows.
        Move ut_ad() to after declarations for C file.
        
        
        ------------------------------------------------------------------------
        r6943 | sbains | 2010-04-03 05:14:25 +0300 (Sat, 03 Apr 2010) | 2 lines
        Changed paths:
           M /branches/innodb+multibp/buf/buf0buf.c
        
        branches/innodb+multibp: Remove the code that created the fake buffer pool.
        
        ------------------------------------------------------------------------
        r6945 | irana | 2010-04-05 23:35:29 +0300 (Mon, 05 Apr 2010) | 5 lines
        Changed paths:
           M /branches/innodb+multibp/lock/lock0lock.c
        
        branches/innodb+multibp
        
        Revert r6941 as it does not resolve the issue and we have to take
        back the whole fix for bug#49047
        
        ------------------------------------------------------------------------
        r6946 | irana | 2010-04-05 23:50:42 +0300 (Mon, 05 Apr 2010) | 6 lines
        Changed paths:
           M /branches/innodb+multibp/include/ut0ut.h
           M /branches/innodb+multibp/include/ut0ut.ic
           M /branches/innodb+multibp/lock/lock0lock.c
        
        branches/innodb+multibp
        
        Merged revisions 6932:6944 from branches/innodb+
        
        This solely includes the reversal of fix for bug#49047
        
        ------------------------------------------------------------------------
        r6947 | sbains | 2010-04-06 01:33:46 +0300 (Tue, 06 Apr 2010) | 3 lines
        Changed paths:
           M /branches/innodb+multibp/buf/buf0lru.c
        
        branches/innodb+multibp: Remove the log sys mutex acquisition when doing
        buffer pool stat aggregation. A dirty read here should suffice.
        
        ------------------------------------------------------------------------
        r6951 | irana | 2010-04-06 17:25:29 +0300 (Tue, 06 Apr 2010) | 5 lines
        Changed paths:
           M /branches/innodb+multibp/buf/buf0buf.c
        
        branches/innodb+mbp
        
        Initialize the buf_page_t::buf_pool pointer when the descriptor is
        allocated using buf_buddy_alloc().
        
        ------------------------------------------------------------------------
        r6954 | jyang | 2010-04-06 21:24:46 +0300 (Tue, 06 Apr 2010) | 4 lines
        Changed paths:
           M /branches/innodb+multibp/handler/ha_innodb.cc
        
        branches/innodb+multibp: Fix a possible null pointer of index_mapping
        in a race condition.
        
        
        ------------------------------------------------------------------------
        r6958 | sbains | 2010-04-07 00:27:44 +0300 (Wed, 07 Apr 2010) | 3 lines
        Changed paths:
           M /branches/innodb+multibp/include/ut0mem.h
           M /branches/innodb+multibp/ut/ut0mem.c
        
        branches/innodb+multibp: Fix part of Bug#52546. We allow ut_free() to accept
        a NULL pointer and treat it as a nop.
        
        ------------------------------------------------------------------------
        r6961 | jyang | 2010-04-07 10:50:03 +0300 (Wed, 07 Apr 2010) | 9 lines
        Changed paths:
           M /branches/innodb+multibp/handler/ha_innodb.cc
        
        branches/innodb+multibp: Fix for bug #52580: Crash in
        ha_innobase::open on executing INSERT with concurrent ALTER TABLE.
        Change in MySQL bug #51557 releases the mutex LOCK_open before
        ha_innobase::open(), causing racing condition for index translation
        table creation. Fix it by adding dict_sys mutex for the operation.
        
        rb://283, approved by Marko.
        
        
        ------------------------------------------------------------------------
        r6963 | irana | 2010-04-07 19:14:10 +0300 (Wed, 07 Apr 2010) | 15 lines
        Changed paths:
           M /branches/innodb+multibp/handler/ha_innodb.cc
        
        branches/innodb+multibp
        
        Force setting of buf_pool->LRU_old_ratio by calling
        buf_LRU_old_ratio_update() with adjust set to TRUE. This will make sure
        that we grab the buf_pool mutex and actually adjust the
        buf_pool->LRU_old pointer instead of just updating the
        buf_pool->LRU_old_ratio.
        
        Note that after this change there is no call to
        buf_LRU_old_ratio_update() with adjust set to FALSE and therefore
        this parameter should be removed. I am keeping it for now to first
        make sure that the fix does work.
        
        Approved by: No one. Sunny agreed with my hypothesis of the problem.
        
        ------------------------------------------------------------------------
        r6964 | irana | 2010-04-07 19:59:59 +0300 (Wed, 07 Apr 2010) | 5 lines
        Changed paths:
           M /branches/innodb+multibp/handler/ha_innodb.cc
        
        branches/innodb+multibp
        
        Remove a too strong assertion on behalf of Jimmy.
        
        
        ------------------------------------------------------------------------
        r6971 | sbains | 2010-04-09 13:23:33 +0300 (Fri, 09 Apr 2010) | 6 lines
        Changed paths:
           M /branches/innodb+multibp/buf/buf0buf.c
        
        branches/innodb+multibp: When getting the oldest (minimum) LSN value from all
        the flush lists we need to acquire the flush list mutex. We were incorrectly
        acquiring the buffer pool mutex.
        
        This patch should fix a slew of bugs reported by Michael.
        
        ------------------------------------------------------------------------
        r6972 | sbains | 2010-04-10 00:25:09 +0300 (Sat, 10 Apr 2010) | 5 lines
        Changed paths:
           M /branches/innodb+multibp/buf/buf0buf.c
        
        branches/innodb+multibp: We should not reset the lsn to 0 when we encounter
        an empty flush list. Oldest LSN should be 0 only when all flush lists are empty.
        e.g., without this fix if even one flush list was empty we would end up
        breaking WAL.
        
        ------------------------------------------------------------------------
        r6987 | sbains | 2010-04-14 00:14:13 +0300 (Wed, 14 Apr 2010) | 12 lines
        Changed paths:
           M /branches/innodb+multibp/buf/buf0buf.c
        
        branches/innodb+multibp: When calculating the oldest_lsn we can have a
        situation where we've iterated to say buffer pool 3 and another thread
        adds two new dirty pages, the first to buffer pool 1 and the second to
        buffer pool 4. Up to say buffer pool 3 the oldest_lsn was 0. Now, we will
        end up returning the lsn at buffer pool 4 as the oldest LSN. We prevent this
        by acquiring the flush order mutex.
        
        One other future option is to calculate the min_lsn when flushing pages
        from the list and maintaining a running total using atomics. That way
        we can get rid of this function altogether. The atomics will only really
        be required when we do parallel flushing.
        
        ------------------------------------------------------------------------
        r6992 | sbains | 2010-04-14 02:45:59 +0300 (Wed, 14 Apr 2010) | 2 lines
        Changed paths:
           M /branches/innodb+multibp/include/ut0rbt.h
           M /branches/innodb+multibp/ut/ut0rbt.c
        
        branches/innodb+multibp: Fix copyright of the rbt code.
        
        ------------------------------------------------------------------------
      7f741204
  4. 12 Apr, 2010 1 commit
  5. 07 Apr, 2010 2 commits
  6. 06 Apr, 2010 1 commit
    • mmakela's avatar
      branches/innodb+: Merge revisions 6925:6949 from branches/zip: · 6e3a51e0
      mmakela authored
        ------------------------------------------------------------------------
        r6949 | mmakela | 2010-04-06 16:11:46 +0300 (Tue, 06 Apr 2010) | 7 lines
      
        branches/zip: Add debug checks to track down Issue #461.
      
        dict_table_check_for_dup_indexes(): Add the flag tmp_ok.  If !tmp_ok,
        check that no index name starts with TEMP_INDEX_PREFIX.
      
        ha_innobase::add_index(), ha_innobase::prepare_drop_index(),
        ha_innobase::final_drop_index(): Call dict_table_check_for_dup_indexes().
        ------------------------------------------------------------------------
      6e3a51e0
  7. 05 Apr, 2010 1 commit
  8. 31 Mar, 2010 7 commits
    • irana's avatar
      branches/innodb+ rb://257 · eb6e2444
      irana authored
      When a transaction joins we check if there are any other transactions
      waiting on its locks. If there aren't any waiting then no deadlock can
      occur.  This patch however has additional changes.
      
       1. Count leading zeros
       2. Count trailing zeros
      
      There are two version of both these utility functions. One is hand
      coded and the other will use the GCC builtin when available. The
      changes to configure have yet to be made.
      
      Simplify the next record lock fetch in the deadlock check code.
      
      Pass the heap number as a parameter to the deadlock check code.
      
      Written by: Sunny
      eb6e2444
    • irana's avatar
      branches/innodb+ rb://281 · 3ac32567
      irana authored
      changes to mtr_commit:
      
      1) grab log mutex (and do initial mtr commit stuff)
      for each dirty block
       2) grab flush_list mutex
       3) Insert into flush list
       4) release flush_list mutex
      5) release log_sys mutex
      
      Changed version:
      
      1) grab log mutex (and do initial mtr commit stuff)
      2) grab a new flushList order mutex
      3) release log mutex
      for each dirty block
       4) grab flush_list mutex
       5) Insert into flush list
       6) release flush_list mutex
      7) Release new flush list order mutex 
      
      Approved by: Marko has given the initial nod.
      3ac32567
    • irana's avatar
      branches/innodb+ · af835e86
      irana authored
      Non-functional change. Take our the start up message about ignoring
      innodb_use_native_aio.
      af835e86
    • sbains's avatar
      branches/innodb+: Add check for libaio on Linux. · 6e0fc8e8
      sbains authored
      6e0fc8e8
    • sbains's avatar
      branches/innodb+: Create a separate purge thread to do the purge. Introduce · 5850b0ed
      sbains authored
      two new configuration parameters.
      
        1. innodb-purge-threads := [01] -- default is 0
        2. innodb-purge-batch-size := 20 ... 5000 -- default is 20
      
      rb://271
      5850b0ed
    • mmakela's avatar
      branches/innodb+: Merge revisions r6897:6925 from branches/zip. · 20f9d908
      mmakela authored
      Skip r6900, which was backported from branches/innodb+ 6899.
        ------------------------------------------------------------------------
        r6919 | mmakela | 2010-03-31 11:34:22 +0300 (Wed, 31 Mar 2010) | 54 lines
        Changed paths:
           M /branches/zip/ChangeLog
           M /branches/zip/handler/ha_innodb.cc
           M /branches/zip/mysql-test/innodb_bug38231.test
           A /branches/zip/mysql-test/innodb_bug51920.result
           A /branches/zip/mysql-test/innodb_bug51920.test
           M /branches/zip/row/row0sel.c
           M /branches/zip/srv/srv0srv.c
      
        branches/zip: Merge revisions 6788:6918 from branches/5.1:
      
          ------------------------------------------------------------------------
          r6822 | vasil | 2010-03-15 10:17:31 +0200 (Mon, 15 Mar 2010) | 12 lines
          Changed paths:
             M /branches/5.1/row/row0sel.c
      
          branches/5.1:
      
          Typecast to silence a compiler warning:
      
          row/row0sel.c: 4548
                  C4244: '=' : conversion from 'float' to 'ib_ulonglong', possible loss of data
          row/row0sel.c: 4553
                  C4244: '=' : conversion from 'double' to 'ib_ulonglong', possible loss of data
      
          Reported by:	Jonas Oreland <Jonas.Oreland@Sun.COM>
          Discussed with:	Sunny Bains <sunny.bains@oracle.com>
          ------------------------------------------------------------------------
          r6884 | vdimov | 2010-03-26 13:05:03 +0200 (Fri, 26 Mar 2010) | 6 lines
          Changed paths:
             M /branches/5.1/mysql-test/innodb_bug38231.test
      
          branches/5.1:
      
          Fix a non-determinism in innodb_bug38231.
      
          Reported by:	Sergey Vojtovich <svoj@Sun.COM>
          ------------------------------------------------------------------------
          r6911 | vdimov | 2010-03-30 11:39:02 +0300 (Tue, 30 Mar 2010) | 2 lines
          Changed paths:
             M /branches/5.1/handler/ha_innodb.cc
      
          branches/5.1: Whitespace fixup
          ------------------------------------------------------------------------
          r6912 | vdimov | 2010-03-30 12:18:46 +0300 (Tue, 30 Mar 2010) | 2 lines
          Changed paths:
             M /branches/5.1/handler/ha_innodb.cc
      
          branches/5.1: Whitespace fixup on line 354
          ------------------------------------------------------------------------
          r6918 | mmakela | 2010-03-31 11:14:51 +0300 (Wed, 31 Mar 2010) | 6 lines
          Changed paths:
             A /branches/5.1/mysql-test/innodb_bug51920.result
             A /branches/5.1/mysql-test/innodb_bug51920.test
             M /branches/5.1/srv/srv0srv.c
      
          branches/5.1: Obey KILL during a lock wait (Bug #51920).
      
          srv_suspend_mysql_thread(), srv_lock_timeout_and_monitor_thread():
          Check trx_is_interrupted() in addition to checking the lock wait timeout.
      
          rb://279 approved by Sunny Bains
          ------------------------------------------------------------------------
        ------------------------------------------------------------------------
        r6920 | mmakela | 2010-03-31 11:49:08 +0300 (Wed, 31 Mar 2010) | 1 line
        Changed paths:
           M /branches/zip/row/row0sel.c
      
        branches/zip: Fix a compilation error that sneaked in in r6919.
        ------------------------------------------------------------------------
        r6922 | mmakela | 2010-03-31 14:54:30 +0300 (Wed, 31 Mar 2010) | 11 lines
        Changed paths:
           M /branches/zip/mysql-test/innodb_bug51920.result
           M /branches/zip/mysql-test/innodb_bug51920.test
      
        branches/zip: Merge revisions 6918:6921 from branches/5.1:
      
          ------------------------------------------------------------------------
          r6921 | mmakela | 2010-03-31 14:33:04 +0300 (Wed, 31 Mar 2010) | 2 lines
          Changed paths:
             M /branches/5.1/mysql-test/innodb_bug51920.result
             M /branches/5.1/mysql-test/innodb_bug51920.test
      
          branches/5.1: innodb_bug51920.test: Make the test quicker and more
          deterministic.  Suggested by Vasil Dimov.
          ------------------------------------------------------------------------
        ------------------------------------------------------------------------
        r6925 | mmakela | 2010-03-31 15:30:56 +0300 (Wed, 31 Mar 2010) | 9 lines
      
        branches/zip: Merge revisions 6921:6924 from branches/5.1:
      
          ------------------------------------------------------------------------
          r6924 | mmakela | 2010-03-31 15:28:25 +0300 (Wed, 31 Mar 2010) | 1 line
          Changed paths:
             M /branches/5.1/mysql-test/innodb_bug51920.test
      
          branches/5.1: innodb_bug51920.test: Fix a race condition.
          ------------------------------------------------------------------------
        ------------------------------------------------------------------------
      20f9d908
    • sbains's avatar
      branches/innodb+: Create additional rollback segments on startup. Reduce · f8f424da
      sbains authored
      the upper limit of total rollback segments from 256 to 128. This is because
      we can't use the sign bit. It has not caused problems in the past because we
      only created one segment. InnoDB has always had the capability to use the
      additional rollback segments therefore this patch is backwards compatible.
      The only requirement to maintain backward compatibility has been to ensure
      that the additional segments are created after the double write buffer.
      This is to avoid breaking assumptions in the existing code.
      
      Fix Bug#26590 MySQL does not allow more than 1023 open transactions
      f8f424da
  9. 30 Mar, 2010 1 commit
  10. 29 Mar, 2010 8 commits
    • irana's avatar
      branches/innodb+ rb://273 · 9280ce1e
      irana authored
      Don't allow master thread to flush pages if it has been less then
      a second since last iteration.
      
      Approved by: Marko
      9280ce1e
    • mmakela's avatar
      branches/innodb+: ibuf_set_entry_counter(): Return FALSE · de541c9a
      mmakela authored
      if the cursor is not positioned at or before a user record.
      Spotted by Sunny or his gcc, which noted that counter may be uninitialized.
      de541c9a
    • mmakela's avatar
      branches/innodb+: Buffer DELETE and purge on UNIQUE indexes. Sunny · efc82fb8
      mmakela authored
      noted that the check for ignore_secondary_unique might not be disabled
      for deletes.  Indeed, I see no reason for the check to exist for deletes.
      
      btr_op_enum: Document the constants. Add BTR_INSERT_IGNORE_UNIQUE_OP.
      
      btr_cur_search_to_nth_level(): Remove the variable
      ignore_sec_unique. Use btr_op instead. Invoke ibuf_should_try() with
      ignore_sec_unique = (btr_op != BTR_INSERT_OP), that is, always ignore
      the UNIQUE constraint when buffering delete-mark and purge.
      
      BTR_IGNORE_SEC_UNIQUE: Note that the flag only makes sense in
      conjunction with BTR_INSERT.
      
      rb://274 approved by Sunny Bains.  This addresses Issue #471.
      efc82fb8
    • mmakela's avatar
      branches/innodb+: btr_cur_search_to_nth_level(): Remove a bogus comment. · 66ed2719
      mmakela authored
      The adaptive hash index can be used when a buffered operation is requested,
      and the latch_mode check does not prevent it, because latch_mode does not
      contain any btr_op bits at this point.
      66ed2719
    • mmakela's avatar
      branches/innodb+: Add debug assertions to track down Bug #52360. · 8cf6771b
      mmakela authored
      hash_table_t::magic_n: Add HASH_TABLE_MAGIC_N checks, which were fully absent.
      ut_hash_ulint(): Assert table_size > 0 before division.
      8cf6771b
    • mmakela's avatar
      branches/innodb+: Merge revisions 6853:6897 from branches/zip: · d08cd430
      mmakela authored
      Skip r6860, which was merged from branches/innodb+ to branches/zip,
      and r6857, which is only applicable to branches/zip.
        ------------------------------------------------------------------------
        r6858 | mmakela | 2010-03-23 14:09:24 +0200 (Tue, 23 Mar 2010) | 1 line
        Changed paths:
           M /branches/zip/handler/ha_innodb.cc
      
        branches/zip: innodb_read_ahead_threshold: Add missing space to help string.
        ------------------------------------------------------------------------
        r6861 | vdimov | 2010-03-23 19:31:02 +0200 (Tue, 23 Mar 2010) | 36 lines
        Changed paths:
           M /branches/zip/trx/trx0i_s.c
      
        branches/zip:
      
        Merge joerg@mysql.com-20100322150231-vdq0afbqtmbs6phy from BZR,
      
        Including univ.i before mysql/plugin.h is needed to avoid this
        compiler error:
      
        o  This is how gcc puts it:
        o  > > ccache /usr/local/gcc-4.3.2/bin/gcc -static-libgcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -I../../include -I../../regex -I./include -I../../sql -I. -I../../zlib    -g -O3 -march=i686   -DUNIV_LINUX -MT libinnobase_a-trx0i_s.o -MD -MP -MF .deps/libinnobase_a-trx0i_s.Tpo -c -o libinnobase_a-trx0i_s.o `test -f 'trx/trx0i_s.c' || echo './'`trx/trx0i_s.c
        o  > > In file included from ./include/univ.i:114,
        o  > >                  from trx/trx0i_s.c:36:
        o  > > ../../include/my_pthread.h:628: error: expected ')' before '*' token
        o  > > In file included from ../../include/my_pthread.h:732,
        o  > >                  from ./include/univ.i:114,
        o  > >                  from trx/trx0i_s.c:36:
        o  > > ../../include/mysql/psi/mysql_thread.h:100: error: expected specifier-qualifier-list before 'pthread_rwlock_t'
        o  > > ../../include/mysql/psi/mysql_thread.h:116: error: expected specifier-qualifier-list before 'pthread_rwlock_t'
        o  > > ../../include/mysql/psi/mysql_thread.h: In function 'inline_mysql_rwlock_init':
        o  > > ../../include/mysql/psi/mysql_thread.h:711: error: 'mysql_rwlock_t' has no member named 'm_psi'
        o  > > ../../include/mysql/psi/mysql_thread.h:716: error: 'mysql_rwlock_t' has no member named 'm_rwlock'
        o  > > .... ((continued))
        o  
        o  Intel's icc gives slightly clearer messages:
        o  > > icc -static-intel -static-libgcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -I../../include -I../../regex -I./include -I../../sql -I. -I../../zlib    -O3 -g -unroll2 -ip -mp -restrict -no-ftz -no-prefetch   -DUNIV_LINUX -MT libinnobase_a-trx0i_s.o -MD -MP -MF .deps/libinnobase_a-trx0i_s.Tpo -c -o libinnobase_a-trx0i_s.o `test -f 'trx/trx0i_s.c' || echo './'`trx/trx0i_s.c
        o  > > ../../include/my_pthread.h(628): error: identifier "pthread_rwlock_t" is undefined
        o  > >   extern int rw_pr_init(rw_pr_lock_t *);
        o  > >                         ^
        o  > > 
        o  > > ../../include/mysql/psi/mysql_thread.h(100): error: identifier "pthread_rwlock_t" is undefined
        o  > >     rw_lock_t m_rwlock;
        o  > >     ^
        o  > > 
        o  > > ../../include/mysql/psi/mysql_thread.h(116): error: identifier "pthread_rwlock_t" is undefined
        o  > >     rw_pr_lock_t m_prlock;
        o  > >     ^
        ------------------------------------------------------------------------
        r6864 | mmakela | 2010-03-24 14:05:53 +0200 (Wed, 24 Mar 2010) | 1 line
        Changed paths:
           M /branches/zip/include/data0type.ic
      
        branches/zip: dtype_new_store_for_order_and_null_size(): Add ut_ad() on mtype.
        ------------------------------------------------------------------------
        r6868 | mmakela | 2010-03-25 13:03:08 +0200 (Thu, 25 Mar 2010) | 1 line
        Changed paths:
           M /branches/zip/page/page0page.c
      
        branches/zip: page_validate(): Check the buf[] bounds.
        ------------------------------------------------------------------------
        r6871 | vdimov | 2010-03-25 16:39:44 +0200 (Thu, 25 Mar 2010) | 4 lines
        Changed paths:
           M /branches/zip/ChangeLog
      
        branches/zip:
      
        Whitespace fixup to be consistent with the rest of the file.
        ------------------------------------------------------------------------
        r6872 | vdimov | 2010-03-25 17:03:17 +0200 (Thu, 25 Mar 2010) | 4 lines
        Changed paths:
           M /branches/zip/ChangeLog
      
        branches/zip:
      
        Fix ChangeLog - write only the bug title in bugs.mysql.com-related entires.
        ------------------------------------------------------------------------
        r6873 | vdimov | 2010-03-25 17:06:56 +0200 (Thu, 25 Mar 2010) | 4 lines
        Changed paths:
           M /branches/zip/ChangeLog
      
        branches/zip:
      
        Use Bug#N instead of Bug #N to be consistent with the rest of the fil.
        ------------------------------------------------------------------------
        r6874 | vdimov | 2010-03-25 17:17:52 +0200 (Thu, 25 Mar 2010) | 4 lines
        Changed paths:
           M /branches/zip/ChangeLog
      
        branches/zip:
      
        Wrap ChangeLog at 78th column
        ------------------------------------------------------------------------
        r6875 | vdimov | 2010-03-25 18:18:15 +0200 (Thu, 25 Mar 2010) | 4 lines
        Changed paths:
           M /branches/zip/ChangeLog
      
        branches/zip:
      
        Wrap line at 78 column in ChangeLog.
        ------------------------------------------------------------------------
        r6891 | vdimov | 2010-03-26 16:19:01 +0200 (Fri, 26 Mar 2010) | 5 lines
        Changed paths:
           M /branches/innodb+/buf/buf0buddy.c
           M /branches/innodb+/include/btr0btr.ic
           M /branches/innodb+/include/buf0buf.ic
           M /branches/innodb+/include/handler0alter.h
           M /branches/innodb+/include/mtr0mtr.ic
           M /branches/innodb+/include/pars0pars.h
           M /branches/innodb+/include/row0merge.h
           M /branches/innodb+/include/row0row.h
           M /branches/innodb+/include/row0sel.h
           M /branches/innodb+/include/row0types.h
           M /branches/innodb+/include/sync0rw.h
           M /branches/innodb+/include/ut0lst.h
           M /branches/innodb+/include/ut0ut.h
           M /branches/innodb+/os/os0thread.c
           M /branches/innodb+/pars/pars0pars.c
           M /branches/innodb+/plug.in
           M /branches/innodb+/row/row0purge.c
           M /branches/innodb+/row/row0row.c
           M /branches/innodb+/row/row0uins.c
           M /branches/innodb+/trx/trx0rec.c
           M /branches/innodb+/ut/ut0ut.c
           M /branches/innodb+_persistent_stats/buf/buf0buddy.c
           M /branches/innodb+_persistent_stats/include/btr0btr.ic
           M /branches/innodb+_persistent_stats/include/buf0buf.ic
           M /branches/innodb+_persistent_stats/include/handler0alter.h
           M /branches/innodb+_persistent_stats/include/mtr0mtr.ic
           M /branches/innodb+_persistent_stats/include/row0merge.h
           M /branches/innodb+_persistent_stats/include/row0row.h
           M /branches/innodb+_persistent_stats/include/row0sel.h
           M /branches/innodb+_persistent_stats/include/row0types.h
           M /branches/innodb+_persistent_stats/include/sync0rw.h
           M /branches/innodb+_persistent_stats/os/os0thread.c
           M /branches/innodb+_persistent_stats/plug.in
           M /branches/innodb+_persistent_stats/row/row0purge.c
           M /branches/innodb+_persistent_stats/row/row0row.c
           M /branches/innodb+_persistent_stats/row/row0uins.c
           M /branches/innodb+_persistent_stats/trx/trx0rec.c
           M /branches/performance_schema/buf/buf0buddy.c
           M /branches/performance_schema/buf/buf0flu.c
           M /branches/performance_schema/compile-innodb-debug
           M /branches/performance_schema/include/btr0btr.ic
           M /branches/performance_schema/include/buf0buf.ic
           M /branches/performance_schema/include/dict0boot.ic
           M /branches/performance_schema/include/dict0dict.h
           M /branches/performance_schema/include/os0file.ic
           M /branches/performance_schema/include/os0thread.h
           M /branches/performance_schema/include/row0sel.h
           M /branches/performance_schema/include/trx0purge.h
           M /branches/performance_schema/include/trx0sys.ic
           M /branches/performance_schema/include/ut0wqueue.h
           M /branches/performance_schema/lock/lock0iter.c
           M /branches/performance_schema/mem/mem0pool.c
           M /branches/performance_schema/os/os0thread.c
           M /branches/performance_schema/page/page0zip.c
           M /branches/performance_schema/que/que0que.c
           M /branches/performance_schema/read/read0read.c
           M /branches/performance_schema/row/row0purge.c
           M /branches/performance_schema/row/row0row.c
           M /branches/performance_schema/row/row0vers.c
           M /branches/performance_schema/sync/sync0arr.c
           M /branches/performance_schema/thr/thr0loc.c
           M /branches/performance_schema/trx/trx0rec.c
           M /branches/performance_schema/trx/trx0roll.c
           M /branches/performance_schema/trx/trx0undo.c
           M /branches/performance_schema/ut/ut0wqueue.c
           M /branches/perfschema/btr/btr0sea.c
           M /branches/perfschema/buf/buf0buddy.c
           M /branches/perfschema/buf/buf0flu.c
           M /branches/perfschema/compile-innodb-debug
           M /branches/perfschema/ha/hash0hash.c
           M /branches/perfschema/include/buf0buf.ic
           M /branches/perfschema/include/buf0flu.ic
           M /branches/perfschema/include/dict0boot.ic
           M /branches/perfschema/include/os0thread.h
           M /branches/perfschema/include/sync0rw.h
           M /branches/perfschema/include/sync0rw.ic
           M /branches/perfschema/include/sync0sync.ic
           M /branches/perfschema/mem/mem0pool.c
           M /branches/perfschema/os/os0thread.c
           M /branches/perfschema/page/page0zip.c
           M /branches/perfschema/que/que0que.c
           M /branches/perfschema/read/read0read.c
           M /branches/perfschema/row/row0purge.c
           M /branches/perfschema/row/row0vers.c
           M /branches/perfschema/sync/sync0arr.c
           M /branches/perfschema/sync/sync0rw.c
           M /branches/perfschema/thr/thr0loc.c
           M /branches/perfschema/trx/trx0purge.c
           M /branches/perfschema/trx/trx0rec.c
           M /branches/perfschema/trx/trx0roll.c
           M /branches/perfschema/trx/trx0undo.c
           M /branches/perfschema/ut/ut0wqueue.c
           M /branches/zip/buf/buf0buddy.c
           M /branches/zip/buf/buf0flu.c
           M /branches/zip/buf/buf0rea.c
           M /branches/zip/fil/fil0fil.c
           M /branches/zip/include/btr0btr.ic
           M /branches/zip/include/buf0buf.ic
           M /branches/zip/include/buf0flu.h
           M /branches/zip/include/data0type.ic
           M /branches/zip/include/mtr0mtr.ic
           M /branches/zip/include/row0sel.h
           M /branches/zip/include/sync0rw.h
           M /branches/zip/plug.in
           M /branches/zip/row/row0row.c
           M /branches/zip/trx/trx0i_s.c
           M /branches/zip/trx/trx0rec.c
           M /branches/zip/trx/trx0sys.c
      
        Non-functional change: update copyright year to 2010 of the files
        that have been modified after 2010-01-01 according to svn.
      
        for f in $(svn log -v -r{2010-01-01}:HEAD |grep "^   M " |cut -b 16- |sort -u) ; do sed -i "" -E 's/(Copyright \(c\) [0-9]{4},) [0-9]{4}, (.*Innobase Oy.+All Rights Reserved)/\1 2010, \2/' $f ; done
        ------------------------------------------------------------------------
        r6897 | mmakela | 2010-03-29 11:36:19 +0300 (Mon, 29 Mar 2010) | 3 lines
        Changed paths:
           M /branches/zip/handler/ha_innodb.cc
      
        branches/zip: innodb_mutex_show_status(): Fix a condition
        that was accidentally negated in r6781, making SHOW ENGINE INNODB MUTEX STATUS
        display only locks with no OS waits.
        ------------------------------------------------------------------------
      d08cd430
    • jyang's avatar
      branches/innodb+: Merge branches/perfschema back into innodb+. · 8610f05a
      jyang authored
      Check in code change for implementing Performace Schema in InnoDB.
      Objects in four different modules in InnoDB have been performance
      instrumented, these modules are:
      1) mutexes
      2) rwlocks
      3) file I/O
      4) threads
      
      We mostly preserved the existing APIs, but APIs would point to
      instrumented function wrappers if performance schema is defined.
      There are 4 different defines that controls the instrumentation of
      each module.  The feature is off by default, and will be compiled in
      with special build option, and requre configure option to turn it on
      when server boots.  For more detail design and functional information,
      please refer to performance schema wiki page.
      
      rb://270 approved by Marko Mäkelä
      8610f05a
    • mmakela's avatar
      branches/innodb+: ibuf_get_volume_buffered(): Pass UT_ARR_SIZE(hash_bitmap) · 29a1b47c
      mmakela authored
      in all calls to ibuf_get_volume_buffered_count().
      This mistake was made in r6866 and caused the follow-up of Issue #470.
      29a1b47c
  11. 27 Mar, 2010 1 commit
    • vdimov's avatar
      branches/innodb+: · 08598d78
      vdimov authored
      Merge an error code from branches/innodb+_persistent_stats, that is used
      in ut_strerr().
      08598d78
  12. 26 Mar, 2010 4 commits
    • vdimov's avatar
      Non-functional change: update copyright year to 2010 of the files · a5b61a20
      vdimov authored
      that have been modified after 2010-01-01 according to svn.
      
      for f in $(svn log -v -r{2010-01-01}:HEAD |grep "^   M " |cut -b 16- |sort -u) ; do sed -i "" -E 's/(Copyright \(c\) [0-9]{4},) [0-9]{4}, (.*Innobase Oy.+All Rights Reserved)/\1 2010, \2/' $f ; done
      a5b61a20
    • vdimov's avatar
      branches/innodb+: Merge c6413 from branches/innodb+_persistent_stats: · 17898a0a
      vdimov authored
        ------------------------------------------------------------------------
        r6413 | vasil | 2010-01-11 15:18:35 +0200 (Mon, 11 Jan 2010) | 4 lines
        Changed paths:
           M /branches/innodb+_persistent_stats/include/pars0pars.h
           M /branches/innodb+_persistent_stats/pars/pars0pars.c
        
        branches/innodb+: Add a func to store uint64
        
        Add a new function pars_info_add_uint64_literal() that adds a literal of
        type ib_uint64_t.
        ------------------------------------------------------------------------
      17898a0a
    • vdimov's avatar
      branches/innodb+: Merge c6464 from branches/innodb+_persistent_stats: · 5971eab1
      vdimov authored
        ------------------------------------------------------------------------
        r6464 | vasil | 2010-01-14 16:00:19 +0200 (Thu, 14 Jan 2010) | 8 lines
        Changed paths:
           M /branches/innodb+_persistent_stats/include/ut0ut.h
           M /branches/innodb+_persistent_stats/ut/ut0ut.c
        
        branches/innodb+: Implement ut_strerr()
        
        Implement a function that converts the DB_* error codes to a human
        readable text. The function is similar to strerror() but is not named
        ut_strerror() on purpose in order not to confuse it with a wrapper for
        strerror().
        
        The ut_error on unknown error code was suggested by Marko, thanks!
        ------------------------------------------------------------------------
      5971eab1
    • vdimov's avatar
      branches/innodb+: Merge c6504 from branches/innodb+_persistent_stats: · 33fc3e60
      vdimov authored
        ------------------------------------------------------------------------
        r6504 | vasil | 2010-01-21 19:41:38 +0200 (Thu, 21 Jan 2010) | 3 lines
        Changed paths:
           M /branches/innodb+_persistent_stats/include/ut0lst.h
        
        branches/innodb+: Remove compiler warning
        
        the address of 'index1' will always evaluate as 'true'
        ------------------------------------------------------------------------
      33fc3e60
  13. 25 Mar, 2010 2 commits
  14. 24 Mar, 2010 3 commits
  15. 23 Mar, 2010 1 commit
    • mmakela's avatar
      branches/innodb+: Merge revisions 6801:6853 from branches/zip: · b04d3081
      mmakela authored
        ------------------------------------------------------------------------
        r6805 | inaam | 2010-03-11 23:15:17 +0200 (Thu, 11 Mar 2010) | 6 lines
        Changed paths:
           M /branches/zip/os/os0file.c
      
        branches/zip issue#463
      
        Fixed compiler warning about uninitialized variable.
      
        Non-functional change.
        ------------------------------------------------------------------------
        r6828 | calvin | 2010-03-17 17:16:38 +0200 (Wed, 17 Mar 2010) | 7 lines
        Changed paths:
           M /branches/zip/CMakeLists.txt
      
        branches/zip: rename IB_HAVE_PAUSE_INSTRUCTION to
        HAVE_IB_PAUSE_INSTRUCTION in CMakeLists.txt.
      
        The rename was done as r5871, but CMakeLists.txt was
        forgotten. Also, add INNODB_RW_LOCKS_USE_ATOMICS to
        CMake.
        ------------------------------------------------------------------------
        r6830 | marko | 2010-03-18 09:48:18 +0200 (Thu, 18 Mar 2010) | 3 lines
        Changed paths:
           M /branches/zip/ChangeLog
           M /branches/zip/include/buf0buf.ic
      
        branches/zip: buf_page_peek_if_too_old(): Use 32-bit arithmetics
        when comparing the age of access_time to buf_LRU_old_threshold_ms.
        This fixes a bug on 64-bit systems.
        ------------------------------------------------------------------------
        r6840 | calvin | 2010-03-19 00:32:23 +0200 (Fri, 19 Mar 2010) | 6 lines
        Changed paths:
           M /branches/zip/CMakeLists.txt
           M /branches/zip/ChangeLog
      
        branches/zip: Fix Bug #52102 InnoDB Plugin shows performance drop
        comparing to builtin InnoDB (Windows only).
      
        Disable Windows atomics by default.
      
        Approved by: Inaam
        ------------------------------------------------------------------------
        r6853 | marko | 2010-03-22 13:35:29 +0200 (Mon, 22 Mar 2010) | 1 line
        Changed paths:
           M /branches/zip/include/sync0rw.h
           M /branches/zip/include/sync0sync.h
      
        branches/zip: mutex_own(), rw_lock_own(): Add attribute((warn_unused_result)).
        ------------------------------------------------------------------------
      b04d3081
  16. 22 Mar, 2010 1 commit
  17. 19 Mar, 2010 2 commits