"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > API de dados para Amazon Aurora Serverless com AWS SDK para Java – Parte da comparação de inicializações a frio e a quente: API de dados vs DynamoDB

API de dados para Amazon Aurora Serverless com AWS SDK para Java – Parte da comparação de inicializações a frio e a quente: API de dados vs DynamoDB

Publicado em 2024-07-29
Navegar:142

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

Introdução

Na parte 7 da série Data API for Amazon Aurora Serverless v2 com AWS SDK for Java – Data API atende SnapStart, medimos os tempos de inicialização a frio e a quente da função Lambda conectando-se ao banco de dados Amazon Aurora Serverless v2 PostgreSQL usando Data API para 3 casos de uso:

  • sem SnapStart habilitado na função Lambda
  • com SnapStart ativado na função Lambda, mas sem otimização de preparação
  • com SnapStart habilitado na função Lambda e com otimização de priming (pré-aquecimento da execução de instruções SQL no banco de dados PostgreSQL).

Neste artigo, gostaríamos de comparar essas medições com aquelas, mas com o uso do DynamoDB em vez da API de dados para Amazon Aurora Serverless v2.

Comparando inicializações a frio e a quente do Lambda: API de dados para Amazon Aurora Serverless v2 vs DynamoDB

Em minha série de artigos sobre Lambda SnapStart, já fizemos essas medições para aplicativos semelhantes, mas no artigo Medindo partidas a quente com Java 21 usando diferentes configurações de memória Lambda.

Ambos os aplicativos Data API para Amazon Aurora Serverless v2 e DynamoDB são muito semelhantes:

  • Eles fornecem lógica para armazenar e recuperar produtos do banco de dados
  • As funções Lambda de ambos os projetos têm configuração de memória de 1024 MB
  • Os tamanhos dos artefatos de implantação são em torno de 18 MB para ambos
  • As funções Lambda de ambos os projetos usam o cliente HTTP Apache síncrono padrão para se comunicar com bancos de dados
  • As funções Lambda de ambos os projetos usam arquitetura x86_64

Agora vamos juntar todas as medições.

Hora de início frio (c) e quente (m) em ms:

Abordagem cp50 p75 cp90 cp99 c p99.9 c máx p50 p75 p90 wp99 w p99.9 w máximo
API de dados, sem SnapStart ativado 3154,35 3237 3284.91 3581.49 3702.12 3764.92 104,68 173,96 271,32 572.11 1482,89 2179.7
DynamoDB, sem SnapStart ativado 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 dados, SnapStart ativado sem preparação 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 sem preparação 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 dados, SnapStart habilitado com priming 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 com priming 702,55 759,52 1038,50 1169.66 1179.05 1179.36 5,73 6,51 7,87 21,75 92.19 328,41

Conclusão

Neste artigo, comparei medições dos tempos de inicialização a frio e a quente da função Lambda conectando-se ao banco de dados Amazon Aurora Serverless v2 PostgreSQL usando Data API versus conectando-se ao banco de dados DynamoDB para 3 casos de uso:

  • sem SnapStart habilitado na função Lambda
  • com SnapStart ativado na função Lambda, mas sem otimização de preparação
  • com SnapStart habilitado na função Lambda e com priming da solicitação do banco de dados

O que observamos é que os tempos de inicialização a frio sem ativar o SnapStart na função Lambda são bastante comparáveis ​​para ambos. Caso o SnapStart esteja habilitado (sem e especialmente com priming), a API de dados para Amazon Aurora Serverless v2 tem tempos de inicialização a frio significativamente mais altos, especialmente para os percentis >= 90. Precisarei me aprofundar para entender essa diferença, pois não o fiz. espere que seja tão grande, especialmente se o primer tiver sido aplicado. Talvez a razão para isso seja que os serviços nativos da AWS, como o DynamoDB, são mais compatíveis com o SnapStart e posso lidar melhor com retomadas de conexão.

Os tempos de inicialização a quente (execução) foram constantemente muito mais altos para a API de dados do Amazon Aurora Serverless v2 em comparação com o DynamoDB, o que eu também esperava, já que o DynamoDB é conhecido por seus tempos de resposta de milissegundos de um ou dois dígitos.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/aws-builders/data-api-for-amazon-aurora-serverless-v2-with-aws-sdk-for-java-part-9-comparing-cold- e-warm-starts-data-api-vs-dynamodb-2pg2?1Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3