Maison > Java > tutoriel Java > le corps du texte

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

王林
Libérer: 2024-07-23 11:17:43
original
802 人浏览过

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 l'API Data 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 de l'instruction SQL sur la base de données PostgreSQL).

Dans cet article, nous aimerions comparer ces mesures avec celles-ci, 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 Data, 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 Data, 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 comme je l'ai fait. Je ne m'attendais pas à ce qu'il soit aussi gros, surtout si un apprêt était appliqué. La raison en est peut-être que les services natifs AWS comme DynamoDB sont davantage conscients de SnapStart. 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.

以上是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的详细内容。更多信息请关注PHP中文网其他相关文章!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!