Comment 9 for bug 576041

Revision history for this message
Yasufumi Kinoshita (yasufumi-kinoshita) wrote :

Vadim,

Simply removing dict_sys->mutex may cause crash as result of the inconsistency.
Only removing name columns allows to remove the lock.

Peter,

innodb_buffer_pool_pages_index is really nonsense for me from the view point of performance.
There are no index at the table list, index list in the dictionary on memory.
(It was removed because of another performance problem from maintaining the indexes in InnoDB's history.
 Basically InnoDB doesn't use index_id to specify the index information internal.
 So, to maintain indexes is only waste of cpu and cause useless mutex contention.)

innodb_buffer_pool_pages_index is the cartesian join of non-indexed tables.
3min is natural, if you use many tables and indexes in the on-memory dictionary.

innodb_buffer_pool_pages_index should not have name columns.
If you want names, you should join with index_id (after aggregate) to the another dict view.
(InnoDB must not provide index_id index for dictionary only for innodb_buffer_pool_pages_index
 with sacrifice ordinary all other performance)

So I recommend to remove the name columns from innodb_buffer_pool_pages_index.

If I implemented it, I never implement name columns.