17.9.7.2 Сжатие сообщений
Для сообщений, отправляемых между онлайн-участниками группы, Group Replication по умолчанию включает сжатие сообщений. Сжимается ли конкретное сообщение зависит от порога, который вы настраиваете с помощью системной переменной group_replication_compression_threshold. Сообщения с объёмом полезной нагрузки больше, чем указанное количество байтов, сжимаются.
Пороговое значение сжатия по умолчанию составляет 1000000 байтов. Например, вы можете использовать следующие операторы для увеличения порога сжатия до 2 МБ:
STOP GROUP_REPLICATION;
SET GLOBAL group_replication_compression_threshold = 2097152;
START GROUP_REPLICATION;Если вы установите значение group_replication_compression_threshold в ноль, сжатие сообщений будет отключено.
Group Replication использует алгоритм сжатия LZ4 для сжатия сообщений, отправляемых в группе. Обратите внимание, что максимальный размер входных данных для алгоритма сжатия LZ4 составляет 2113929216 байтов. Это ограничение меньше максимального возможного значения для системной переменной group_replication_compression_threshold, которое соответствует максимальному размеру сообщения, принимаемому XCom. Таким образом, максимальный размер входных данных LZ4 является практическим ограничением для сжатия сообщений, и транзакции, превышающие этот размер, не могут быть подтверждены при включенном сжатии сообщений. При использовании алгоритма сжатия LZ4 не устанавливайте значение, превышающее 2113929216 байтов, для group_replication_compression_threshold.
Значение group_replication_compression_threshold не должно быть одинаковым на всех участниках группы для работы Group Replication. Однако рекомендуется установить одинаковое значение на всех участниках группы, чтобы избежать ненужной отмены транзакций, сбоев доставки сообщений или сбоев восстановления сообщений.
Сжатие сообщений, отправляемых в группе, происходит на уровне движка групповой коммуникации, до передачи данных потоку групповой коммуникации, поэтому оно происходит в контексте потока сеанса пользователя mysql. Если размер полезной нагрузки сообщения превышает порог, заданный group_replication_compression_threshold, полезная нагрузка транзакции сжимается перед отправкой в группу и распаковывается при получении. При получении сообщения участник проверяет конверт сообщения, чтобы убедиться, сжато ли оно. При необходимости участник распаковывает транзакцию перед передачей её на верхний уровень. Этот процесс показан на следующей диаграмме.
Рисунок 17.15 Поддержка сжатия
Когда пропускная способность сети является узким местом, сжатие сообщений может обеспечить увеличение пропускной способности до 30-40% на уровне групповой коммуникации. Это особенно важно в контексте больших групп серверов под нагрузкой. Природа TCP peer-to-peer соединений между N участниками группы заставляет отправителя отправлять одно и то же количество данных N раз. Кроме того, бинарные журналы, вероятно, будут иметь высокий коэффициент сжатия. Это делает сжатие привлекательной функцией для рабочих нагрузок Group Replication, содержащих большие транзакции.
© 2025 Oracle
Licensed under the GPLv2 License.