Evaluación de la idoneidad de DAX para sus casos de uso - Amazon DynamoDB

Evaluación de la idoneidad de DAX para sus casos de uso

En esta sección, se explica cuándo y por qué usar DAX. Estas recomendaciones le ayudarán a determinar si la integración de DAX con DynamoDB es ventajosa para los patrones de carga de trabajo, los requisitos de rendimiento y las necesidades de coherencia de datos de su aplicación. También cubre situaciones en las que DAX podría no ser adecuado, por ejemplo, para cargas de trabajo con mucho tráfico de escritura y con datos a los que se accede con poca frecuencia.

Cuándo y por qué elegir DAX

Puede considerar la posibilidad de agregar DAX a su pila de aplicaciones en varios escenarios. Por ejemplo, utilice DAX para reducir la latencia general de las solicitudes de lectura en DynamoDB o para minimizar las lecturas repetidas de los mismos datos de una tabla. La siguiente lista contiene ejemplos de escenarios en los que puede beneficiarle integrar DAX con DynamoDB:

  • Se necesita un alto rendimiento

    • Lecturas de baja latencia: debería considerar la posibilidad de utilizar DAX si su aplicación requiere tiempos de respuesta de microsegundos para lograr lecturas coherentes posteriores. DAX también puede reducir drásticamente el tiempo de respuesta para acceder a los datos que se leen con frecuencia.

  • Cargas de trabajo con mucho tráfico de lectura

    • Aplicaciones con mucho tráfico de lectura: en el caso de las aplicaciones con una alta relación de lectura y escritura, por ejemplo, de 10:1 o más, DAX genera más aciertos de caché y menos datos obsoletos. Esto reduce las lecturas en una tabla. Para evitar leer datos obsoletos de la caché si la aplicación tiene un elevado tráfico de escritura, asegúrese de establecer un valor de Uso del período de vida (TTL) en DynamoDB más bajo para la caché.

    • Almacenamiento en caché de consultas comunes: si su aplicación lee con frecuencia los mismos datos (por ejemplo, productos populares en una plataforma de comercio electrónico), DAX puede atender estas solicitudes directamente desde su caché.

  • Patrones de tráfico en ráfagas

    • Escalado de tablas más fluido: DAX ayuda a suavizar la repercusión de los picos de tráfico repentinos. DAX proporciona un búfer para escalar verticalmente con fluidez la capacidad de las tablas de DynamoDB, lo que reduce el riesgo de que se produzcan limitaciones en la lectura.

    • Mayor rendimiento de lectura para cada elemento: DynamoDB asigna particiones individuales para cada elemento. Sin embargo, una partición comienza a limitar las lecturas de un elemento cuando alcanza las 3000 unidades de capacidad de lectura (RCU). DAX permite escalar las lecturas de un solo elemento a más de 3000 RCU.

  • Optimización de costos

    • Reducción de los costos de DynamoDB: la lectura de DAX puede reducir las lecturas enviadas a una tabla de DynamoDB, lo que puede repercutir directamente en los costos. Con una alta tasa de aciertos de caché, el costo reducido de lectura de tablas puede superar el costo de un clúster de DAX, lo que se traduce en una reducción de los costos netos.

  • Requisitos de coherencia de datos

    • Coherencia final: DAX admite lecturas coherentes posteriores. Esto hace que DAX sea adecuado para casos de uso en los que la coherencia inmediata no es fundamental.

    • Almacenamiento en caché de escritura indirecta: las escrituras que se realizan en DAX son indirectas Una vez que DAX confirma que ha escrito un elemento en DynamoDB, mantiene esa versión del elemento en la caché de elementos. Este mecanismo de escritura indirecta ayuda a mantener una mayor coherencia de datos entre la caché y la base de datos, pero utiliza recursos adicionales de clúster de DAX.

Cuándo no utilizar DAX

Aunque DAX es potente, no es adecuado para todos los escenarios. La siguiente lista contiene ejemplos de escenarios en los que la integración de DAX con DynamoDB no es adecuada:

  • Cargas de trabajo con mucho tráfico de escritura: la principal ventaja de DAX es que acelera las lecturas, pero las escrituras utilizan más recursos de DAX que las lecturas. Si su aplicación tiene sobre todo mucho tráfico de escritura, las ventajas de DAX podrían ser limitadas.

  • Datos que se leen con poca frecuencia: si su aplicación accede a los datos con poca frecuencia o a una amplia gama de datos que raramente se reutilizan (datos fríos), es probable que tenga una cache hit ratio baja. En este caso, es posible que la sobrecarga que supone el mantenimiento de la memoria caché no justifique las mejoras de rendimiento.

  • Lecturas o escrituras en bloque: si su aplicación realiza más escrituras en bloque que escrituras individuales, deberá escribir de forma directa en DAX. Además, para las lecturas en bloque, debe realizar análisis de tabla completos directamente en una tabla de DynamoDB.

  • Requisitos de transacciones o coherencia estrictos: DAX transfiere las lecturas altamente coherentes y las llamadas de TransactGetItems a una tabla de DynamoDB. Debe realizar estas lecturas de forma directa en el clúster de DAX para evitar el uso de los recursos del clúster. Los elementos que se lean de esta manera no se almacenarán en caché; por lo tanto, enrutarlos a través de DAX no sirve para nada.

  • Aplicaciones sencillas con requisitos de rendimiento modestos: en el caso de aplicaciones que tienen requisitos de rendimiento modestos y tolerancia a la latencia directa de DynamoDB, es posible que no sea necesario asumir la complejidad y el costo de agregar DAX. DynamoDB gestiona por sí solo el alto rendimiento y proporciona un rendimiento de milisegundos de un solo dígito.

  • Necesidades de consulta complejas más allá del acceso clave-valor: DAX está optimizado para patrones de acceso clave-valor. Si su aplicación requiere capacidades de consulta complejas con filtrado complejo, como las operaciones Query y Scan, las ventajas del almacenamiento en caché de DAX podrían ser limitadas.

    En estas situaciones, utilice Amazon ElastiCache (Redis OSS) como alternativa. ElastiCache (Redis OSS) admite estructuras de datos avanzadas, como listas, conjuntos y hash. También ofrece características, como pub/sub, índices geoespaciales y scripts.

  • Requisitos de conformidad: actualmente, DAX no ofrece las mismas acreditaciones de conformidad que DynamoDB. Por ejemplo, DAX aún no ha obtenido la acreditación de SOC.