WL#10986: REMOVE PERFORMANCE_SCHEMA.SETUP_TIMERS IN 8.0

Affects: Server-8.0   —   Status: Complete

Remove table performance_schema.setup_timers in 8.0

This feature is over engineered and not used.
Removal will allow to reduce the runtime overhead.

Related:
BUG#71808: Manual does not explain what TICK timer is and why it's different on Windows
(this is about performance_timers, not setup_timers, but can be closed if the TICK timer goes away)
Table performance_schema.setup_timers
=====================================

This table is removed.

Timers used
===========

Previously, timers could be configured dynamically (using setup_timers).

Now, timers are hard coded as follows:
- the WAIT timer uses cycles

For platforms where the nanoseconds timer is available:
- the IDLE timer uses nanoseconds
- the STAGE timer uses nanoseconds
- the STATEMENT timer uses nanoseconds
- the TRANSACTION timer uses nanoseconds.

For platforms where the nanoseconds timer is not available:
- the IDLE timer uses microseconds
- the STAGE timer uses microseconds
- the STATEMENT timer uses microseconds
- the TRANSACTION timer uses microseconds.

Server startup
==============

Upon server startup, the code verifies that assumptions made at build time
(aka, hard coding the timers) are correct.

In particular:
- if a timer is not available,
a warning message is printed.

Note:
printing a warning if timer X is better that timer Y was considered,
and then abandoned: it is too unstable in PB2,
given that measuring a timer overhead is very unstable under load.

Table performance_schema.performance_timers
===========================================

The row for the TICK timer is removed.