Details
-
Task
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
Description
MDEV-38814 introduced a new global variable innodb_index_shrink default ON (opt-in) to control whether record-growing UPDATE should aggressively attempt shrinking the B-tree resorting to pessimistic path (legacy behavior), or can allow optimistic path more often (faster, less contended), at cost of slightly sparser trees (new behavior, more split-prone).
Such behavior is pinned by the test added in MDEV-38814, but only in a few "controlled" conditions.
HammerDB TPROC-C performance testing up to now discovered no regression with innodb_index_shrink=OFF.
However, a dedicated testing round will be performed with particular attention to any bloat that might occur due to setting innodb_index_shrink=OFF.
This ticket proposes to flip the default value of innodb_index_shrink from ON (opt-in, no optimization by default) to OFF (opt-out, optimization enabled by default), for the newer server version 13.3.
It's currently blocked by the aforementioned testing campaign.
MDEV-39851, agreed as a way forward for the variable in newer versions (such as 13.3 would be), proposes to switch the variable from a global one to the default session value of a new per-index one (possibly called shrink, in the MDEV-37070 fashion).
If innodb_index_shrink would become the default value of a new per-index option, then switching the default value would affect only those new DDL coming after the switch, leaving existing tables untouched.
Possibly, a better way forward for MDEV-39851 could therefore be something similar to post-MDEV-37070 innodb_adaptive_hash_index: that is a global switch that can be disabled/controlled with a per-index granularity with the new per-index option.
Attachments
Issue Links
- relates to
-
MDEV-38814 High rate of index_lock_upgrades due to btr_cur_need_opposite_intention() mostly returning true
-
- Closed
-
-
MDEV-39851 Add per-index "shrink" option to control record-growing UPDATE optimization
-
- Open
-
-
PERF-475 Loading...
- is blocked by
-
PERF-550 Loading...