"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > API de datos para Amazon Aurora Serverless con AWS SDK para Java: parte que compara los arranques en frío y en caliente: API de datos frente a DynamoDB

API de datos para Amazon Aurora Serverless con AWS SDK para Java: parte que compara los arranques en frío y en caliente: API de datos frente a DynamoDB

Publicado el 2024-07-29
Navegar:171

Data API for Amazon Aurora Serverless vith AWS SDK for Java - Part omparing cold and warm starts: Data API vs DynamoDB

Introducción

En la parte 7 de la serie API de datos para Amazon Aurora Serverless v2 con AWS SDK para Java: la API de datos se encuentra con SnapStart, medimos los tiempos de inicio en frío y en caliente de la función Lambda que se conecta a la base de datos PostgreSQL de Amazon Aurora Serverless v2 mediante datos API para 3 casos de uso:

  • sin SnapStart habilitado en la función Lambda
  • con SnapStart habilitado en la función Lambda pero sin optimización de cebado
  • con SnapStart habilitado en la función Lambda y con optimización de priming (ejecución de sentencias SQL de precalentamiento en la base de datos PostgreSQL).

En este artículo nos gustaría comparar esas mediciones con aquellas, pero usando DynamoDB en lugar de Data API para Amazon Aurora Serverless v2.

Comparación de arranques en frío y en caliente de Lambda: API de datos para Amazon Aurora Serverless v2 frente a DynamoDB

En mi serie de artículos sobre Lambda SnapStart ya hemos realizado este tipo de mediciones para aplicaciones similares, pero en el artículo Medición de arranques en caliente con Java 21 usando diferentes configuraciones de memoria Lambda.

Ambas aplicaciones Data API para Amazon Aurora Serverless v2 y DynamoDB son muy similares :

  • Proporcionan lógica para almacenar y recuperar productos de la base de datos
  • Las funciones Lambda de ambos proyectos tienen una configuración de memoria de 1024 MB
  • El tamaño de los artefactos de implementación es de alrededor de 18 MB para ambos
  • Las funciones Lambda de ambos proyectos utilizan el cliente Apache HTTP síncrono predeterminado para comunicarse con las bases de datos
  • Las funciones Lambda de ambos proyectos usan arquitectura x86_64

Ahora juntemos todas las medidas.

Hora de inicio en frío (c) y calor (m) en ms:

Acercarse cp50 c p75 c p90 c p99 c p99.9 c máx w p50 w p75 w p90 w p99 w p99.9 w máx
API de datos, sin SnapStart habilitado 3154.35 3237 3284.91 3581.49 3702.12 3764.92 104,68 173,96 271.32 572.11 1482,89 2179.7
DynamoDB, sin SnapStart habilitado 3157.6 3213.85 3270.8 3428.2 3601.12 3725.02 5.77 6.50 7.81 20.65 90.20 1423.63
API de datos, SnapStart habilitado sin preparación 1856.11 1994.61 2467.83 3229.11 3238.80 3241,75 61.02 113.32 185,37 639,35 1973.30 2878.5
DynamoDB, SnapStart habilitado sin preparación 1626.69 1741.10 2040.99 2219.75 2319.54 2321.64 5.64 6.41 7.87 21.40 99,81 1355.09
API de datos, SnapStart habilitado con preparación 990.84 1069.04 1634.84 2120.00 2285.03 2286.9 60.06 106.35 185,37 581.27 1605.37 2658.24
DynamoDB, SnapStart habilitado con preparación 702.55 759.52 1038,50 1169,66 1179.05 1179.36 5.73 6.51 7.87 21.75 92.19 328,41

Conclusión

En este artículo, comparé las mediciones de los tiempos de inicio en frío y en caliente de la función Lambda que se conecta a la base de datos PostgreSQL de Amazon Aurora Serverless v2 mediante Data API con la conexión a la base de datos DynamoDB para 3 casos de uso:

  • sin SnapStart habilitado en la función Lambda
  • con SnapStart habilitado en la función Lambda pero sin optimización de cebado
  • con SnapStart habilitado en la función Lambda y con preparación de la solicitud de base de datos

Lo que observamos es que los tiempos de inicio en frío sin habilitar SnapStart en la función Lambda son bastante comparables para ambos. En caso de que SnapStart esté habilitado (sin y especialmente con preparación), la API de datos para Amazon Aurora Serverless v2 tiene tiempos de inicio en frío significativamente más altos, especialmente para los percentiles >= 90. Tendré que profundizar más para comprender esta diferencia, ya que no lo hice. Espere que sea tan grande, especialmente si se aplicó imprimación. Quizás la razón es que los servicios nativos de AWS como DynamoDB son más compatibles con SnapStart y puedo manejar mejor las reanudaciones de conexión.

Los tiempos de inicio en caliente (ejecución) fueron constantemente mucho más altos para Data API para Amazon Aurora Serverless v2 en comparación con DynamoDB, lo cual también esperaba, ya que DynamoDB es conocido por sus tiempos de respuesta de milisegundos de uno o dos dígitos.

Declaración de liberación Este artículo se reproduce en: https://dev.to/aws-builders/data-api-for-amazon-aurora-serverless-v2-with-aws-sdk-for-java-part-9-comparing-cold- y-warm-starts-data-api-vs-dynamodb-2pg2?1Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3