summaryrefslogtreecommitdiff
path: root/vio/viosslfactories.c
diff options
context:
space:
mode:
authorKrunal Bauskar <krunalbauskar@gmail.com>2020-06-04 18:37:18 +0800
committerMarko Mäkelä <marko.makela@mariadb.com>2020-06-17 09:12:56 +0300
commita0d598a4d220fc3845cdee9c8b46ca10b4c1093e (patch)
treef353c366629ff355ff93e11d21580c9166ac6a23 /vio/viosslfactories.c
parent592a10d0799807b19ee68ff6c391ee52d564b822 (diff)
downloadmariadb-git-a0d598a4d220fc3845cdee9c8b46ca10b4c1093e.tar.gz
MDEV-22794: Avoid potential rollback segment contention with
increased scalability through even distribution Rollback segments are allocated to transactions in round-robin fashion. This is controlled by incrementing a static-scope counter named rseg_slot. Said logic is not protected by any mutex or use of atomic for the counter. This potentially can cause the same rollback segment to get allocated to N different transactions (requesting allocation at the same time). While this is not an issue as a rollback segment can host multiple transactions from contention (performance) perspective it is better to allocate these rollback segments in round-robin fashion. Fix for the said issue ports use of atomic for the said counter that would ensure the original design semantic (even distribution through round-robin) is retained.
Diffstat (limited to 'vio/viosslfactories.c')
0 files changed, 0 insertions, 0 deletions