• Kristian Nielsen's avatar
    MDEV-6680: Performance of domain_parallel replication is disappointing · eec04fb4
    Kristian Nielsen authored
    The code that handles free lists of various objects passed to worker threads
    in parallel replication handles freeing in batches, to avoid taking and
    releasing LOCK_rpl_thread too often. However, it was possible for freeing to
    be delayed to the point where one thread could stall the SQL driver thread due
    to full queue, while other worker threads might be idle. This could
    significantly degrade possible parallelism and thus performance.
    
    Clean up the batch freeing code so that it is more robust and now able to
    regularly free batches of object, so that normally the queue will not run full
    unless the SQL driver thread is really far ahead of the worker threads.
    eec04fb4
rpl_parallel.cc 63.4 KB