-
Dmitry Lenev authored
LOCK_open and its derivatives in DML queries". Re-introduced table cache - a separate cache holding TABLE objects ready for use by statements protected by its own mutex. In the most common case a connection opening/closing a table only needs to go to this cache for getting/releasing TABLE object and do not need to go to the table definition cache. By having several instances of such cache (each protected by its own lock) and partitioning user connections between these instances (based on connection id) we can greatly improve scalability in some scenarios. Added new start-up parameter --table_open_cache_instances for setting number of table cache instances in the system. Existing --table_open_cache parameter now limits total number of TABLE object in all table cache instances combined. Added Table_open_cache_hits, Table_open_cache_misses, Table_open_cache_overflows - per-connection and global status variables for tracking and tuning performance of new cache. (The latter allows to track how often we have to expel tables from the cache since the table cache instance contains more than table_open_cache/table_open_cache_instances objects.)
Dmitry Lenev authoredLOCK_open and its derivatives in DML queries". Re-introduced table cache - a separate cache holding TABLE objects ready for use by statements protected by its own mutex. In the most common case a connection opening/closing a table only needs to go to this cache for getting/releasing TABLE object and do not need to go to the table definition cache. By having several instances of such cache (each protected by its own lock) and partitioning user connections between these instances (based on connection id) we can greatly improve scalability in some scenarios. Added new start-up parameter --table_open_cache_instances for setting number of table cache instances in the system. Existing --table_open_cache parameter now limits total number of TABLE object in all table cache instances combined. Added Table_open_cache_hits, Table_open_cache_misses, Table_open_cache_overflows - per-connection and global status variables for tracking and tuning performance of new cache. (The latter allows to track how often we have to expel tables from the cache since the table cache instance contains more than table_open_cache/table_open_cache_instances objects.)
Loading