-
Kristian Nielsen authored
Avoid linear scan of all recently queued XIDs in the SQL driver thread, which might be expensive in XA-heavy workloads and large number of parallel replication worker threads. Instead keep a hash in the rpl_parallel_entry of where recently queued XIDs were scheduled. This allows direct lookup of any potential scheduling dependency. Keep a list in each scheduling bucket of recently queued XIDs, and purge the list (based on generations) when queueing next XA. Also implement a more fine-grained dependency check based on sub_id comparison. This can sometimes avoid a scheduling dependency that would otherwise look necessary based solely on the generation check. Signed-off-by:
Kristian Nielsen <knielsen@knielsen-hq.org>
6253f0dc