„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Daten-API für Amazon Aurora Serverless mit AWS SDK für Java – Teil zum Vergleich von Kalt- und Warmstarts: Daten-API vs. DynamoDB

Daten-API für Amazon Aurora Serverless mit AWS SDK für Java – Teil zum Vergleich von Kalt- und Warmstarts: Daten-API vs. DynamoDB

Veröffentlicht am 29.07.2024
Durchsuche:416

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

Einführung

Im Teil 7 der Serie „Daten-API für Amazon Aurora Serverless v2 mit AWS SDK für Java – Daten-API trifft SnapStart“ haben wir die Kalt- und Warmstartzeiten der Lambda-Funktion gemessen, die mithilfe von Daten eine Verbindung zur PostgreSQL-Datenbank von Amazon Aurora Serverless v2 herstellt API für 3 Anwendungsfälle:

  • ohne SnapStart für die Lambda-Funktion aktiviert
  • mit aktiviertem SnapStart für die Lambda-Funktion, aber ohne Priming-Optimierung
  • mit aktiviertem SnapStart für die Lambda-Funktion und mit Priming-Optimierung (Vorwärmung der SQL-Anweisungsausführung in der PostgreSQL-Datenbank).

In diesem Artikel möchten wir diese Messungen mit denen vergleichen, jedoch unter Verwendung von DynamoDB anstelle der Daten-API für Amazon Aurora Serverless v2.

Vergleich von Lambda-Kalt- und Warmstarts: Daten-API für Amazon Aurora Serverless v2 vs. DynamoDB

In meiner Artikelserie über Lambda SnapStart haben wir solche Messungen bereits für die ähnliche Anwendung durchgeführt, aber im Artikel Messung von Warmstarts mit Java 21 unter Verwendung unterschiedlicher Lambda-Speichereinstellungen.

Beide Anwendungen Data API für Amazon Aurora Serverless v2 und DynamoDB sind sehr ähnlich:

  • Sie stellen Logik zum Speichern und Abrufen von Produkten aus der Datenbank bereit
  • Lambda-Funktionen aus beiden Projekten haben eine Speichereinstellung von 1024 MB
  • Die Größe der Bereitstellungsartefakte beträgt für beide etwa 18 MB
  • Lambda-Funktionen aus beiden Projekten verwenden den standardmäßigen synchronen HTTP-Apache-Client, um mit Datenbanken zu kommunizieren
  • Lambda-Funktionen aus beiden Projekten verwenden die x86_64-Architektur

Fügen wir nun alle Messungen zusammen.

Kalte (c) und warme (m) Startzeit in ms:

Ansatz 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
Daten-API, kein SnapStart aktiviert 3154,35 3237 3284,91 3581,49 3702.12 3764,92 104,68 173,96 271,32 572.11 1482,89 2179,7
DynamoDB, kein SnapStart aktiviert 3157,6 3213,85 3270,8 3428.2 3601.12 3725.02 5,77 6,50 7,81 20,65 90,20 1423,63
Daten-API, SnapStart ohne Vorbereitung aktiviert 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 ohne Grundierung aktiviert 1626,69 1741.10 2040,99 2219,75 2319,54 2321,64 5,64 6.41 7,87 21,40 99,81 1355.09
Daten-API, SnapStart mit Priming aktiviert 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 aktiviert mit Grundierung 702,55 759,52 1038,50 1169,66 1179,05 1179,36 5,73 6,51 7,87 21,75 92,19 328,41

Abschluss

In diesem Artikel habe ich Messungen der Kalt- und Warmstartzeiten der Lambda-Funktion, die eine Verbindung zur Amazon Aurora Serverless v2 PostgreSQL-Datenbank mithilfe der Daten-API herstellt, mit der Verbindung zur DynamoDB-Datenbank für drei Anwendungsfälle verglichen:

  • ohne SnapStart für die Lambda-Funktion aktiviert
  • mit aktiviertem SnapStart für die Lambda-Funktion, aber ohne Priming-Optimierung
  • mit aktiviertem SnapStart für die Lambda-Funktion und mit Priming der Datenbankanforderung

Wir haben festgestellt, dass die Kaltstartzeiten ohne Aktivierung von SnapStart für die Lambda-Funktion für beide recht vergleichbar sind. Falls SnapStart aktiviert ist (ohne und insbesondere mit Priming), hat die Daten-API für Amazon Aurora Serverless v2 deutlich längere Kaltstartzeiten, insbesondere für die Perzentile >= 90. Ich muss tiefer graben, um diesen Unterschied zu verstehen, da ich es nicht getan habe Erwarten Sie, dass es so groß ist, insbesondere wenn eine Grundierung aufgetragen wurde. Vielleicht liegt der Grund dafür darin, dass native AWS-Dienste wie DynamoDB SnapStart-fähiger sind. Ich kann besser mit Verbindungsfortsetzungen umgehen.

Die Warmstart-(Ausführungs-)Zeiten waren für die Daten-API für Amazon Aurora Serverless v2 im Vergleich zu DynamoDB konstant viel höher, was ich auch erwartet hatte, da DynamoDB für seine Reaktionszeiten im ein- oder zweistelligen Millisekundenbereich bekannt ist.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/aws-builders/data-api-for-amazon-aurora-serverless-v2-with-aws-sdk-for-java-part-9-comparing-cold- und- warm-starts-data-api-vs-dynamodb-2pg2?1Wenn ein Verstoß vorliegt, wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3