"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > API de données pour Amazon Aurora sans serveur avec AWS SDK pour Java - Comparaison partielle des démarrages à froid et à chaud : API de données vs DynamoDB

API de données pour Amazon Aurora sans serveur avec AWS SDK pour Java - Comparaison partielle des démarrages à froid et à chaud : API de données vs DynamoDB

Publié le 2024-07-29
Parcourir:236

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

Introduction

Dans la partie 7 de la série Data API for Amazon Aurora Serverless v2 with AWS SDK for Java - Data API meets SnapStart, nous avons mesuré les heures de démarrage à froid et à chaud de la fonction Lambda se connectant à la base de données PostgreSQL Amazon Aurora Serverless v2 à l'aide de Data API pour 3 cas d'usage :

  • sans SnapStart activé sur la fonction Lambda
  • avec SnapStart activé sur la fonction Lambda mais sans optimisation d'amorçage
  • avec SnapStart activé sur la fonction Lambda et avec optimisation d'amorçage (préchauffage de l'exécution des instructions SQL sur la base de données PostgreSQL).

Dans cet article, nous aimerions comparer ces mesures avec celles, mais en utilisant DynamoDB au lieu de l'API de données pour Amazon Aurora Serverless v2.

Comparaison des démarrages à froid et à chaud de Lambda : API de données pour Amazon Aurora Serverless v2 et DynamoDB

Dans ma série d'articles sur Lambda SnapStart, nous avons déjà effectué de telles mesures pour une application similaire, mais dans l'article Mesurer les démarrages à chaud avec Java 21 en utilisant différents paramètres de mémoire Lambda.

Les deux applications Data API pour Amazon Aurora Serverless v2 et DynamoDB sont très similaires :

  • Ils fournissent une logique pour stocker et récupérer les produits de la base de données
  • Les fonctions Lambda des deux projets ont un paramètre de mémoire de 1 024 Mo
  • La taille des artefacts de déploiement est d'environ 18 Mo pour les deux
  • Les fonctions Lambda des deux projets utilisent le client HTTP Apache synchrone par défaut pour communiquer avec les bases de données
  • Les fonctions Lambda des deux projets utilisent l'architecture x86_64

Rassemblons maintenant toutes les mesures.

Heure de démarrage à froid (c) et à chaud (m) en ms :

Approche c p50 c p75 c p90 c p99 c p99.9 c max w p50 w p75 w p90 w p99 w p99.9 w max
API de données, aucun SnapStart activé 3154.35 3237 3284.91 3581.49 3702.12 3764,92 104,68 173,96 271,32 572.11 1482,89 2179,7
DynamoDB, aucun SnapStart activé 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 données, SnapStart activé sans amorçage 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 activé sans amorçage 1626,69 1741.10 2040,99 2219,75 2319,54 2321,64 5,64 6.41 7,87 21h40 99,81 1355.09
API de données, SnapStart activé avec amorçage 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 activé avec amorçage 702,55 759,52 1038,50 1169,66 1179.05 1179,36 5,73 6,51 7,87 21,75 92.19 328,41

Conclusion

Dans cet article, j'ai comparé les mesures des heures de démarrage à froid et à chaud de la fonction Lambda se connectant à la base de données Amazon Aurora Serverless v2 PostgreSQL à l'aide de l'API Data et la connexion à la base de données DynamoDB pour 3 cas d'utilisation :

  • sans SnapStart activé sur la fonction Lambda
  • avec SnapStart activé sur la fonction Lambda mais sans optimisation d'amorçage
  • avec SnapStart activé sur la fonction Lambda et avec amorçage de la requête base de données

Ce que nous avons observé, c'est que les temps de démarrage à froid sans activer SnapStart sur la fonction Lambda sont tout à fait comparables pour les deux. Dans le cas où SnapStart est activé (sans et surtout avec amorçage), l'API de données pour Amazon Aurora Serverless v2 a des temps de démarrage à froid nettement plus élevés, en particulier pour les centiles >= 90. Je devrai creuser plus profondément pour comprendre cette différence car je ne l'ai pas fait. attendez-vous à ce qu'il soit aussi gros, surtout si un apprêt a été appliqué. La raison en est peut-être que les services natifs AWS comme DynamoDB sont davantage conscients de SnapStart et je peux mieux gérer les reprises de connexion.

Les temps de démarrage à chaud (exécution) étaient constamment beaucoup plus élevés pour l'API de données pour Amazon Aurora Serverless v2 par rapport à DynamoDB, ce à quoi je m'attendais également car DynamoDB est connu pour ses temps de réponse à un ou deux chiffres en millisecondes.

Déclaration de sortie Cet article est reproduit à l'adresse : https://dev.to/aws-builders/data-api-for-amazon-aurora-serverless-v2-with-aws-sdk-for-java-part-9-comparing-cold- et-warm-starts-data-api-vs-dynamodb-2pg2?1En cas d'infraction, veuillez contacter [email protected] pour la supprimer
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3