DAX: Cómo funciona - Amazon DynamoDB

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

DAX: Cómo funciona

El acelerador de Amazon DynamoDB (DAX) está diseñado para ejecutarse en un entorno de Amazon Virtual Private Cloud (Amazon VPC). El servicio Amazon VPC define una red virtual que se parece mucho a un centro de datos tradicional. Con una VPC, puede controlar el rango de direcciones IP, las subredes, las tablas de ruteo, las gateways de red y los ajustes de seguridad. Puede lanzar un clúster de DAX en la red virtual y controlar el acceso al clúster mediante grupos de seguridad de Amazon VPC.

nota

Si ha creado suAWSDespués del 4 de diciembre de 2013, ya tiene una VPC predeterminada en cadaAWSRegión . La VPC está lista para usarse de inmediato, sin tener que realizar ningún paso de configuración adicional.

Para obtener más información, consulteVPC predeterminada y subredes predeterminadasen laGuía del usuario de Amazon VPC.

En el siguiente diagrama se muestra información general sobre DAX.


            Diagrama de flujo de trabajo que muestra la interacción de la aplicación, el cliente de DAX y el clúster de DAX en una VPC.

Para crear un clúster de DAX, se usa el método deAWS Management Console. A menos que especifique otra cosa, el clúster de DAX se ejecuta dentro de la VPC predeterminada. Para ejecutar la aplicación, lance una instancia Amazon EC2 en su Amazon VPC. A continuación, implemente la aplicación (con el cliente de DAX) en la instancia EC2.

En tiempo de ejecución, el cliente de DAX dirige todas las solicitudes de API de DynamoDB de la aplicación al clúster de DAX. Si DAX puede procesar una de estas solicitudes del API directamente, lo hace. En caso contrario, transmite la solicitud a DynamoDB.

Por último, el clúster de DAX devuelve los resultados a la aplicación.

Cómo procesa DAX las solicitudes

Un clúster de DAX consta de uno o varios nodos. Cada nodo ejecuta su propia instancia del software de almacenamiento en caché de DAX. Uno de los nodos sirve como nodo principal del clúster. Los nodos adicionales (en caso de incluirse) actúan como réplicas de lectura. Para obtener más información, consulte Nodes.

La aplicación puede obtener acceso a DAX especificando el punto de enlace del clúster de DAX. El software del cliente de DAX de funciona con el punto de enlace del clúster para realizar el ruteo y el balanceo de carga inteligente.

Operaciones de lectura

DAX puede responder a las siguientes llamadas al API:

  • GetItem

  • BatchGetItem

  • Query

  • Scan

Si la solicitud especificalecturas consistentes finales(el comportamiento predeterminado), intenta leer el elemento de DAX:

  • Si DAX tiene el elemento disponible (unacierto de cachéDAX devuelve el elemento a la aplicación sin obtener acceso a DynamoDB.

  • Si DAX no tiene el elemento disponible en (unerror de caché), DAX transmite la solicitud a DynamoDB. Cuando recibe la respuesta de DynamoDB, DAX devuelve los resultados a la aplicación. También escribe los resultados en la caché en el nodo principal.

nota

Si el clúster contiene réplicas de lectura, DAX las mantiene automáticamente sincronizadas con el nodo principal. Para obtener más información, consulte Clusters.

Si la solicitud especificalecturas de coherencia altaDAX transmite la solicitud a DynamoDB. Los resultados de DynamoDB no se almacenan en caché en DAX. Sencillamente, se devuelven a la aplicación.

Operaciones de escritura

Las siguientes operaciones del API de DAX se consideran de «escritura indirecta» (write-through):

  • BatchWriteItem

  • UpdateItem

  • DeleteItem

  • PutItem

Con estas operaciones, los datos se escriben primero en la tabla de DynamoDB y, a continuación, en el clúster de DAX. La operación solo se lleva a cabo correctamente si los datos se escriben correctamente enBOTHla tabla y DAX.

Otras operaciones de

DAX no reconoce ninguna operación de DynamoDB de administración de tablas (tales como:CreateTable,UpdateTable, y así sucesivamente.). Si la aplicación tiene que realizar estas operaciones, debe obtener acceso a DynamoDB directamente, sin usar DAX.

Para obtener información detallada sobre la coherencia de DAX y DynamoDB, consulteModelos de consistencia DAX y DynamoDB.

Para obtener información sobre el funcionamiento de las transacciones en DAX, consulteUso de las API transaccionales en DynamoDB Accelerator (DAX).

Limitación de velocidad de solicitudes

Si el número de solicitudes enviadas a DAX supera la capacidad de un nodo, DAX limita la velocidad a la que acepta solicitudes adicionales devolviendo unaThrottlingException. DAX evalúa continuamente la utilización de la CPU para determinar el volumen de solicitudes que puede procesar manteniendo el clúster en buen estado.

Puede monitorizar laMétrica ThrottledRequestCountque DAX publica en Amazon CloudWatch. Si ve estas excepciones periódicamente, debería plantearse escalar el clúster.

Caché de elementos

DAX mantiene uncaché de elementosPara almacenar los resultados deGetItemyBatchGetItemoperaciones. Los elementos de la caché representan datos con consistencia final de DynamoDB y se almacenan según sus valores de clave principal.

Cuando una aplicación envía unGetItemorBatchGetItemDAX intenta leer los elementos directamente en la caché de elementos con los valores de clave especificados. Si encuentra los elementos (aciertos de caché), DAX los devuelve a la aplicación de forma inmediata. Si los elementos no se encuentran (error de caché), DAX envía la solicitud a DynamoDB. DynamoDB procesa las solicitudes usando lecturas consistentes finales y devuelve los elementos a DAX. DAX los almacena en la caché los elementos y, a continuación, los devuelve a la aplicación.

La caché de elementos tiene un ajuste de tiempo de vida (TL, por sus siglas en inglés), cuyo valor predeterminado es de 5 minutos. DAX asigna una marca temporal a cada elemento que escribe en la caché de elementos. Un elemento vence cuando ha permanecido en la caché más tiempo del indicado en el ajuste de TTL. Si emite unGetItemen un elemento vencido, se considera un error de caché, en cuyo caso DAX envía la solicitud deGetItema DynamoDB.

nota

Puede especificar el ajuste de TL de la caché de elementos al crear un clúster de DAX nuevo. Para obtener más información, consulte Administración de clústeres de DAX .

DAX también mantiene una lista de elementos menos usados recientemente (LRU, por sus siglas en inglés) para la caché de elementos. La lista LRU rastrea cuándo se escribió un elemento por primera vez en la caché y cuándo se leyó por última vez en ella. Si la caché de elementos se llena, DAX expulsa los elementos más antiguos (aunque todavía no hayan vencido) para dejar espacio a los nuevos. El algoritmo LRU siempre está habilitado para la caché de elementos y no es configurable por el usuario.

Si especifica cero comocaché de elementosTTL, los elementos de la caché de elementos solo se actualizarán debido a una expulsión de LRU o a una «escritura».

Para obtener información detallada sobre la coherencia de la caché de elementos en DAX, consulteComportamiento de la caché de elementos de.

Caché de consultas

DAX también mantiene uncaché de consultasPara almacenar los resultados deQueryyScanoperaciones. Los elementos de esta caché representan los conjuntos de resultados de las consultas y los exámenes de las tablas de DynamoDB. Estos conjuntos de resultados se almacenan por los valores de sus parámetros.

Cuando una aplicación envía unQueryorScan, DAX intenta leer un conjunto de resultados coincidente en la caché de consultas, para lo cual utiliza los valores de los parámetros especificados. Si encuentra el conjunto de resultados (acierto de caché), DAX lo devuelve a la aplicación de forma inmediata. Si el conjunto de resultados no se encuentra (error de caché), DAX envía la solicitud a DynamoDB. DynamoDB procesa las solicitudes usando lecturas consistentes finales y devuelve el conjunto de resultados a DAX. DAX lo almacena en la caché las consultas y, a continuación, lo devuelve a la aplicación.

nota

Puede especificar el ajuste de TL de la caché de consultas al crear un clúster de DAX nuevo. Para obtener más información, consulte Administración de clústeres de DAX .

DAX también mantiene una lista LRU para la caché de consultas. La lista rastrea cuándo se escribió un conjunto de resultados por primera vez en la caché y cuándo se leyó por última vez en ella. Si la caché de consultas se llena, DAX expulsa los conjuntos de resultados más antiguos (aunque todavía no hayan vencido) para dejar espacio a los nuevos. El algoritmo LRU siempre está habilitado para la caché de consultas y no es configurable por el usuario.

Si especifica cero comocaché de consultasTTL, la respuesta de la consulta no se almacenará en caché.

Para obtener información detallada sobre la coherencia de la caché de consultas en DAX, consulteComportamiento de la caché de consultas de.