]> git.pld-linux.org Git - packages/mysql.git/blobdiff - innodb_extend_slow.patch
- updated to 5.5.32
[packages/mysql.git] / innodb_extend_slow.patch
index 188a2ad97099382a012f801fa7aa4ab88ac893ab..28c495fa33686c2d90b0dd0f222209a6dc8803ba 100644 (file)
@@ -5,9 +5,8 @@
 #!!! notice !!!
 # Any small change to this file in the main branch
 # should be done or reviewed by the maintainer!
-diff -ruN a/storage/innobase/buf/buf0buf.c b/storage/innobase/buf/buf0buf.c
---- a/storage/innobase/buf/buf0buf.c   2010-12-03 15:49:59.175955882 +0900
-+++ b/storage/innobase/buf/buf0buf.c   2010-12-03 17:42:42.074307123 +0900
+--- a/storage/innobase/buf/buf0buf.c
++++ b/storage/innobase/buf/buf0buf.c
 @@ -51,6 +51,40 @@
  #include "dict0dict.h"
  #include "log0recv.h"
@@ -49,7 +48,7 @@ diff -ruN a/storage/innobase/buf/buf0buf.c b/storage/innobase/buf/buf0buf.c
  
  /*
                IMPLEMENTATION OF THE BUFFER POOL
-@@ -2403,8 +2437,16 @@
+@@ -1871,8 +1905,16 @@
        mutex_t*        block_mutex;
        ibool           must_read;
        unsigned        access_time;
@@ -66,7 +65,7 @@ diff -ruN a/storage/innobase/buf/buf0buf.c b/storage/innobase/buf/buf0buf.c
        buf_pool->stat.n_page_gets++;
  
        for (;;) {
-@@ -2422,7 +2464,7 @@
+@@ -1890,7 +1932,7 @@
                //buf_pool_mutex_exit(buf_pool);
                rw_lock_s_unlock(&buf_pool->page_hash_latch);
  
@@ -75,7 +74,7 @@ diff -ruN a/storage/innobase/buf/buf0buf.c b/storage/innobase/buf/buf0buf.c
  
  #if defined UNIV_DEBUG || defined UNIV_BUF_DEBUG
                ut_a(++buf_dbg_counter % 37 || buf_validate());
-@@ -2499,6 +2541,13 @@
+@@ -1986,6 +2028,13 @@
                /* Let us wait until the read operation
                completes */
  
@@ -89,7 +88,7 @@ diff -ruN a/storage/innobase/buf/buf0buf.c b/storage/innobase/buf/buf0buf.c
                for (;;) {
                        enum buf_io_fix io_fix;
  
-@@ -2513,6 +2562,12 @@
+@@ -2000,6 +2049,12 @@
                                break;
                        }
                }
@@ -102,7 +101,7 @@ diff -ruN a/storage/innobase/buf/buf0buf.c b/storage/innobase/buf/buf0buf.c
        }
  
  #ifdef UNIV_IBUF_COUNT_DEBUG
-@@ -2828,6 +2883,11 @@
+@@ -2314,6 +2369,11 @@
        ibool           must_read;
        ulint           retries = 0;
        mutex_t*        block_mutex = NULL;
@@ -114,7 +113,7 @@ diff -ruN a/storage/innobase/buf/buf0buf.c b/storage/innobase/buf/buf0buf.c
        buf_pool_t*     buf_pool = buf_pool_get(space, offset);
  
        ut_ad(mtr);
-@@ -2856,6 +2916,9 @@
+@@ -2343,6 +2403,9 @@
              || ibuf_page_low(space, zip_size, offset,
                               FALSE, file, line, NULL));
  #endif
@@ -124,16 +123,19 @@ diff -ruN a/storage/innobase/buf/buf0buf.c b/storage/innobase/buf/buf0buf.c
        buf_pool->stat.n_page_gets++;
        fold = buf_page_address_fold(space, offset);
  loop:
-@@ -2930,7 +2993,7 @@
+@@ -2413,9 +2476,9 @@
                        return(NULL);
                }
  
 -              if (buf_read_page(space, zip_size, offset)) {
 +              if (buf_read_page(space, zip_size, offset, trx)) {
+                       buf_read_ahead_random(space, zip_size, offset,
+-                                            ibuf_inside(mtr));
++                                            ibuf_inside(mtr), trx);
                        retries = 0;
                } else if (retries < BUF_PAGE_READ_MAX_RETRIES) {
-                       ++retries;
-@@ -3239,6 +3302,13 @@
+@@ -2725,6 +2788,13 @@
                        /* Let us wait until the read operation
                        completes */
  
@@ -147,7 +149,7 @@ diff -ruN a/storage/innobase/buf/buf0buf.c b/storage/innobase/buf/buf0buf.c
                        for (;;) {
                                enum buf_io_fix io_fix;
  
-@@ -3253,6 +3323,12 @@
+@@ -2739,6 +2809,12 @@
                                        break;
                                }
                        }
@@ -160,7 +162,7 @@ diff -ruN a/storage/innobase/buf/buf0buf.c b/storage/innobase/buf/buf0buf.c
                }
  
                fix_type = MTR_MEMO_BUF_FIX;
-@@ -3279,13 +3355,17 @@
+@@ -2765,13 +2841,17 @@
                read-ahead */
  
                buf_read_ahead_linear(space, zip_size, offset,
@@ -179,7 +181,7 @@ diff -ruN a/storage/innobase/buf/buf0buf.c b/storage/innobase/buf/buf0buf.c
        return(block);
  }
  
-@@ -3309,6 +3389,7 @@
+@@ -2795,6 +2875,7 @@
        unsigned        access_time;
        ibool           success;
        ulint           fix_type;
@@ -187,7 +189,7 @@ diff -ruN a/storage/innobase/buf/buf0buf.c b/storage/innobase/buf/buf0buf.c
  
        ut_ad(block);
        ut_ad(mtr);
-@@ -3386,6 +3467,10 @@
+@@ -2872,6 +2953,10 @@
  #if defined UNIV_DEBUG_FILE_ACCESSES || defined UNIV_DEBUG
        ut_a(block->page.file_page_was_freed == FALSE);
  #endif
@@ -198,7 +200,7 @@ diff -ruN a/storage/innobase/buf/buf0buf.c b/storage/innobase/buf/buf0buf.c
        if (UNIV_UNLIKELY(!access_time)) {
                /* In the case of a first access, try to apply linear
                read-ahead */
-@@ -3393,7 +3478,7 @@
+@@ -2879,7 +2964,7 @@
                buf_read_ahead_linear(buf_block_get_space(block),
                                      buf_block_get_zip_size(block),
                                      buf_block_get_page_no(block),
@@ -207,7 +209,7 @@ diff -ruN a/storage/innobase/buf/buf0buf.c b/storage/innobase/buf/buf0buf.c
        }
  
  #ifdef UNIV_IBUF_COUNT_DEBUG
-@@ -3403,6 +3488,9 @@
+@@ -2889,6 +2974,9 @@
        buf_pool = buf_pool_from_block(block);
        buf_pool->stat.n_page_gets++;
  
@@ -217,7 +219,7 @@ diff -ruN a/storage/innobase/buf/buf0buf.c b/storage/innobase/buf/buf0buf.c
        return(TRUE);
  }
  
-@@ -3425,6 +3513,7 @@
+@@ -2911,6 +2999,7 @@
        buf_pool_t*     buf_pool;
        ibool           success;
        ulint           fix_type;
@@ -225,7 +227,7 @@ diff -ruN a/storage/innobase/buf/buf0buf.c b/storage/innobase/buf/buf0buf.c
  
        ut_ad(mtr);
        ut_ad(mtr->state == MTR_ACTIVE);
-@@ -3511,6 +3600,11 @@
+@@ -2997,6 +3086,11 @@
  #endif
        buf_pool->stat.n_page_gets++;
  
@@ -237,10 +239,9 @@ diff -ruN a/storage/innobase/buf/buf0buf.c b/storage/innobase/buf/buf0buf.c
        return(TRUE);
  }
  
-diff -ruN a/storage/innobase/buf/buf0rea.c b/storage/innobase/buf/buf0rea.c
---- a/storage/innobase/buf/buf0rea.c   2010-12-03 17:32:15.617037263 +0900
-+++ b/storage/innobase/buf/buf0rea.c   2010-12-03 17:42:42.075297193 +0900
-@@ -77,7 +77,8 @@
+--- a/storage/innobase/buf/buf0rea.c
++++ b/storage/innobase/buf/buf0rea.c
+@@ -79,7 +79,8 @@
                        treat the tablespace as dropped; this is a timestamp we
                        use to stop dangling page reads from a tablespace
                        which we have DISCARDed + IMPORTed back */
@@ -250,7 +251,7 @@ diff -ruN a/storage/innobase/buf/buf0rea.c b/storage/innobase/buf/buf0rea.c
  {
        buf_page_t*     bpage;
        ulint           wake_later;
-@@ -179,15 +180,15 @@
+@@ -181,15 +182,15 @@
  
        thd_wait_begin(NULL, THD_WAIT_DISKIO);
        if (zip_size) {
@@ -270,7 +271,27 @@ diff -ruN a/storage/innobase/buf/buf0rea.c b/storage/innobase/buf/buf0rea.c
        }
        thd_wait_end(NULL);
        ut_a(*err == DB_SUCCESS);
-@@ -213,7 +214,8 @@
+@@ -226,8 +227,9 @@
+                               or 0 */
+       ulint   offset,         /*!< in: page number of a page which
+                               the current thread wants to access */
+-      ibool   inside_ibuf)    /*!< in: TRUE if we are inside ibuf
++      ibool   inside_ibuf,    /*!< in: TRUE if we are inside ibuf
+                               routine */
++      trx_t*  trx)
+ {
+       buf_pool_t*     buf_pool = buf_pool_get(space, offset);
+       ib_int64_t      tablespace_version;
+@@ -330,7 +332,7 @@
+                               &err, FALSE,
+                               ibuf_mode | OS_AIO_SIMULATED_WAKE_LATER,
+                               space, zip_size, FALSE,
+-                              tablespace_version, i);
++                              tablespace_version, i, trx);
+                       if (err == DB_TABLESPACE_DELETED) {
+                               ut_print_timestamp(stderr);
+                               fprintf(stderr,
+@@ -380,7 +382,8 @@
  /*==========*/
        ulint   space,  /*!< in: space id */
        ulint   zip_size,/*!< in: compressed page size in bytes, or 0 */
@@ -280,7 +301,7 @@ diff -ruN a/storage/innobase/buf/buf0rea.c b/storage/innobase/buf/buf0rea.c
  {
        buf_pool_t*     buf_pool = buf_pool_get(space, offset);
        ib_int64_t      tablespace_version;
-@@ -227,7 +229,7 @@
+@@ -394,7 +397,7 @@
  
        count = buf_read_page_low(&err, TRUE, BUF_READ_ANY_PAGE, space,
                                  zip_size, FALSE,
@@ -289,7 +310,7 @@ diff -ruN a/storage/innobase/buf/buf0rea.c b/storage/innobase/buf/buf0rea.c
        srv_buf_pool_reads += count;
        if (err == DB_TABLESPACE_DELETED) {
                ut_print_timestamp(stderr);
-@@ -279,7 +281,8 @@
+@@ -446,7 +449,8 @@
        ulint   space,          /*!< in: space id */
        ulint   zip_size,       /*!< in: compressed page size in bytes, or 0 */
        ulint   offset,         /*!< in: page number; see NOTE 3 above */
@@ -299,7 +320,7 @@ diff -ruN a/storage/innobase/buf/buf0rea.c b/storage/innobase/buf/buf0rea.c
  {
        buf_pool_t*     buf_pool = buf_pool_get(space, offset);
        ib_int64_t      tablespace_version;
-@@ -498,7 +501,7 @@
+@@ -665,7 +669,7 @@
                        count += buf_read_page_low(
                                &err, FALSE,
                                ibuf_mode,
@@ -308,7 +329,7 @@ diff -ruN a/storage/innobase/buf/buf0rea.c b/storage/innobase/buf/buf0rea.c
                        if (err == DB_TABLESPACE_DELETED) {
                                ut_print_timestamp(stderr);
                                fprintf(stderr,
-@@ -591,7 +594,7 @@
+@@ -758,7 +762,7 @@
                buf_read_page_low(&err, sync && (i + 1 == n_stored),
                                  BUF_READ_ANY_PAGE, space_ids[i],
                                  zip_size, TRUE, space_versions[i],
@@ -317,7 +338,7 @@ diff -ruN a/storage/innobase/buf/buf0rea.c b/storage/innobase/buf/buf0rea.c
  
                if (UNIV_UNLIKELY(err == DB_TABLESPACE_DELETED)) {
  tablespace_deleted:
-@@ -733,12 +736,12 @@
+@@ -900,12 +904,12 @@
                if ((i + 1 == n_stored) && sync) {
                        buf_read_page_low(&err, TRUE, BUF_READ_ANY_PAGE, space,
                                          zip_size, TRUE, tablespace_version,
@@ -332,10 +353,9 @@ diff -ruN a/storage/innobase/buf/buf0rea.c b/storage/innobase/buf/buf0rea.c
                }
        }
  
-diff -ruN a/storage/innobase/fil/fil0fil.c b/storage/innobase/fil/fil0fil.c
---- a/storage/innobase/fil/fil0fil.c   2010-12-03 15:53:54.610037199 +0900
-+++ b/storage/innobase/fil/fil0fil.c   2010-12-03 17:42:42.079064198 +0900
-@@ -4747,7 +4747,7 @@
+--- a/storage/innobase/fil/fil0fil.c
++++ b/storage/innobase/fil/fil0fil.c
+@@ -4765,7 +4765,7 @@
                                 node->name, node->handle, buf,
                                 offset_low, offset_high,
                                 page_size * n_pages,
@@ -344,7 +364,7 @@ diff -ruN a/storage/innobase/fil/fil0fil.c b/storage/innobase/fil/fil0fil.c
  #endif
                if (success) {
                        node->size += n_pages;
-@@ -5074,7 +5074,7 @@
+@@ -5092,7 +5092,7 @@
  i/o on a tablespace which does not exist */
  UNIV_INTERN
  ulint
@@ -353,7 +373,7 @@ diff -ruN a/storage/innobase/fil/fil0fil.c b/storage/innobase/fil/fil0fil.c
  /*===*/
        ulint   type,           /*!< in: OS_FILE_READ or OS_FILE_WRITE,
                                ORed to OS_FILE_LOG, if a log i/o
-@@ -5099,8 +5099,9 @@
+@@ -5117,8 +5117,9 @@
        void*   buf,            /*!< in/out: buffer where to store read data
                                or from where to write; in aio this must be
                                appropriately aligned */
@@ -364,7 +384,7 @@ diff -ruN a/storage/innobase/fil/fil0fil.c b/storage/innobase/fil/fil0fil.c
  {
        ulint           mode;
        fil_space_t*    space;
-@@ -5268,7 +5269,7 @@
+@@ -5286,7 +5287,7 @@
  #else
        /* Queue the aio request */
        ret = os_aio(type, mode | wake_later, node->name, node->handle, buf,
@@ -373,10 +393,9 @@ diff -ruN a/storage/innobase/fil/fil0fil.c b/storage/innobase/fil/fil0fil.c
  #endif
        ut_a(ret);
  
-diff -ruN a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
---- a/storage/innobase/handler/ha_innodb.cc    2010-12-03 17:36:44.293955189 +0900
-+++ b/storage/innobase/handler/ha_innodb.cc    2010-12-03 17:42:42.090024586 +0900
-@@ -1573,6 +1573,16 @@
+--- a/storage/innobase/handler/ha_innodb.cc
++++ b/storage/innobase/handler/ha_innodb.cc
+@@ -1584,6 +1584,16 @@
        trx->check_unique_secondary = !thd_test_options(
                thd, OPTION_RELAXED_UNIQUE_CHECKS);
  
@@ -393,7 +412,7 @@ diff -ruN a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_
        DBUG_VOID_RETURN;
  }
  
-@@ -1627,6 +1637,32 @@
+@@ -1638,6 +1648,32 @@
        return(trx);
  }
  
@@ -426,7 +445,7 @@ diff -ruN a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_
  /*********************************************************************//**
  Note that a transaction has been registered with MySQL.
  @return true if transaction is registered with MySQL 2PC coordinator */
-@@ -9301,6 +9337,25 @@
+@@ -9417,6 +9453,25 @@
        statement has ended */
  
        if (trx->n_mysql_tables_in_use == 0) {
@@ -452,9 +471,8 @@ diff -ruN a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_
  
                trx->mysql_n_tables_locked = 0;
                prebuilt->used_in_HANDLER = FALSE;
-diff -ruN a/storage/innobase/include/buf0rea.h b/storage/innobase/include/buf0rea.h
---- a/storage/innobase/include/buf0rea.h       2010-12-03 15:18:48.891024406 +0900
-+++ b/storage/innobase/include/buf0rea.h       2010-12-03 17:42:42.096026873 +0900
+--- a/storage/innobase/include/buf0rea.h
++++ b/storage/innobase/include/buf0rea.h
 @@ -27,6 +27,7 @@
  #define buf0rea_h
  
@@ -469,11 +487,22 @@ diff -ruN a/storage/innobase/include/buf0rea.h b/storage/innobase/include/buf0re
        ulint   zip_size,/*!< in: compressed page size in bytes, or 0 */
 -      ulint   offset);/*!< in: page number */
 +      ulint   offset, /*!< in: page number */
++      trx_t*  trx);
+ /********************************************************************//**
+ Applies a random read-ahead in buf_pool if there are at least a threshold
+ value of accessed pages from the random read-ahead area. Does not read any
+@@ -65,8 +67,9 @@
+                               or 0 */
+       ulint   offset,         /*!< in: page number of a page which
+                               the current thread wants to access */
+-      ibool   inside_ibuf);   /*!< in: TRUE if we are inside ibuf
++      ibool   inside_ibuf,    /*!< in: TRUE if we are inside ibuf
+                               routine */
 +      trx_t*  trx);
  /********************************************************************//**
  Applies linear read-ahead if in the buf_pool the page is a border page of
  a linear read-ahead area and all the pages in the area have been accessed.
-@@ -73,7 +75,8 @@
+@@ -98,7 +101,8 @@
        ulint   space,          /*!< in: space id */
        ulint   zip_size,       /*!< in: compressed page size in bytes, or 0 */
        ulint   offset,         /*!< in: page number; see NOTE 3 above */
@@ -483,10 +512,9 @@ diff -ruN a/storage/innobase/include/buf0rea.h b/storage/innobase/include/buf0re
  /********************************************************************//**
  Issues read requests for pages which the ibuf module wants to read in, in
  order to contract the insert buffer tree. Technically, this function is like
-diff -ruN a/storage/innobase/include/fil0fil.h b/storage/innobase/include/fil0fil.h
---- a/storage/innobase/include/fil0fil.h       2010-12-03 15:09:51.290958543 +0900
-+++ b/storage/innobase/include/fil0fil.h       2010-12-03 17:42:42.097027548 +0900
-@@ -611,9 +611,12 @@
+--- a/storage/innobase/include/fil0fil.h
++++ b/storage/innobase/include/fil0fil.h
+@@ -620,9 +620,12 @@
  Reads or writes data. This operation is asynchronous (aio).
  @return DB_SUCCESS, or DB_TABLESPACE_DELETED if we are trying to do
  i/o on a tablespace which does not exist */
@@ -500,7 +528,7 @@ diff -ruN a/storage/innobase/include/fil0fil.h b/storage/innobase/include/fil0fi
  /*===*/
        ulint   type,           /*!< in: OS_FILE_READ or OS_FILE_WRITE,
                                ORed to OS_FILE_LOG, if a log i/o
-@@ -638,8 +641,9 @@
+@@ -647,8 +650,9 @@
        void*   buf,            /*!< in/out: buffer where to store read data
                                or from where to write; in aio this must be
                                appropriately aligned */
@@ -511,9 +539,8 @@ diff -ruN a/storage/innobase/include/fil0fil.h b/storage/innobase/include/fil0fi
  /**********************************************************************//**
  Waits for an aio operation to complete. This function is used to write the
  handler for completed requests. The aio array of pending requests is divided
-diff -ruN a/storage/innobase/include/os0file.h b/storage/innobase/include/os0file.h
---- a/storage/innobase/include/os0file.h       2010-11-03 07:01:13.000000000 +0900
-+++ b/storage/innobase/include/os0file.h       2010-12-03 17:42:42.100023783 +0900
+--- a/storage/innobase/include/os0file.h
++++ b/storage/innobase/include/os0file.h
 @@ -36,6 +36,7 @@
  #define os0file_h
  
@@ -578,7 +605,7 @@ diff -ruN a/storage/innobase/include/os0file.h b/storage/innobase/include/os0fil
        const char*     src_file,/*!< in: file name where func invoked */
        ulint           src_line);/*!< in: line where the func invoked */
  /*******************************************************************//**
-@@ -887,7 +897,8 @@
+@@ -889,7 +899,8 @@
                                offset where to read */
        ulint           offset_high,/*!< in: most significant 32 bits of
                                offset */
@@ -588,7 +615,7 @@ diff -ruN a/storage/innobase/include/os0file.h b/storage/innobase/include/os0fil
  /*******************************************************************//**
  Rewind file to its start, read at most size - 1 bytes from it to str, and
  NUL-terminate str. All errors are silently ignored. This function is
-@@ -1046,10 +1057,11 @@
+@@ -1048,10 +1059,11 @@
                                (can be used to identify a completed
                                aio operation); ignored if mode is
                                OS_AIO_SYNC */
@@ -601,9 +628,8 @@ diff -ruN a/storage/innobase/include/os0file.h b/storage/innobase/include/os0fil
  /************************************************************************//**
  Wakes up all async i/o threads so that they know to exit themselves in
  shutdown. */
-diff -ruN a/storage/innobase/include/os0file.ic b/storage/innobase/include/os0file.ic
---- a/storage/innobase/include/os0file.ic      2010-11-03 07:01:13.000000000 +0900
-+++ b/storage/innobase/include/os0file.ic      2010-12-03 17:42:42.102024458 +0900
+--- a/storage/innobase/include/os0file.ic
++++ b/storage/innobase/include/os0file.ic
 @@ -229,6 +229,7 @@
                                (can be used to identify a completed
                                aio operation); ignored if mode is
@@ -638,9 +664,8 @@ diff -ruN a/storage/innobase/include/os0file.ic b/storage/innobase/include/os0fi
  
        register_pfs_file_io_end(locker, n);
  
-diff -ruN a/storage/innobase/include/srv0srv.h b/storage/innobase/include/srv0srv.h
---- a/storage/innobase/include/srv0srv.h       2010-12-03 17:32:15.634987408 +0900
-+++ b/storage/innobase/include/srv0srv.h       2010-12-03 17:42:42.104028644 +0900
+--- a/storage/innobase/include/srv0srv.h
++++ b/storage/innobase/include/srv0srv.h
 @@ -71,6 +71,9 @@
  #define SRV_AUTO_EXTEND_INCREMENT     \
        (srv_auto_extend_increment * ((1024 * 1024) / UNIV_PAGE_SIZE))
@@ -651,9 +676,8 @@ diff -ruN a/storage/innobase/include/srv0srv.h b/storage/innobase/include/srv0sr
  /* Mutex for locking srv_monitor_file */
  extern mutex_t        srv_monitor_file_mutex;
  /* Temporary file for innodb monitor output */
-diff -ruN a/storage/innobase/include/trx0trx.h b/storage/innobase/include/trx0trx.h
---- a/storage/innobase/include/trx0trx.h       2010-12-03 15:41:52.049372966 +0900
-+++ b/storage/innobase/include/trx0trx.h       2010-12-03 17:42:42.107024532 +0900
+--- a/storage/innobase/include/trx0trx.h
++++ b/storage/innobase/include/trx0trx.h
 @@ -743,6 +743,17 @@
        /*------------------------------*/
        char detailed_error[256];       /*!< detailed error message for last
@@ -672,10 +696,9 @@ diff -ruN a/storage/innobase/include/trx0trx.h b/storage/innobase/include/trx0tr
  };
  
  #define TRX_MAX_N_THREADS     32      /* maximum number of
-diff -ruN a/storage/innobase/lock/lock0lock.c b/storage/innobase/lock/lock0lock.c
---- a/storage/innobase/lock/lock0lock.c        2010-12-03 15:09:51.297986437 +0900
-+++ b/storage/innobase/lock/lock0lock.c        2010-12-03 17:42:42.111024587 +0900
-@@ -1755,6 +1755,8 @@
+--- a/storage/innobase/lock/lock0lock.c
++++ b/storage/innobase/lock/lock0lock.c
+@@ -1765,6 +1765,8 @@
  {
        lock_t* lock;
        trx_t*  trx;
@@ -684,7 +707,7 @@ diff -ruN a/storage/innobase/lock/lock0lock.c b/storage/innobase/lock/lock0lock.
  
        ut_ad(mutex_own(&kernel_mutex));
  
-@@ -1813,6 +1815,10 @@
+@@ -1823,6 +1825,10 @@
        trx->que_state = TRX_QUE_LOCK_WAIT;
        trx->was_chosen_as_deadlock_victim = FALSE;
        trx->wait_started = time(NULL);
@@ -695,7 +718,7 @@ diff -ruN a/storage/innobase/lock/lock0lock.c b/storage/innobase/lock/lock0lock.
  
        ut_a(que_thr_stop(thr));
  
-@@ -3764,6 +3770,8 @@
+@@ -3766,6 +3772,8 @@
  {
        lock_t* lock;
        trx_t*  trx;
@@ -704,7 +727,7 @@ diff -ruN a/storage/innobase/lock/lock0lock.c b/storage/innobase/lock/lock0lock.
  
        ut_ad(mutex_own(&kernel_mutex));
  
-@@ -3819,6 +3827,10 @@
+@@ -3821,6 +3829,10 @@
                return(DB_SUCCESS);
        }
  
@@ -715,9 +738,8 @@ diff -ruN a/storage/innobase/lock/lock0lock.c b/storage/innobase/lock/lock0lock.
        trx->que_state = TRX_QUE_LOCK_WAIT;
        trx->was_chosen_as_deadlock_victim = FALSE;
        trx->wait_started = time(NULL);
-diff -ruN a/storage/innobase/os/os0file.c b/storage/innobase/os/os0file.c
---- a/storage/innobase/os/os0file.c    2010-12-03 17:32:15.644024974 +0900
-+++ b/storage/innobase/os/os0file.c    2010-12-03 17:42:42.117023467 +0900
+--- a/storage/innobase/os/os0file.c
++++ b/storage/innobase/os/os0file.c
 @@ -43,6 +43,8 @@
  #include "srv0start.h"
  #include "fil0fil.h"
@@ -727,7 +749,7 @@ diff -ruN a/storage/innobase/os/os0file.c b/storage/innobase/os/os0file.c
  #include "log0recv.h"
  #ifndef UNIV_HOTBACKUP
  # include "os0sync.h"
-@@ -2202,13 +2204,18 @@
+@@ -2213,13 +2215,18 @@
        ulint           n,      /*!< in: number of bytes to read */
        ulint           offset, /*!< in: least significant 32 bits of file
                                offset from where to read */
@@ -747,7 +769,7 @@ diff -ruN a/storage/innobase/os/os0file.c b/storage/innobase/os/os0file.c
  
        ut_a((offset & 0xFFFFFFFFUL) == offset);
  
-@@ -2229,6 +2236,15 @@
+@@ -2240,6 +2247,15 @@
  
        os_n_file_reads++;
  
@@ -763,7 +785,7 @@ diff -ruN a/storage/innobase/os/os0file.c b/storage/innobase/os/os0file.c
  #if defined(HAVE_PREAD) && !defined(HAVE_BROKEN_PREAD)
        os_mutex_enter(os_file_count_mutex);
        os_file_n_pending_preads++;
-@@ -2242,6 +2258,13 @@
+@@ -2253,6 +2269,13 @@
        os_n_pending_reads--;
        os_mutex_exit(os_file_count_mutex);
  
@@ -777,7 +799,7 @@ diff -ruN a/storage/innobase/os/os0file.c b/storage/innobase/os/os0file.c
        return(n_bytes);
  #else
        {
-@@ -2278,6 +2301,13 @@
+@@ -2289,6 +2312,13 @@
                os_n_pending_reads--;
                os_mutex_exit(os_file_count_mutex);
  
@@ -791,7 +813,7 @@ diff -ruN a/storage/innobase/os/os0file.c b/storage/innobase/os/os0file.c
                return(ret);
        }
  #endif
-@@ -2418,7 +2448,8 @@
+@@ -2429,7 +2459,8 @@
                                offset where to read */
        ulint           offset_high, /*!< in: most significant 32 bits of
                                offset */
@@ -801,7 +823,7 @@ diff -ruN a/storage/innobase/os/os0file.c b/storage/innobase/os/os0file.c
  {
  #ifdef __WIN__
        BOOL            ret;
-@@ -2493,7 +2524,7 @@
+@@ -2504,7 +2535,7 @@
        os_bytes_read_since_printout += n;
  
  try_again:
@@ -810,7 +832,7 @@ diff -ruN a/storage/innobase/os/os0file.c b/storage/innobase/os/os0file.c
  
        if ((ulint)ret == n) {
  
-@@ -2622,7 +2653,7 @@
+@@ -2633,7 +2664,7 @@
        os_bytes_read_since_printout += n;
  
  try_again:
@@ -819,7 +841,7 @@ diff -ruN a/storage/innobase/os/os0file.c b/storage/innobase/os/os0file.c
  
        if ((ulint)ret == n) {
  
-@@ -4016,10 +4047,11 @@
+@@ -4027,10 +4058,11 @@
                                (can be used to identify a completed
                                aio operation); ignored if mode is
                                OS_AIO_SYNC */
@@ -832,18 +854,16 @@ diff -ruN a/storage/innobase/os/os0file.c b/storage/innobase/os/os0file.c
  {
        os_aio_array_t* array;
        os_aio_slot_t*  slot;
-@@ -4060,8 +4092,8 @@
-               wait in the Windows case. */
+@@ -4078,7 +4110,7 @@
  
                if (type == OS_FILE_READ) {
--                      return(os_file_read(file, buf, offset,
+                       return(os_file_read_func(file, buf, offset,
 -                                          offset_high, n));
-+                      return(os_file_read_trx(file, buf, offset,
 +                                          offset_high, n, trx));
                }
  
                ut_a(type == OS_FILE_WRITE);
-@@ -4101,6 +4133,11 @@
+@@ -4119,6 +4151,11 @@
                array = NULL; /* Eliminate compiler warning */
        }
  
@@ -855,9 +875,8 @@ diff -ruN a/storage/innobase/os/os0file.c b/storage/innobase/os/os0file.c
        slot = os_aio_array_reserve_slot(type, array, message1, message2, file,
                                         name, buf, offset, offset_high, n);
        if (type == OS_FILE_READ) {
-diff -ruN a/storage/innobase/srv/srv0srv.c b/storage/innobase/srv/srv0srv.c
---- a/storage/innobase/srv/srv0srv.c   2010-12-03 17:32:15.648024399 +0900
-+++ b/storage/innobase/srv/srv0srv.c   2010-12-03 17:45:05.067023254 +0900
+--- a/storage/innobase/srv/srv0srv.c
++++ b/storage/innobase/srv/srv0srv.c
 @@ -87,6 +87,9 @@
  #include "mysql/plugin.h"
  #include "mysql/service_thd_wait.h"
@@ -868,7 +887,7 @@ diff -ruN a/storage/innobase/srv/srv0srv.c b/storage/innobase/srv/srv0srv.c
  /* The following counter is incremented whenever there is some user activity
  in the server */
  UNIV_INTERN ulint     srv_activity_count      = 0;
-@@ -1232,6 +1235,10 @@
+@@ -1237,6 +1240,10 @@
        ibool                   has_slept = FALSE;
        srv_conc_slot_t*        slot      = NULL;
        ulint                   i;
@@ -879,7 +898,7 @@ diff -ruN a/storage/innobase/srv/srv0srv.c b/storage/innobase/srv/srv0srv.c
  
  #ifdef UNIV_SYNC_DEBUG
        ut_ad(!sync_thread_levels_nonempty_trx(trx->has_search_latch));
-@@ -1312,6 +1319,7 @@
+@@ -1317,6 +1324,7 @@
                switches. */
                if (SRV_THREAD_SLEEP_DELAY > 0) {
                        os_thread_sleep(SRV_THREAD_SLEEP_DELAY);
@@ -887,7 +906,7 @@ diff -ruN a/storage/innobase/srv/srv0srv.c b/storage/innobase/srv/srv0srv.c
                }
  
                trx->op_info = "";
-@@ -1371,6 +1379,14 @@
+@@ -1376,6 +1384,14 @@
  #ifdef UNIV_SYNC_DEBUG
        ut_ad(!sync_thread_levels_nonempty_trx(trx->has_search_latch));
  #endif /* UNIV_SYNC_DEBUG */
@@ -901,8 +920,8 @@ diff -ruN a/storage/innobase/srv/srv0srv.c b/storage/innobase/srv/srv0srv.c
 +
        trx->op_info = "waiting in InnoDB queue";
  
-       thd_wait_begin(trx->mysql_thd, THD_WAIT_ROW_TABLE_LOCK);
-@@ -1379,6 +1395,12 @@
+       thd_wait_begin(trx->mysql_thd, THD_WAIT_USER_LOCK);
+@@ -1384,6 +1400,12 @@
  
        trx->op_info = "";
  
@@ -915,9 +934,8 @@ diff -ruN a/storage/innobase/srv/srv0srv.c b/storage/innobase/srv/srv0srv.c
        os_fast_mutex_lock(&srv_conc_mutex);
  
        srv_conc_n_waiting_threads--;
-diff -ruN a/storage/innobase/trx/trx0trx.c b/storage/innobase/trx/trx0trx.c
---- a/storage/innobase/trx/trx0trx.c   2010-12-03 15:41:52.053955669 +0900
-+++ b/storage/innobase/trx/trx0trx.c   2010-12-03 17:42:42.127023410 +0900
+--- a/storage/innobase/trx/trx0trx.c
++++ b/storage/innobase/trx/trx0trx.c
 @@ -188,6 +188,15 @@
        trx->global_read_view = NULL;
        trx->read_view = NULL;
This page took 0.058871 seconds and 4 git commands to generate.