-
Pedro Gomes authored
When the option is active, each server transaction will collect write sets for each row, allowing to identify what changes the transaction made, important for replication parallelization in general and Group Replication conflict detection. This patch improves the handling of write set collection for each transaction in 2 ways. First is that write sets are discarded if their size grow above binlog_transaction_dependency_history_size. As a consequence the transaction will no longer be marked as concurrent with previous ones even if they touch different data. The second one is that components like Group Replication can set memory limits for the collection of write sets. Components like GR are dependent on write sets being present, so they will never be discarded, but breaking this memory limit will cause transactions to abort. ReviewBoard: 25520 ReviewBoard: 25592 (cherry picked from commit 933cc1c3b1dcf175de5aef0b6e2a826435481af6)
Pedro Gomes authoredWhen the option is active, each server transaction will collect write sets for each row, allowing to identify what changes the transaction made, important for replication parallelization in general and Group Replication conflict detection. This patch improves the handling of write set collection for each transaction in 2 ways. First is that write sets are discarded if their size grow above binlog_transaction_dependency_history_size. As a consequence the transaction will no longer be marked as concurrent with previous ones even if they touch different data. The second one is that components like Group Replication can set memory limits for the collection of write sets. Components like GR are dependent on write sets being present, so they will never be discarded, but breaking this memory limit will cause transactions to abort. ReviewBoard: 25520 ReviewBoard: 25592 (cherry picked from commit 933cc1c3b1dcf175de5aef0b6e2a826435481af6)
Loading