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