]> git.pld-linux.org Git - packages/mysql.git/blob - innodb_show_status_extend.patch
move status action to status function
[packages/mysql.git] / innodb_show_status_extend.patch
1 # name       : innodb_show_status_extend.patch
2 # introduced : XtraDB based 5.5.8
3 # maintainer : Yasufumi
4 #
5 #!!! notice !!!
6 # Any small change to this file in the main branch
7 # should be done or reviewed by the maintainer!
8 --- a/storage/innobase/handler/ha_innodb.cc
9 +++ b/storage/innobase/handler/ha_innodb.cc
10 @@ -641,6 +641,16 @@
11         trx_t*  trx);   /*!< in: transaction handle */
12  
13  static SHOW_VAR innodb_status_variables[]= {
14 +  {"adaptive_hash_cells",
15 +  (char*) &export_vars.innodb_adaptive_hash_cells,       SHOW_LONG},
16 +  {"adaptive_hash_heap_buffers",
17 +  (char*) &export_vars.innodb_adaptive_hash_heap_buffers, SHOW_LONG},
18 +  {"adaptive_hash_hash_searches",
19 +  (char*) &export_vars.innodb_adaptive_hash_hash_searches, SHOW_LONG},
20 +  {"adaptive_hash_non_hash_searches",
21 +  (char*) &export_vars.innodb_adaptive_hash_non_hash_searches, SHOW_LONG},
22 +  {"background_log_sync",
23 +  (char*) &export_vars.innodb_background_log_sync,       SHOW_LONG},
24    {"buffer_pool_pages_data",
25    (char*) &export_vars.innodb_buffer_pool_pages_data,    SHOW_LONG},
26    {"buffer_pool_pages_dirty",
27 @@ -655,8 +665,14 @@
28    {"buffer_pool_pages_latched",
29    (char*) &export_vars.innodb_buffer_pool_pages_latched,  SHOW_LONG},
30  #endif /* UNIV_DEBUG */
31 +  {"buffer_pool_pages_made_not_young",
32 +  (char*) &export_vars.innodb_buffer_pool_pages_made_not_young, SHOW_LONG},
33 +  {"buffer_pool_pages_made_young",
34 +  (char*) &export_vars.innodb_buffer_pool_pages_made_young, SHOW_LONG},
35    {"buffer_pool_pages_misc",
36    (char*) &export_vars.innodb_buffer_pool_pages_misc,    SHOW_LONG},
37 +  {"buffer_pool_pages_old",
38 +  (char*) &export_vars.innodb_buffer_pool_pages_old,     SHOW_LONG},
39    {"buffer_pool_pages_total",
40    (char*) &export_vars.innodb_buffer_pool_pages_total,   SHOW_LONG},
41    {"buffer_pool_read_ahead_rnd",
42 @@ -673,6 +689,12 @@
43    (char*) &export_vars.innodb_buffer_pool_wait_free,     SHOW_LONG},
44    {"buffer_pool_write_requests",
45    (char*) &export_vars.innodb_buffer_pool_write_requests, SHOW_LONG},
46 +  {"checkpoint_age",
47 +  (char*) &export_vars.innodb_checkpoint_age,            SHOW_LONG},
48 +  {"checkpoint_max_age",
49 +  (char*) &export_vars.innodb_checkpoint_max_age,        SHOW_LONG},
50 +  {"checkpoint_target_age",
51 +  (char*) &export_vars.innodb_checkpoint_target_age,     SHOW_LONG},
52    {"data_fsyncs",
53    (char*) &export_vars.innodb_data_fsyncs,               SHOW_LONG},
54    {"data_pending_fsyncs",
55 @@ -699,12 +721,66 @@
56    (char*) &export_vars.innodb_dict_tables,               SHOW_LONG},
57    {"have_atomic_builtins",
58    (char*) &export_vars.innodb_have_atomic_builtins,      SHOW_BOOL},
59 +  {"history_list_length",
60 +  (char*) &export_vars.innodb_history_list_length,       SHOW_LONG},
61 +  {"ibuf_discarded_delete_marks",
62 +  (char*) &export_vars.innodb_ibuf_discarded_delete_marks, SHOW_LONG},
63 +  {"ibuf_discarded_deletes",
64 +  (char*) &export_vars.innodb_ibuf_discarded_deletes,    SHOW_LONG},
65 +  {"ibuf_discarded_inserts",
66 +  (char*) &export_vars.innodb_ibuf_discarded_inserts,    SHOW_LONG},
67 +  {"ibuf_free_list",
68 +  (char*) &export_vars.innodb_ibuf_free_list,            SHOW_LONG},
69 +  {"ibuf_merged_delete_marks",
70 +  (char*) &export_vars.innodb_ibuf_merged_delete_marks,          SHOW_LONG},
71 +  {"ibuf_merged_deletes",
72 +  (char*) &export_vars.innodb_ibuf_merged_deletes,       SHOW_LONG},
73 +  {"ibuf_merged_inserts",
74 +  (char*) &export_vars.innodb_ibuf_merged_inserts,       SHOW_LONG},
75 +  {"ibuf_merges",
76 +  (char*) &export_vars.innodb_ibuf_merges,               SHOW_LONG},
77 +  {"ibuf_segment_size",
78 +  (char*) &export_vars.innodb_ibuf_segment_size,         SHOW_LONG},
79 +  {"ibuf_size",
80 +  (char*) &export_vars.innodb_ibuf_size,                 SHOW_LONG},
81    {"log_waits",
82    (char*) &export_vars.innodb_log_waits,                 SHOW_LONG},
83    {"log_write_requests",
84    (char*) &export_vars.innodb_log_write_requests,        SHOW_LONG},
85    {"log_writes",
86    (char*) &export_vars.innodb_log_writes,                SHOW_LONG},
87 +  {"lsn_current",
88 +  (char*) &export_vars.innodb_lsn_current,               SHOW_LONGLONG},
89 +  {"lsn_flushed",
90 +  (char*) &export_vars.innodb_lsn_flushed,               SHOW_LONGLONG},
91 +  {"lsn_last_checkpoint",
92 +  (char*) &export_vars.innodb_lsn_last_checkpoint,       SHOW_LONGLONG},
93 +  {"master_thread_1_second_loops",
94 +  (char*) &export_vars.innodb_master_thread_1_second_loops, SHOW_LONG},
95 +  {"master_thread_10_second_loops",
96 +  (char*) &export_vars.innodb_master_thread_10_second_loops, SHOW_LONG},
97 +  {"master_thread_background_loops",
98 +  (char*) &export_vars.innodb_master_thread_background_loops, SHOW_LONG},
99 +  {"master_thread_main_flush_loops",
100 +  (char*) &export_vars.innodb_master_thread_main_flush_loops, SHOW_LONG},
101 +  {"master_thread_sleeps",
102 +  (char*) &export_vars.innodb_master_thread_sleeps,      SHOW_LONG},
103 +  {"max_trx_id",
104 +  (char*) &export_vars.innodb_max_trx_id,                SHOW_LONGLONG},
105 +  {"mem_adaptive_hash",
106 +  (char*) &export_vars.innodb_mem_adaptive_hash,         SHOW_LONG},
107 +  {"mem_dictionary",
108 +  (char*) &export_vars.innodb_mem_dictionary,            SHOW_LONG},
109 +  {"mem_total",
110 +  (char*) &export_vars.innodb_mem_total,                 SHOW_LONG},
111 +  {"mutex_os_waits",
112 +  (char*) &export_vars.innodb_mutex_os_waits,            SHOW_LONGLONG},
113 +  {"mutex_spin_rounds",
114 +  (char*) &export_vars.innodb_mutex_spin_rounds,         SHOW_LONGLONG},
115 +  {"mutex_spin_waits",
116 +  (char*) &export_vars.innodb_mutex_spin_waits,                  SHOW_LONGLONG},
117 +  {"oldest_view_low_limit_trx_id",
118 +  (char*) &export_vars.innodb_oldest_view_low_limit_trx_id, SHOW_LONGLONG},
119    {"os_log_fsyncs",
120    (char*) &export_vars.innodb_os_log_fsyncs,             SHOW_LONG},
121    {"os_log_pending_fsyncs",
122 @@ -721,8 +797,14 @@
123    (char*) &export_vars.innodb_pages_read,                SHOW_LONG},
124    {"pages_written",
125    (char*) &export_vars.innodb_pages_written,             SHOW_LONG},
126 +  {"purge_trx_id",
127 +  (char*) &export_vars.innodb_purge_trx_id,              SHOW_LONGLONG},
128 +  {"purge_undo_no",
129 +  (char*) &export_vars.innodb_purge_undo_no,             SHOW_LONGLONG},
130    {"row_lock_current_waits",
131    (char*) &export_vars.innodb_row_lock_current_waits,    SHOW_LONG},
132 +  {"current_row_locks",
133 +  (char*) &export_vars.innodb_current_row_locks,                 SHOW_LONG},
134    {"row_lock_time",
135    (char*) &export_vars.innodb_row_lock_time,             SHOW_LONGLONG},
136    {"row_lock_time_avg",
137 @@ -739,8 +821,20 @@
138    (char*) &export_vars.innodb_rows_read,                 SHOW_LONG},
139    {"rows_updated",
140    (char*) &export_vars.innodb_rows_updated,              SHOW_LONG},
141 +  {"s_lock_os_waits",
142 +  (char*) &export_vars.innodb_s_lock_os_waits,           SHOW_LONGLONG},
143 +  {"s_lock_spin_rounds",
144 +  (char*) &export_vars.innodb_s_lock_spin_rounds,        SHOW_LONGLONG},
145 +  {"s_lock_spin_waits",
146 +  (char*) &export_vars.innodb_s_lock_spin_waits,         SHOW_LONGLONG},
147    {"truncated_status_writes",
148    (char*) &export_vars.innodb_truncated_status_writes, SHOW_LONG},
149 +  {"x_lock_os_waits",
150 +  (char*) &export_vars.innodb_x_lock_os_waits,           SHOW_LONGLONG},
151 +  {"x_lock_spin_rounds",
152 +  (char*) &export_vars.innodb_x_lock_spin_rounds,        SHOW_LONGLONG},
153 +  {"x_lock_spin_waits",
154 +  (char*) &export_vars.innodb_x_lock_spin_waits,         SHOW_LONGLONG},
155    {NullS, NullS, SHOW_LONG}
156  };
157  
158 --- a/storage/innobase/ibuf/ibuf0ibuf.c
159 +++ b/storage/innobase/ibuf/ibuf0ibuf.c
160 @@ -478,6 +478,45 @@
161  }
162  
163  /******************************************************************//**
164 +Function to pass ibuf status variables */
165 +UNIV_INTERN
166 +void
167 +ibuf_export_ibuf_status(
168 +/*====================*/
169 +       ulint*  size,
170 +       ulint*  free_list,
171 +       ulint*  segment_size,
172 +       ulint*  merges,
173 +       ulint*  merged_inserts,
174 +       ulint*  merged_delete_marks,
175 +       ulint*  merged_deletes,
176 +       ulint*  discarded_inserts,
177 +       ulint*  discarded_delete_marks,
178 +       ulint*  discarded_deletes)
179 +{
180 +       *size
181 +               = ibuf->size;
182 +       *free_list
183 +               = ibuf->free_list_len;
184 +       *segment_size
185 +               = ibuf->seg_size;
186 +       *merges
187 +               = ibuf->n_merges;
188 +       *merged_inserts
189 +               = ibuf->n_merged_ops[IBUF_OP_INSERT];
190 +       *merged_delete_marks
191 +               = ibuf->n_merged_ops[IBUF_OP_DELETE_MARK];
192 +       *merged_deletes
193 +               = ibuf->n_merged_ops[IBUF_OP_DELETE];
194 +       *discarded_inserts
195 +               = ibuf->n_discarded_ops[IBUF_OP_INSERT];
196 +       *discarded_delete_marks
197 +               = ibuf->n_discarded_ops[IBUF_OP_DELETE_MARK];
198 +       *discarded_deletes
199 +               = ibuf->n_discarded_ops[IBUF_OP_DELETE];
200 +}
201 +
202 +/******************************************************************//**
203  Updates the size information of the ibuf, assuming the segment size has not
204  changed. */
205  static
206 --- a/storage/innobase/include/ibuf0ibuf.h
207 +++ b/storage/innobase/include/ibuf0ibuf.h
208 @@ -438,6 +438,22 @@
209  void
210  ibuf_close(void);
211  /*============*/
212 +/******************************************************************//**
213 +Function to pass ibuf status variables */
214 +UNIV_INTERN
215 +void
216 +ibuf_export_ibuf_status(
217 +/*====================*/
218 +       ulint*  size,
219 +       ulint*  free_list,
220 +       ulint*  segment_size,
221 +       ulint*  merges,
222 +       ulint*  merged_inserts,
223 +       ulint*  merged_delete_marks,
224 +       ulint*  merged_deletes,
225 +       ulint*  discarded_inserts,
226 +       ulint*  discarded_delete_marks,
227 +       ulint*  discarded_deletes);
228  
229  #define IBUF_HEADER_PAGE_NO    FSP_IBUF_HEADER_PAGE_NO
230  #define IBUF_TREE_ROOT_PAGE_NO FSP_IBUF_TREE_ROOT_PAGE_NO
231 --- a/storage/innobase/include/lock0lock.h
232 +++ b/storage/innobase/include/lock0lock.h
233 @@ -817,6 +817,7 @@
234  /** The lock system struct */
235  struct lock_sys_struct{
236         hash_table_t*   rec_hash;       /*!< hash table of the record locks */
237 +       ulint           rec_num;
238  };
239  
240  /** The lock system */
241 --- a/storage/innobase/include/srv0srv.h
242 +++ b/storage/innobase/include/srv0srv.h
243 @@ -742,6 +742,11 @@
244  
245  /** Status variables to be passed to MySQL */
246  struct export_var_struct{
247 +       ulint innodb_adaptive_hash_cells;
248 +       ulint innodb_adaptive_hash_heap_buffers;
249 +       ulint innodb_adaptive_hash_hash_searches;
250 +       ulint innodb_adaptive_hash_non_hash_searches;
251 +       ulint innodb_background_log_sync;
252         ulint innodb_data_pending_reads;        /*!< Pending reads */
253         ulint innodb_data_pending_writes;       /*!< Pending writes */
254         ulint innodb_data_pending_fsyncs;       /*!< Pending fsyncs */
255 @@ -759,6 +764,9 @@
256  #ifdef UNIV_DEBUG
257         ulint innodb_buffer_pool_pages_latched; /*!< Latched pages */
258  #endif /* UNIV_DEBUG */
259 +       ulint innodb_buffer_pool_pages_made_not_young;
260 +       ulint innodb_buffer_pool_pages_made_young;
261 +       ulint innodb_buffer_pool_pages_old;
262         ulint innodb_buffer_pool_read_requests; /*!< buf_pool->stat.n_page_gets */
263         ulint innodb_buffer_pool_reads;         /*!< srv_buf_pool_reads */
264         ulint innodb_buffer_pool_wait_free;     /*!< srv_buf_pool_wait_free */
265 @@ -768,13 +776,43 @@
266         ulint innodb_buffer_pool_read_ahead_rnd;/*!< srv_read_ahead_rnd */
267         ulint innodb_buffer_pool_read_ahead;    /*!< srv_read_ahead */
268         ulint innodb_buffer_pool_read_ahead_evicted;/*!< srv_read_ahead evicted*/
269 +       ulint innodb_checkpoint_age;
270 +       ulint innodb_checkpoint_max_age;
271 +       ulint innodb_checkpoint_target_age;
272         ulint innodb_dblwr_pages_written;       /*!< srv_dblwr_pages_written */
273         ulint innodb_dblwr_writes;              /*!< srv_dblwr_writes */
274         ulint innodb_deadlocks;
275         ibool innodb_have_atomic_builtins;      /*!< HAVE_ATOMIC_BUILTINS */
276 +       ulint innodb_history_list_length;
277 +       ulint innodb_ibuf_size;
278 +       ulint innodb_ibuf_free_list;
279 +       ulint innodb_ibuf_segment_size;
280 +       ulint innodb_ibuf_merges;
281 +       ulint innodb_ibuf_merged_inserts;
282 +       ulint innodb_ibuf_merged_delete_marks;
283 +       ulint innodb_ibuf_merged_deletes;
284 +       ulint innodb_ibuf_discarded_inserts;
285 +       ulint innodb_ibuf_discarded_delete_marks;
286 +       ulint innodb_ibuf_discarded_deletes;
287         ulint innodb_log_waits;                 /*!< srv_log_waits */
288         ulint innodb_log_write_requests;        /*!< srv_log_write_requests */
289         ulint innodb_log_writes;                /*!< srv_log_writes */
290 +       ib_int64_t innodb_lsn_current;
291 +       ib_int64_t innodb_lsn_flushed;
292 +       ib_int64_t innodb_lsn_last_checkpoint;
293 +       ulint innodb_master_thread_1_second_loops;
294 +       ulint innodb_master_thread_10_second_loops;
295 +       ulint innodb_master_thread_background_loops;
296 +       ulint innodb_master_thread_main_flush_loops;
297 +       ulint innodb_master_thread_sleeps;
298 +       ib_int64_t innodb_max_trx_id;
299 +       ulint innodb_mem_adaptive_hash;
300 +       ulint innodb_mem_dictionary;
301 +       ulint innodb_mem_total;
302 +       ib_int64_t innodb_mutex_os_waits;
303 +       ib_int64_t innodb_mutex_spin_rounds;
304 +       ib_int64_t innodb_mutex_spin_waits;
305 +       ib_int64_t innodb_oldest_view_low_limit_trx_id;
306         ulint innodb_os_log_written;            /*!< srv_os_log_written */
307         ulint innodb_os_log_fsyncs;             /*!< fil_n_log_flushes */
308         ulint innodb_os_log_pending_writes;     /*!< srv_os_log_pending_writes */
309 @@ -783,6 +821,8 @@
310         ulint innodb_pages_created;             /*!< buf_pool->stat.n_pages_created */
311         ulint innodb_pages_read;                /*!< buf_pool->stat.n_pages_read */
312         ulint innodb_pages_written;             /*!< buf_pool->stat.n_pages_written */
313 +       ib_int64_t innodb_purge_trx_id;
314 +       ib_int64_t innodb_purge_undo_no;
315         ulint innodb_row_lock_waits;            /*!< srv_n_lock_wait_count */
316         ulint innodb_row_lock_current_waits;    /*!< srv_n_lock_wait_current_count */
317         ib_int64_t innodb_row_lock_time;        /*!< srv_n_lock_wait_time
318 @@ -792,11 +832,18 @@
319                                                 / srv_n_lock_wait_count */
320         ulint innodb_row_lock_time_max;         /*!< srv_n_lock_max_wait_time
321                                                 / 1000 */
322 +       ulint innodb_current_row_locks;
323         ulint innodb_rows_read;                 /*!< srv_n_rows_read */
324         ulint innodb_rows_inserted;             /*!< srv_n_rows_inserted */
325         ulint innodb_rows_updated;              /*!< srv_n_rows_updated */
326         ulint innodb_rows_deleted;              /*!< srv_n_rows_deleted */
327         ulint innodb_truncated_status_writes;   /*!< srv_truncated_status_writes */
328 +       ib_int64_t innodb_s_lock_os_waits;
329 +       ib_int64_t innodb_s_lock_spin_rounds;
330 +       ib_int64_t innodb_s_lock_spin_waits;
331 +       ib_int64_t innodb_x_lock_os_waits;
332 +       ib_int64_t innodb_x_lock_spin_rounds;
333 +       ib_int64_t innodb_x_lock_spin_waits;
334  };
335  
336  /** Thread slot in the thread table */
337 --- a/storage/innobase/include/sync0sync.h
338 +++ b/storage/innobase/include/sync0sync.h
339 @@ -766,6 +766,10 @@
340  
341  #define        SYNC_SPIN_ROUNDS        srv_n_spin_wait_rounds
342  
343 +extern ib_int64_t      mutex_spin_round_count;
344 +extern ib_int64_t      mutex_spin_wait_count;
345 +extern ib_int64_t      mutex_os_wait_count;
346 +
347  /** The number of mutex_exit calls. Intended for performance monitoring. */
348  extern ib_int64_t      mutex_exit_count;
349  
350 --- a/storage/innobase/lock/lock0lock.c
351 +++ b/storage/innobase/lock/lock0lock.c
352 @@ -569,6 +569,7 @@
353         lock_sys = mem_alloc(sizeof(lock_sys_t));
354  
355         lock_sys->rec_hash = hash_create(n_cells);
356 +       lock_sys->rec_num = 0;
357  
358         /* hash_create_mutexes(lock_sys->rec_hash, 2, SYNC_REC_LOCK); */
359  
360 @@ -1729,6 +1730,7 @@
361  
362         HASH_INSERT(lock_t, hash, lock_sys->rec_hash,
363                     lock_rec_fold(space, page_no), lock);
364 +       lock_sys->rec_num++;
365         if (UNIV_UNLIKELY(type_mode & LOCK_WAIT)) {
366  
367                 lock_set_lock_and_trx_wait(lock, trx);
368 @@ -2275,6 +2277,7 @@
369  
370         HASH_DELETE(lock_t, hash, lock_sys->rec_hash,
371                     lock_rec_fold(space, page_no), in_lock);
372 +       lock_sys->rec_num--;
373  
374         UT_LIST_REMOVE(trx_locks, trx->trx_locks, in_lock);
375  
376 @@ -2318,6 +2321,7 @@
377  
378         HASH_DELETE(lock_t, hash, lock_sys->rec_hash,
379                     lock_rec_fold(space, page_no), in_lock);
380 +       lock_sys->rec_num--;
381  
382         UT_LIST_REMOVE(trx_locks, trx->trx_locks, in_lock);
383  }
384 --- a/storage/innobase/srv/srv0srv.c
385 +++ b/storage/innobase/srv/srv0srv.c
386 @@ -2262,12 +2262,49 @@
387         ulint           LRU_len;
388         ulint           free_len;
389         ulint           flush_list_len;
390 +       ulint           mem_adaptive_hash, mem_dictionary;
391 +       read_view_t*    oldest_view;
392 +       ulint           i;
393  
394         buf_get_total_stat(&stat);
395         buf_get_total_list_len(&LRU_len, &free_len, &flush_list_len);
396  
397 +       if (btr_search_sys && btr_search_sys->hash_index[0]->heap) {
398 +               mem_adaptive_hash = mem_heap_get_size(btr_search_sys->hash_index[0]->heap);
399 +       } else {
400 +               mem_adaptive_hash = 0;
401 +               for (i=0; i < btr_search_sys->hash_index[0]->n_mutexes; i++) {
402 +                       mem_adaptive_hash += mem_heap_get_size(btr_search_sys->hash_index[0]->heaps[i]);
403 +               }
404 +       }
405 +       mem_adaptive_hash *= btr_search_index_num;
406 +       if (btr_search_sys) {
407 +               mem_adaptive_hash += (btr_search_sys->hash_index[0]->n_cells * btr_search_index_num * sizeof(hash_cell_t));
408 +       }
409 +
410 +       mem_dictionary = (dict_sys ? ((dict_sys->table_hash->n_cells
411 +                                       + dict_sys->table_id_hash->n_cells
412 +                                     ) * sizeof(hash_cell_t)
413 +                               + dict_sys->size) : 0);
414 +
415         mutex_enter(&srv_innodb_monitor_mutex);
416  
417 +       export_vars.innodb_adaptive_hash_cells = 0;
418 +       export_vars.innodb_adaptive_hash_heap_buffers = 0;
419 +       for (i = 0; i < btr_search_index_num; i++) {
420 +               hash_table_t*   table = btr_search_get_hash_index((index_id_t)i);
421 +
422 +               export_vars.innodb_adaptive_hash_cells
423 +                       += hash_get_n_cells(table);
424 +               export_vars.innodb_adaptive_hash_heap_buffers
425 +                       += (UT_LIST_GET_LEN(table->heap->base) - 1);
426 +       }
427 +       export_vars.innodb_adaptive_hash_hash_searches
428 +               = btr_cur_n_sea;
429 +       export_vars.innodb_adaptive_hash_non_hash_searches
430 +               = btr_cur_n_non_sea;
431 +       export_vars.innodb_background_log_sync
432 +               = srv_log_writes_and_flush;
433         export_vars.innodb_data_pending_reads
434                 = os_n_pending_reads;
435         export_vars.innodb_data_pending_writes
436 @@ -2306,6 +2343,92 @@
437  
438         export_vars.innodb_buffer_pool_pages_misc
439                 = buf_pool_get_n_pages() - LRU_len - free_len;
440 +
441 +       export_vars.innodb_buffer_pool_pages_made_young
442 +               = stat.n_pages_made_young;
443 +       export_vars.innodb_buffer_pool_pages_made_not_young
444 +               = stat.n_pages_not_made_young;
445 +       export_vars.innodb_buffer_pool_pages_old = 0;
446 +       for (i = 0; i < srv_buf_pool_instances; i++) {
447 +               buf_pool_t*     buf_pool = buf_pool_from_array(i);
448 +               export_vars.innodb_buffer_pool_pages_old
449 +                       += buf_pool->LRU_old_len;
450 +       }
451 +       export_vars.innodb_checkpoint_age
452 +               = (log_sys->lsn - log_sys->last_checkpoint_lsn);
453 +       export_vars.innodb_checkpoint_max_age
454 +               = log_sys->max_checkpoint_age;
455 +       export_vars.innodb_checkpoint_target_age
456 +               = srv_checkpoint_age_target
457 +                 ? ut_min(log_sys->max_checkpoint_age_async, srv_checkpoint_age_target)
458 +                 : log_sys->max_checkpoint_age_async;
459 +       export_vars.innodb_history_list_length
460 +               = trx_sys->rseg_history_len;
461 +       ibuf_export_ibuf_status(
462 +                       &export_vars.innodb_ibuf_size,
463 +                       &export_vars.innodb_ibuf_free_list,
464 +                       &export_vars.innodb_ibuf_segment_size,
465 +                       &export_vars.innodb_ibuf_merges,
466 +                       &export_vars.innodb_ibuf_merged_inserts,
467 +                       &export_vars.innodb_ibuf_merged_delete_marks,
468 +                       &export_vars.innodb_ibuf_merged_deletes,
469 +                       &export_vars.innodb_ibuf_discarded_inserts,
470 +                       &export_vars.innodb_ibuf_discarded_delete_marks,
471 +                       &export_vars.innodb_ibuf_discarded_deletes);
472 +       export_vars.innodb_lsn_current
473 +               = log_sys->lsn;
474 +       export_vars.innodb_lsn_flushed
475 +               = log_sys->flushed_to_disk_lsn;
476 +       export_vars.innodb_lsn_last_checkpoint
477 +               = log_sys->last_checkpoint_lsn;
478 +       export_vars.innodb_master_thread_1_second_loops
479 +               = srv_main_1_second_loops;
480 +       export_vars.innodb_master_thread_10_second_loops
481 +               = srv_main_10_second_loops;
482 +       export_vars.innodb_master_thread_background_loops
483 +               = srv_main_background_loops;
484 +       export_vars.innodb_master_thread_main_flush_loops
485 +               = srv_main_flush_loops;
486 +       export_vars.innodb_master_thread_sleeps
487 +               = srv_main_sleeps;
488 +       export_vars.innodb_max_trx_id
489 +               = trx_sys->max_trx_id;
490 +       export_vars.innodb_mem_adaptive_hash
491 +               = mem_adaptive_hash;
492 +       export_vars.innodb_mem_dictionary
493 +               = mem_dictionary;
494 +       export_vars.innodb_mem_total
495 +               = ut_total_allocated_memory;
496 +       export_vars.innodb_mutex_os_waits
497 +               = mutex_os_wait_count;
498 +       export_vars.innodb_mutex_spin_rounds
499 +               = mutex_spin_round_count;
500 +       export_vars.innodb_mutex_spin_waits
501 +               = mutex_spin_wait_count;
502 +       export_vars.innodb_s_lock_os_waits
503 +               = rw_s_os_wait_count;
504 +       export_vars.innodb_s_lock_spin_rounds
505 +               = rw_s_spin_round_count;
506 +       export_vars.innodb_s_lock_spin_waits
507 +               = rw_s_spin_wait_count;
508 +       export_vars.innodb_x_lock_os_waits
509 +               = rw_x_os_wait_count;
510 +       export_vars.innodb_x_lock_spin_rounds
511 +               = rw_x_spin_round_count;
512 +       export_vars.innodb_x_lock_spin_waits
513 +               = rw_x_spin_wait_count;
514 +
515 +       oldest_view = UT_LIST_GET_LAST(trx_sys->view_list);
516 +       export_vars.innodb_oldest_view_low_limit_trx_id
517 +               = oldest_view ? oldest_view->low_limit_id : 0;
518 +
519 +       export_vars.innodb_purge_trx_id
520 +               = purge_sys->purge_trx_no;
521 +       export_vars.innodb_purge_undo_no
522 +               = purge_sys->purge_undo_no;
523 +       export_vars.innodb_current_row_locks
524 +               = lock_sys->rec_num;
525 +
526  #ifdef HAVE_ATOMIC_BUILTINS
527         export_vars.innodb_have_atomic_builtins = 1;
528  #else
529 --- a/storage/innobase/sync/sync0sync.c
530 +++ b/storage/innobase/sync/sync0sync.c
531 @@ -171,13 +171,13 @@
532  
533  /** The number of iterations in the mutex_spin_wait() spin loop.
534  Intended for performance monitoring. */
535 -static ib_int64_t      mutex_spin_round_count          = 0;
536 +UNIV_INTERN ib_int64_t mutex_spin_round_count          = 0;
537  /** The number of mutex_spin_wait() calls.  Intended for
538  performance monitoring. */
539 -static ib_int64_t      mutex_spin_wait_count           = 0;
540 +UNIV_INTERN ib_int64_t mutex_spin_wait_count           = 0;
541  /** The number of OS waits in mutex_spin_wait().  Intended for
542  performance monitoring. */
543 -static ib_int64_t      mutex_os_wait_count             = 0;
544 +UNIV_INTERN ib_int64_t mutex_os_wait_count             = 0;
545  /** The number of mutex_exit() calls. Intended for performance
546  monitoring. */
547  UNIV_INTERN ib_int64_t mutex_exit_count                = 0;
This page took 0.179361 seconds and 3 git commands to generate.