Todos los productos
Search
Centro de documentos

ApsaraDB RDS:Usar Binlog Parallel Flush

Última actualización: Sep 08, 2026

AliSQL optimiza la función Binlog Parallel Flush durante la fase de confirmación de los registros binarios para mejorar el rendimiento de escritura. Cuando habilite esta función después de la optimización, el rendimiento de escritura de su instancia ApsaraDB RDS mejora significativamente.

Requisitos previos

  • Su instancia RDS ejecuta MySQL 8.0.

  • Su instancia RDS ejecuta una versión secundaria del motor 20230930 o posterior.

    Nota

    Para consultar la versión secundaria del motor de su instancia RDS, inicie sesión en la consola de ApsaraDB RDS y vaya a la página Basic Information. En la sección Configuration Information, compruebe si se muestra el botón Upgrade Minor Engine Version. Si se muestra, haga clic en él; después, consulte y actualice la versión secundaria del motor de su instancia RDS. Si no se muestra, su instancia RDS ejecuta la versión secundaria del motor más reciente. Para obtener más información, consulte Upgrade the minor engine version.

  • El parámetro sync_binlog de su instancia RDS no está establecido en 1.

Información de contexto

13ca93f432f146db197ded0b18b3023042978ae3ee7812bef3267aa4ca532dedQzpcVXNlcnNccWl5aW5ndGFuXEFwcERhdGFcUm9hbWluZ1xpRGluZ1RhbGtcNDI5ODE1NTU5N192MlxJbWFnZUZpbGVzXDE3MTEwMTA5NTg1MTRfMjVEODNBODItRjNCMi00OGYxLUE1RDMtNzkzNkU5REIxNjQ5LnBuZw==.png

En MySQL, el sistema escribe datos en los registros binarios cada vez que se confirma una transacción. Las escrituras se realizan de forma secuencial. El sistema escribe en los registros binarios los datos de una transacción tras otra.

El proceso de escritura consume mucho tiempo. Antes de escribir datos en los registros binarios, el sistema debe analizar todos los eventos almacenados en la caché del registro binario, asignar valores a los parámetros Checksum y log_pos, y generar eventos de identificador global de transacciones (GTID). Este proceso de escritura supone un cuello de botella importante para el rendimiento de escritura de la instancia RDS. Para resolver este cuello de botella, AliSQL optimiza la función Binlog Parallel Flush.

Detalles de la optimización

Búfer de registro binario

7d62745838385a745eefff4a18d6f6ae712c7f429c11d5456c9288e66c0685d9QzpcVXNlcnNccWl5aW5ndGFuXEFwcERhdGFcUm9hbWluZ1xpRGluZ1RhbGtcNDI5ODE1NTU5N192MlxJbWFnZUZpbGVzXDE3MTEwMTEwNTY5ODBfRkE0RTZEOEYtMTg0NC00NzFiLTg0RTYtRjIxQTYyNjk4OEQwLnBuZw==.png

AliSQL introduce un búfer de registro binario para implementar la optimización. Una vez asignados varios hilos, el sistema puede escribir eventos de registro binario en el búfer de registro binario en paralelo. Luego, los hilos de backend escriben los datos del búfer de registro binario en archivos de registro binario. De esta manera, el sistema puede ejecutar en paralelo las operaciones que deben completarse en secuencia. Estas operaciones incluyen asignar valores a los parámetros Checksum y log_pos, y generar eventos GTID. Esto mejora significativamente el rendimiento de escritura cuando se escriben eventos en archivos de registro binario.

Confirmación en grupo

En MySQL, el sistema escribe datos en los archivos de registro binario y en los archivos de registro de rehacer de distintos grupos de transacciones durante la confirmación de la transacción. Esto ayuda a fusionar las operaciones de E/S en la mayor medida posible y a mejorar el rendimiento. Después de la optimización, se conserva el concepto de confirmación en grupo. A continuación, la imagen muestra la función Binlog Parallel Flush con confirmación en grupo.

49080702daa3a9709047732fbb09ebe2c40954015a22dc572926f5f706cdec34QzpcVXNlcnNccWl5aW5ndGFuXEFwcERhdGFcUm9hbWluZ1xpRGluZ1RhbGtcNDI5ODE1NTU5N192MlxJbWFnZUZpbGVzXDE3MTEwMTEzMzE1ODZfRUVEQUNGMkEtMTE4RS00YmU4LUE0RDItQjZGRDg2NjEzMDE0LnBuZw==.png

Después de la optimización, el sistema asigna GTID y búferes de registro binario para las transacciones, uno tras otro. Luego, el sistema escribe los eventos de registro binario del grupo de transacciones en los búferes de registro binario. Una vez que se almacenan los archivos de registro de rehacer y el hilo de backend escribe los datos de los búferes de registro binario en archivos de registro binario, el grupo de transacciones puede confirmarse.

Persistencia de los registros binarios

f8acb0a238e8f535995bc410175c5b167240ab1ee31b97091d438c41812720b7QzpcVXNlcnNccWl5aW5ndGFuXEFwcERhdGFcUm9hbWluZ1xpRGluZ1RhbGtcNDI5ODE1NTU5N192MlxJbWFnZUZpbGVzXDE3MTEwMTExMTgzOTBfOUMxQTkzNjktRTczNi00ZjIwLUFGNzktRUFCNERBOENBNDcwLnBuZw==.png Después de la optimización, un hilo de backend persiste los archivos de registro binario a intervalos regulares. De forma predeterminada, un archivo de registro binario se persiste una vez por segundo.

Descripción del parámetro

loose_binlog_parallel_flush

Este parámetro especifica si se debe habilitar la función Binlog Parallel Flush. Este parámetro es una variable global del sistema. Valores válidos: on y off. Si modifica el valor de este parámetro, el cambio surte efecto inmediatamente. No es necesario que reinicie su instancia RDS.

Efecto de la optimización

Entorno de prueba

La tabla que aparece a continuación describe el efecto de la optimización de esta función en instancias de ApsaraDB RDS for MySQL que utilizan distintas especificaciones.

Servicio

Versión

CPU y memoria

Tipo de almacenamiento

Capacidad de almacenamiento

ApsaraDB RDS for MySQL

MySQL 8.0 (versión secundaria del motor: 20230930)

16 núcleos, 32 GB

ESSD PL1

1,000 GB

16 núcleos, 32 GB

SSD

1,000 GB

64 núcleos, 128 GB

ESSD PL1

1,000 GB

64 núcleos, 128 GB

SSD

1,000 GB

Configuración de parámetros

La instancia RDS de la prueba usa una plantilla de parámetros de alto rendimiento. En la plantilla, se usa la configuración de parámetros relacionada con el rendimiento que se indica a continuación: sync_binlog = 1000 y innodB_flush_log_at_trx_commit = 2.

Script de prueba

Para la prueba de rendimiento se usa el script oltp_update_non_index de Sysbench. Los datos de prueba contienen 100 tablas y cada tabla contiene 100,000 filas.

Resultados de la prueba

A continuación, la imagen muestra los resultados de la prueba. En comparación con MySQL Normal Flush nativo, Binlog Parallel Flush mejora significativamente el rendimiento de escritura de una instancia RDS. La mejora máxima puede ser de entre un 10 % y un 30 %.

5387087b82ed9e5a496a96425aee3abbe3cd103f9e53f63b92eae933526933a3QzpcVXNlcnNccWl5aW5ndGFuXEFwcERhdGFcUm9hbWluZ1xpRGluZ1RhbGtcNDI5ODE1NTU5N192MlxJbWFnZUZpbGVzXDE3MTA0ODMyODY1NTlfOTdCMkI0NTktNTYzMi00ZmU2LUJEMTMtOEQwMjg5QTYwQTVCLnBuZw==.png