Mejora del rendimiento de escritura con Escrituras optimizadas para Amazon RDS para MariaDB - Amazon Relational Database Service

Mejora del rendimiento de escritura con Escrituras optimizadas para Amazon RDS para MariaDB

Puede mejorar el rendimiento de las transacciones de escritura con Escrituras optimizadas para RDS para MariaDB. Cuando su base de datos de RDS para MariaDB utiliza escrituras optimizadas para RDS, puede lograr un rendimiento de transacciones de escritura hasta dos veces mayor.

Información general de las escrituras optimizadas de RDS

Al activar las Escrituras optimizadas para RDS, las bases de datos de RDS para MariaDB escriben solo una vez cuando vacían los datos en un almacenamiento duradero sin necesidad de utilizar un búfer de escritura doble. Las bases de datos siguen protegiendo las propiedades de ACID para realizar transacciones de bases de datos fiables, además de mejorar el rendimiento.

Las bases de datos relacionales, como MariaDB, proporcionan las propiedades ACID de atomicidad, consistencia, aislamiento y durabilidad para transacciones de bases de datos fiables. Para ayudar a proporcionar estas propiedades, MariaDB utiliza un área de almacenamiento de datos denominada búfer de escritura doble que evita errores de escritura parcial de páginas. Estos errores se producen cuando se produce un error de hardware mientras la base de datos actualiza una página, como en el caso de un corte de luz. Una base de datos MariaDB puede detectar escrituras parciales de páginas y recuperarlas con una copia de la página en el búfer de escritura doble. Si bien esta técnica proporciona protección, también produce operaciones de escritura adicionales. Para obtener más información sobre el búfer de escritura doble de MariaDB, consulte Doublewrite Buffer (Búfer de escritura doble) en la documentación de MariaDB.

Con las escrituras optimizadas para RDS activadas, las bases de datos de RDS para MariaDB escriben solo una vez cuando vacían los datos en un almacenamiento duradero sin utilizar el búfer de escritura doble. Las escrituras optimizadas para RDS son útiles si ejecuta cargas de trabajo con muchas escrituras en sus bases de datos de RDS para MariaDB. Entre los ejemplos de bases de datos con cargas de trabajo que requieren muchas escrituras, se incluyen las que admiten pagos digitales, operaciones financieras y aplicaciones de juegos.

Estas bases de datos se ejecutan en clases de instancias de base de datos que utilizan el sistema AWS Nitro. Gracias a la configuración del hardware de estos sistemas, la base de datos puede escribir páginas de 16 KiB directamente en archivos de datos de forma fiable y duradera en un solo paso. El sistema AWS Nitro permite las escrituras optimizadas de RDS.

Puede configurar el nuevo parámetro de base de datos rds.optimized_writes para controlar la característica de escrituras optimizadas para RDS para bases de datos RDS para MariaDB. Acceda a este parámetro en los grupos de parámetros de base de datos de RDS para MariaDB para las siguientes versiones:

  • Versión 10.11.4 y versiones posteriores a la 10.11

  • Versión 10.6.10 y versiones posteriores a la 10.6

Establezca el parámetro con uno de los siguientes valores:

  • AUTO: activa las escrituras optimizadas de RDS si la base de datos las admite. Desactiva las escrituras optimizadas de RDS si la base de datos no las admite. Esta configuración es la predeterminada.

  • OFF: desactiva las escrituras optimizadas de RDS aunque la base de datos las admita.

Si migra una base de datos de RDS para MariaDB que está configurada para utilizar escrituras optimizadas para RDS en una clase de instancia de base de datos que no admite esta característica, RDS desactiva automáticamente las escrituras optimizadas para RDS para la base de datos.

Cuando las escrituras optimizadas para RDS están desactivadas, la base de datos utiliza el búfer de escritura doble de MariaDB.

Para determinar si una base de datos de RDS para MariaDB utiliza escrituras optimizadas para RDS, consulte el valor actual del parámetro innodb_doublewrite de la base de datos. Si la base de datos utiliza escrituras optimizadas de RDS, este parámetro se establece en FALSE (0).

Uso de escrituras optimizadas de RDS

Puede activar las escrituras optimizadas para RDS al crear una base de datos RDS para MariaDB con la consola de RDS, la AWS CLI o la API de RDS. Las escrituras optimizadas de RDS se activan automáticamente cuando se cumplen las dos condiciones siguientes durante la creación de la base de datos:

  • Debe especificar una clase de instancia de base de datos y una versión de motor de base de datos que admitan escrituras optimizadas de RDS.

    • Las escrituras optimizadas de RDS son compatibles con las siguientes versiones de RDS para MariaDB:

      • Versión 10.11.4 y versiones posteriores a la 10.11

      • Versión 10.6.10 y versiones posteriores a la 10.6

      Para obtener más información acerca de las versiones de RDS para MariaDB, consulte Versiones de MariaDB en Amazon RDS.

    • Las bases de datos RDS para MariaDB que utilizan las siguientes clases de instancias de base de datos son compatibles con las escrituras optimizadas para RDS:

      • db.m7g

      • db.m6g

      • db.m6gd

      • db.m6i

      • db.m5

      • db.m5d

      • db.r7g

      • db.r6g

      • db.r6gd

      • db.r6i

      • db.r5

      • db.r5b

      • db.r5d

      • db.x2idn

      • db.x2iedn

      Para obtener información acerca de las clases de instancia de base de datos, consulte Clases de instancia de base de datos de .

      La disponibilidad de las clases de instancia de base de datos es diferente en las Regiones de AWS. Para determinar si una clase de instancia de base de datos se admite en una Región de AWS específica, consulte Determinación de la compatibilidad de la clase de instancia de base de datos en Regiones de AWS.

  • En el grupo de parámetros asociado a la base de datos, el parámetro rds.optimized_writes se establece en AUTO. En los grupos de parámetros predeterminados, este parámetro siempre se establece en AUTO.

Si desea utilizar una versión del motor de base de datos y una clase de instancia de base de datos que admita las escrituras optimizadas para RDS, pero no quiere utilizar esta característica, especifique un grupo de parámetros personalizado al crear la base de datos. En este grupo de parámetros, defina el parámetro rds.optimized_writes en OFF. Si desea que la base de datos utilice las escrituras optimizadas de RDS más adelante, puede configurar el parámetro AUTO para activarla. Para obtener información sobre cómo trabajar con grupos de parámetros personalizados y establecer parámetros, consulte Working with parameter groups (Trabajar con grupos de parámetros).

Para obtener información acerca de la creación de una instancia de base de datos, consulte Creación de una instancia de base de datos de Amazon RDS.

Al utilizar la consola de RDS para crear una base de datos RDS para MariaDB, puede filtrar las versiones del motor de base de datos y las clases de instancia de base de datos que admiten las escrituras optimizadas para RDS. Tras activar los filtros, puede elegir entre las clases de instancia de base de datos y las versiones del motor de base de datos disponibles.

Para elegir una versión del motor de base de datos que admita escrituras optimizadas para RDS, filtre las versiones del motor de base de datos RDS para MariaDB que la admitan en Versión del motor y, a continuación, elija una versión.

Filtro de versiones del motor de base de datos para escrituras optimizadas para RDS.

En la sección Instance configuration (Configuración de instancias), filtre las clases de instancias de base de datos que admiten escrituras optimizadas de RDS y, a continuación, elija una clase de instancia de base de datos.

Filtro de clases de instancias de base de datos para escrituras optimizadas para RDS

Tras realizar estas selecciones, puede elegir otras configuraciones que cumplan sus requisitos y terminar de crear la base de datos RDS para MariaDB con la consola.

Para crear una instancia de base de datos con la AWS CLI, utilice el comando create-db-instance. Asegúrese de que los valores --engine-version y --db-instance-class admitan escrituras optimizadas de RDS. Además, asegúrese de que el grupo de parámetros asociado a la instancia de base de datos tiene el parámetro rds.optimized_writes configurado en AUTO. En este ejemplo, se asocia el grupo de parámetros predeterminado con la instancia de base de datos.

ejemplo Creación de una instancia de base de datos que utilice escrituras optimizadas de RDS

Para Linux, macOS, o Unix:

aws rds create-db-instance \ --db-instance-identifier mydbinstance \ --engine mariadb \ --engine-version 10.6.10 \ --db-instance-class db.r5b.large \ --manage-master-user-password \ --master-username admin \ --allocated-storage 200

En Windows:

aws rds create-db-instance ^ --db-instance-identifier mydbinstance ^ --engine mariadb ^ --engine-version 10.6.10 ^ --db-instance-class db.r5b.large ^ --manage-master-user-password ^ --master-username admin ^ --allocated-storage 200

Puede crear una instancia de base de datos mediante la operación CreateDBInstance. Cuando realice esta operación, asegúrese de que los valores EngineVersion y DBInstanceClass admitan escrituras optimizadas de RDS. Además, asegúrese de que el grupo de parámetros asociado a la instancia de base de datos tiene el parámetro rds.optimized_writes configurado en AUTO.

Habilitar las escrituras optimizadas para RDS en una base de datos existente

A fin de modificar una base de datos RDS para MariaDB existente y activar las escrituras optimizadas para RDS, la base de datos debe haberse creado con una versión de motor de base de datos y una clase de instancia de base de datos compatibles. Además, la base de datos debe haberse creado después del lanzamiento de las escrituras optimizadas para RDS el 7 de marzo de 2023, ya que la configuración del sistema de archivos subyacente requerida es incompatible con la de las bases de datos creadas antes de su publicación. Si se cumplen estas condiciones, puede activar las escrituras optimizadas para RDS poniendo el parámetro rds.optimized_writes en AUTO.

Si la base de datos no se creó con una versión de motor, una clase de instancia o una configuración de sistema de archivos compatibles, puede usar las implementaciones azul/verde de RDS para migrar a una configuración compatible. Al crear la implementación azul/verde, haga lo siguiente:

  • Seleccione Habilitar escrituras optimizadas en base de datos verde y especifique una versión del motor y una clase de instancia de base de datos que admitan escrituras optimizadas de RDS. Para ver una lista de las versiones de motor y las clases de instancias compatibles, consulte Uso de escrituras optimizadas de RDS.

  • En Almacenamiento, seleccione Actualizar la configuración del sistema de archivos de almacenamiento. Esta opción actualiza la base de datos a una configuración de sistema de archivos subyacente compatible.

Al crear la implementación azul/verde, si el parámetro rds.optimized_writes se ha configurado en AUTO, las escrituras optimizadas de RDS se habilitarán automáticamente en el entorno verde. A continuación, puede conmutar la implementación azul/verde para que el entorno verde sea el nuevo entorno de producción.

Para obtener más información, consulte Creación de una implementación azul/verde.

Limitaciones de las escrituras optimizadas de RDS

Al restaurar una base de datos de RDS para MariaDB a partir de una instantánea, solo puede activar las escrituras optimizadas para RDS para la base de datos si se cumplen todas las condiciones siguientes:

  • La instantánea se creó a partir de una base de datos que admite escrituras optimizadas de RDS.

  • La instantánea se ha creado a partir de una base de datos que se creó después del lanzamiento de las escrituras optimizadas para RDS.

  • La instantánea se restaura en una base de datos que admite escrituras optimizadas de RDS.

  • La base de datos restaurada está asociada a un grupo de parámetros que tiene el parámetro rds.optimized_writes establecido en AUTO.