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