XtraDB Thread Priority Flag

Registered by Laurynas Biveinis

Some of the InnoDB worker threads compete for the shared resource accesses with the query threads. Performance experiments show that under high concurrency the worker threads must acquire the shared resources with priority. This blueprint is about implementing a flag that is per-thread and whose value indicates whether the current thread is prioritized or not. Actual uses of the flag will be in follow-up blueprints.

Since the performance experiments on the exact final priority setup are not finished, introduce dynamic, boolean plugin variables for manipulating these flags for selected threads:
- innodb_priority_purge;
- innodb_priority_io;
- innodb_priority_cleaner;
- innodb_priority_master.

These variables are intended for performance experimenting and not regular user tuning (so that we are able to adjust the defaults for the regular users). Thus they should be UNIV_PERF_DEBUG-only for now and will be removed later or exposed to users as needed. The current set of flags is not meant to cover all the background threads but only the interesting ones for our purposes. Threads might be removed from or added to it as needed.

The easiest and least overhead-introducing way to implement this flag seems to be using thread-local storage.

Blueprint information

Status:
Complete
Approver:
Alexey Kopytov
Priority:
High
Drafter:
Laurynas Biveinis
Direction:
Approved
Assignee:
Laurynas Biveinis
Definition:
Approved
Series goal:
Accepted for 5.6
Implementation:
Implemented
Milestone target:
milestone icon 5.6.13-61.0
Started by
Laurynas Biveinis
Completed by
Laurynas Biveinis

Whiteboard

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.