]> git.pld-linux.org Git - packages/mysql.git/blobdiff - innodb_lru_dump_restore.patch
- more mysqld.conf changes: skip-locking, default-character-set
[packages/mysql.git] / innodb_lru_dump_restore.patch
index 6e4021011391e54aaec8b542cb9a5bb5023b6495..5348b93c66e40d048f6aca421544f1b1676b2309 100644 (file)
@@ -8,7 +8,7 @@
 diff -ruN a/storage/innobase/buf/buf0lru.c b/storage/innobase/buf/buf0lru.c
 --- a/storage/innobase/buf/buf0lru.c   2010-12-03 15:49:59.185023424 +0900
 +++ b/storage/innobase/buf/buf0lru.c   2010-12-04 15:33:37.626482350 +0900
-@@ -2250,6 +2250,285 @@
+@@ -2258,6 +2258,284 @@
        memset(&buf_LRU_stat_cur, 0, sizeof buf_LRU_stat_cur);
  }
  
@@ -35,8 +35,8 @@ diff -ruN a/storage/innobase/buf/buf0lru.c b/storage/innobase/buf/buf0lru.c
 +              if (strstr(srv_data_file_names[i], LRU_DUMP_FILE) != NULL) {
 +                      fprintf(stderr,
 +                              " InnoDB: The name '%s' seems to be used for"
-+                              " innodb_data_file_path. Dumping LRU list is not"
-+                              " done for safeness.\n", LRU_DUMP_FILE);
++                              " innodb_data_file_path. For safety, dumping of the LRU list"
++                              " is not being done.\n", LRU_DUMP_FILE);
 +                      goto end;
 +              }
 +      }
@@ -197,8 +197,8 @@ diff -ruN a/storage/innobase/buf/buf0lru.c b/storage/innobase/buf/buf0lru.c
 +                              UNIV_PAGE_SIZE);
 +              if (!success) {
 +                      fprintf(stderr,
-+                              " InnoDB: cannot read page %lu of %s,"
-+                              " or meet unexpected terminal.\n",
++                              " InnoDB: either could not read page %lu of %s,"
++                              " or terminated unexpectedly.\n",
 +                              buffers, LRU_DUMP_FILE);
 +                      goto end;
 +              }
@@ -258,8 +258,7 @@ diff -ruN a/storage/innobase/buf/buf0lru.c b/storage/innobase/buf/buf0lru.c
 +                      continue;
 +              }
 +
-+              if (fil_area_is_exist(space_id, zip_size, page_no, 0,
-+                                    zip_size ? zip_size : UNIV_PAGE_SIZE)) {
++              if (fil_is_exist(space_id, page_no)) {
 +
 +                      tablespace_version = fil_space_get_version(space_id);
 +
@@ -309,7 +308,7 @@ 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 17:49:11.581025127 +0900
 +++ b/storage/innobase/fil/fil0fil.c   2010-12-04 15:33:37.632482885 +0900
-@@ -4939,6 +4939,78 @@
+@@ -4967,6 +4967,70 @@
        return(DB_SUCCESS);
  }
  
@@ -317,18 +316,10 @@ diff -ruN a/storage/innobase/fil/fil0fil.c b/storage/innobase/fil/fil0fil.c
 +Confirm whether the parameters are valid or not */
 +UNIV_INTERN
 +ibool
-+fil_area_is_exist(
++fil_is_exist(
 +/*==============*/
 +      ulint   space_id,       /*!< in: space id */
-+      ulint   zip_size,       /*!< in: compressed page size in bytes;
-+                              0 for uncompressed pages */
-+      ulint   block_offset,   /*!< in: offset in number of blocks */
-+      ulint   byte_offset,    /*!< in: remainder of offset in bytes; in
-+                              aio this must be divisible by the OS block
-+                              size */
-+      ulint   len)            /*!< in: how many bytes to read or write; this
-+                              must not cross a file boundary; in aio this
-+                              must be a block size multiple */
++      ulint   block_offset)   /*!< in: offset in number of blocks */
 +{
 +      fil_space_t*    space;
 +      fil_node_t*     node;
@@ -391,7 +382,7 @@ diff -ruN a/storage/innobase/fil/fil0fil.c b/storage/innobase/fil/fil0fil.c
 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:49:11.589956135 +0900
 +++ b/storage/innobase/handler/ha_innodb.cc    2010-12-04 15:33:37.645555490 +0900
-@@ -11708,6 +11708,12 @@
+@@ -11706,6 +11706,12 @@
    "Limit the allocated memory for dictionary cache. (0: unlimited)",
    NULL, NULL, 0, 0, LONG_MAX, 0);
  
@@ -404,7 +395,7 @@ diff -ruN a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_
  static struct st_mysql_sys_var* innobase_system_variables[]= {
    MYSQL_SYSVAR(additional_mem_pool_size),
    MYSQL_SYSVAR(autoextend_increment),
-@@ -11791,6 +11797,7 @@
+@@ -11788,6 +11794,7 @@
  #endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */
    MYSQL_SYSVAR(read_ahead_threshold),
    MYSQL_SYSVAR(io_capacity),
@@ -423,13 +414,13 @@ diff -ruN a/storage/innobase/handler/i_s.cc b/storage/innobase/handler/i_s.cc
  }
  
  static const char plugin_author[] = "Innobase Oy";
-@@ -4255,6 +4256,36 @@
+@@ -4254,6 +4255,36 @@
                        "Hello!");
                goto end_func;
        }
 +      else if (!strncasecmp("XTRA_LRU_DUMP", ptr, 13)) {
 +              ut_print_timestamp(stderr);
-+              fprintf(stderr, " InnoDB: administration command 'XTRA_LRU_DUMP'"
++              fprintf(stderr, " InnoDB: Administrative command 'XTRA_LRU_DUMP'"
 +                              " was detected.\n");
 +
 +              if (buf_LRU_file_dump()) {
@@ -444,7 +435,7 @@ diff -ruN a/storage/innobase/handler/i_s.cc b/storage/innobase/handler/i_s.cc
 +      }
 +      else if (!strncasecmp("XTRA_LRU_RESTORE", ptr, 16)) {
 +              ut_print_timestamp(stderr);
-+              fprintf(stderr, " InnoDB: administration command 'XTRA_LRU_RESTORE'"
++              fprintf(stderr, " InnoDB: Administrative command 'XTRA_LRU_RESTORE'"
 +                              " was detected.\n");
 +
 +              if (buf_LRU_file_restore()) {
@@ -526,7 +517,7 @@ diff -ruN a/storage/innobase/include/buf0rea.h b/storage/innobase/include/buf0re
 diff -ruN a/storage/innobase/include/fil0fil.h b/storage/innobase/include/fil0fil.h
 --- a/storage/innobase/include/fil0fil.h       2010-12-03 17:49:11.597953501 +0900
 +++ b/storage/innobase/include/fil0fil.h       2010-12-04 15:33:37.684551372 +0900
-@@ -644,6 +644,22 @@
+@@ -644,6 +644,14 @@
        void*   message,        /*!< in: message for aio handler if non-sync
                                aio used, else ignored */
        trx_t*  trx);
@@ -534,18 +525,10 @@ diff -ruN a/storage/innobase/include/fil0fil.h b/storage/innobase/include/fil0fi
 +Confirm whether the parameters are valid or not */
 +UNIV_INTERN
 +ibool
-+fil_area_is_exist(
++fil_is_exist(
 +/*==============*/
 +      ulint   space_id,       /*!< in: space id */
-+      ulint   zip_size,       /*!< in: compressed page size in bytes;
-+                              0 for uncompressed pages */
-+      ulint   block_offset,   /*!< in: offset in number of blocks */
-+      ulint   byte_offset,    /*!< in: remainder of offset in bytes; in
-+                              aio this must be divisible by the OS block
-+                              size */
-+      ulint   len);           /*!< in: how many bytes to read or write; this
-+                              must not cross a file boundary; in aio this
-+                              must be a block size multiple */
++      ulint   block_offset);  /*!< in: offset in number of blocks */
  /**********************************************************************//**
  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
@@ -562,7 +545,7 @@ diff -ruN a/storage/innobase/include/srv0srv.h b/storage/innobase/include/srv0sr
  /** Status variables to be passed to MySQL */
  typedef struct export_var_struct export_struc;
  
-@@ -655,6 +658,16 @@
+@@ -663,6 +666,16 @@
  /*=====================*/
        void*   arg);   /*!< in: a dummy parameter required by
                        os_thread_create */
@@ -582,7 +565,7 @@ diff -ruN a/storage/innobase/include/srv0srv.h b/storage/innobase/include/srv0sr
 diff -ruN a/storage/innobase/srv/srv0srv.c b/storage/innobase/srv/srv0srv.c
 --- a/storage/innobase/srv/srv0srv.c   2010-12-03 17:49:11.620986661 +0900
 +++ b/storage/innobase/srv/srv0srv.c   2010-12-04 15:33:37.708550811 +0900
-@@ -327,6 +327,9 @@
+@@ -329,6 +329,9 @@
  reading of a disk page */
  UNIV_INTERN ulint srv_buf_pool_reads = 0;
  
@@ -592,7 +575,7 @@ diff -ruN a/storage/innobase/srv/srv0srv.c b/storage/innobase/srv/srv0srv.c
  /* structure to pass status variables to MySQL */
  UNIV_INTERN export_struc export_vars;
  
-@@ -2663,6 +2666,56 @@
+@@ -2697,6 +2700,56 @@
        /* We count the number of threads in os_thread_exit(). A created
        thread should always use that to exit and not use return() to exit. */
  
@@ -618,7 +601,7 @@ diff -ruN a/storage/innobase/srv/srv0srv.c b/storage/innobase/srv/srv0srv.c
 +      time_t  time_elapsed;
 +
 +#ifdef UNIV_DEBUG_THREAD_CREATION
-+      fprintf(stderr, "LRU dump/restore thread starts, id %lu\n",
++      fprintf(stderr, "The LRU dump/restore thread has started, id %lu\n",
 +              os_thread_pf(os_thread_get_curr_id()));
 +#endif
 +
@@ -664,7 +647,7 @@ diff -ruN a/storage/innobase/srv/srv0start.c b/storage/innobase/srv/srv0start.c
  
  /** We use this mutex to test the return value of pthread_mutex_trylock
     on successful locking. HP-UX does NOT return 0, though Linux et al do. */
-@@ -1737,6 +1737,10 @@
+@@ -1813,6 +1813,10 @@
        os_thread_create(&srv_monitor_thread, NULL,
                         thread_ids + 4 + SRV_MAX_N_IO_THREADS);
  
This page took 0.040399 seconds and 4 git commands to generate.