sql >> Base de Datos >  >> RDS >> MariaDB

Optimizaciones de escritura para Qualcomm Centriq 2400 en MariaDB 10.3.5 Release Candidate

MariaDB ha estado colaborando con Qualcomm Datacenter Technologies para impulsar el rendimiento al aprovechar la innovadora arquitectura de hardware basada en ARM con la arquitectura de base de datos única de MariaDB. Como parte del lanzamiento del producto Qualcomm Centriq™ 2400 en noviembre de 2017, demostramos la sólida escalabilidad de lectura de MariaDB en este chip. Desde entonces, los ingenieros de MariaDB y Qualcomm han estado trabajando para mejorar la escalabilidad de las operaciones de escritura que nos gustaría compartir hoy con la comunidad de desarrolladores.

Nos complace anunciar una serie de mejoras de rendimiento que están disponibles en la versión 10.3.4 candidata a la versión 10.3 enviada recientemente. Al aprovechar el procesador Qualcomm Centriq 2400 de 48 núcleos altamente paralelizado que funciona a 2,6 GHz con 6 canales de memoria en una arquitectura de anillo totalmente coherente, nuestro interés es extraer la optimización del rendimiento de escritura en un caso de uso de escritura de una sola fila para una aplicación con muchos subprocesos.

MariaDB utiliza el software de referencia sysbench para medir el rendimiento. En este blog, examinaremos los siguientes 2 puntos de referencia utilizando sysbench 1.0:

  • Oltp_update_index:esto simula la actualización de un valor de una sola fila por índice de clave principal donde se debe actualizar un índice secundario como resultado de la actualización.
  • Oltp_update_nonindex:Esto simula la actualización de un valor de una sola fila por índice de clave principal donde no hay un índice secundario. Obviamente, esto requiere menos trabajo que oltp_update_index.

Lo que vemos es que a medida que aumenta la cantidad de subprocesos simultáneos, el rendimiento es hasta un 48 % más rápido en 10.3 que en 10.2 en Centriq™ 2400:

Las mejoras realizadas eliminan puntos de discordia y optimizan para el conjunto de chips ARM64, específicamente:

  • MDEV-15090:reduce la sobrecarga de escribir registros de deshacer
  • MDEV-15132:Evite acceder a la página TRX_SYS
  • MDEV-15019:InnoDB:almacenar ReadView en trx
  • MDEV-14756:eliminar trx_sys_t::rw_trx_list
  • MDEV-14482:Contención de línea de caché en ut_rnd_ulint_counter()
  • MDEV-15158:al confirmar, no escribir en la página TRX_SYS
  • MDEV-15104:Eliminar trx_sys_t::rw_trx_ids y trx_sys_t::serialisation_list
  • MDEV-14638:Reemplace trx_sys_t::rw_trx_set con LF_HASH
  • MDEV-14529:InnoDB rw-locks:optimizar las barreras de memoria
  • MDEV-14374:código UT_DELAY:eliminando la barrera de hardware para la plataforma arm64 bit
  • MDEV-14505:Threads_running se convierte en cuello de botella de escalabilidad

En resumen, lo que esto significa es que MariaDB funcionará significativamente mejor con altos niveles de actualizaciones simultáneas, lo que mejorará los tiempos de respuesta en sus aplicaciones en los picos de carga.

Las mejoras también brindarán beneficios a otras arquitecturas de chips, pero se observa una ganancia mucho mayor en el Centriq™ 2400 debido a su diseño capaz de admitir un número de subprocesos mucho mayor. Al utilizar núcleos físicos en lugar de hiperprocesamiento de una cantidad menor de núcleos, Centriq™ 2400 demuestra una ganancia adicional del 13 % con respecto a una plataforma Broadwell de referencia comparable.

A medida que los sistemas Centriq™ 2400 salen al mercado este año, estamos entusiasmados de ver que las cargas de trabajo de los clientes aprovechan la escalabilidad combinada con un menor consumo de energía para ejecutar cargas de trabajo de bases de datos de gran escala.