Sistemas de banco de dados NoSQL do tipo chave-valor distri...

Próximas questões
Com base no mesmo assunto
Q3508335 Banco de Dados
Sistemas de banco de dados NoSQL do tipo chave-valor distribuído são frequentemente utilizados em ambientes que priorizam alta disponibilidade e escalabilidade horizontal. Para isso, muitos desses sistemas permitem que o desenvolvedor escolha entre diferentes modelos de consistência para equilibrar latência, disponibilidade e precisão dos dados. Considerando um cenário no qual a prioridade é minimizar a latência de leitura, mesmo que isso implique retornar dados possivelmente desatualizados, assinale a alternativa a seguir que apresenta o modelo de consistência mais adequado:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: D - Consistência eventual (eventual consistency)

Tema central: Esta questão aborda modelos de consistência em bancos de dados NoSQL distribuídos, especialmente em ambientes que valorizam alta disponibilidade e baixa latência. O conhecimento fundamental aqui é compreender como diferentes modelos de consistência impactam o tempo de resposta e a atualização dos dados nesses sistemas distribuídos.

Resumo teórico: Em sistemas NoSQL distribuídos, como Cassandra, DynamoDB e Riak, existem diferentes níveis de consistência:

  • Consistência forte: Garante que todas as leituras retornem o valor mais recente, mas pode aumentar a latência.
  • Consistência eventual: Permite leituras rápidas, mesmo que retornem dados desatualizados; os dados ficarão consistentes com o tempo.
  • Outros modelos (causal, de sessão): oferecem equilíbrios intermediários.

Segundo o Designing Data-Intensive Applications (Martin Kleppmann, 2017), consistência eventual é ideal quando a prioridade é minimizar latência sem exigir que os dados lidos sejam os mais recentes.

Justificativa da alternativa correta (D):
A consistência eventual oferece menor latência de leitura, pois não espera a atualização sincronizada de todos os nós. É amplamente utilizada onde performance e disponibilidade são prioritários, aceitando que, por um curto período, os dados possam estar desatualizados.

Análise das alternativas incorretas:

  • A - Consistência forte: Prioriza precisão, exigindo sincronização e aumentando a latência.
  • B - Consistência causal: Garante ordem lógica de operações relacionadas, mas ainda pode aumentar a latência em comparação à eventual.
  • C - Consistência de sessão: Mantém a consistência para uma sessão do usuário, mas não é a mais indicada para baixar a latência globalmente.
  • E - Consistência linearizável: É ainda mais rigorosa que a forte, maximizando segurança dos dados, porém com maior latência.

Estratégia para interpretação:

Ao ler o enunciado, observe palavras-chave como "minimizar latência" e "dados possivelmente desatualizados". Elas apontam para a necessidade de priorizar performance, não precisão dos dados, eliminando alternativas que falam em consistência forte ou linearizável.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

A alternativa correta é: D) Consistência eventual (eventual consistency).

---

✅ Explicação:

Em sistemas NoSQL distribuídos, especialmente do tipo chave-valor, há uma troca (trade-off) entre:

Latência (tempo de resposta),

Consistência (quão atual é o dado retornado),

Disponibilidade (serviço sempre disponível, mesmo com falhas).

Esse dilema é formalizado pelo Teorema CAP, que afirma que é impossível para um sistema distribuído garantir simultaneamente consistência forte, disponibilidade e tolerância à partição.

---

Consistência Eventual (Eventual Consistency)

Mais adequada quando a prioridade é a baixa latência.

Permite que os dados não estejam sincronizados imediatamente entre todos os nós.

Uma leitura pode retornar um valor desatualizado, mas eventualmente o sistema convergirá para o valor mais recente.

Muito usada em sistemas como Amazon DynamoDB, Cassandra, Riak, etc.

> Ideal quando não é crítico ter o dado mais recente, como em contadores, caches, sistemas de recomendação etc.

---

❌ Por que as outras estão erradas?

Alternativa Motivo

A) Consistência forte Garante que a leitura sempre retorna o valor mais recente, mas aumenta a latência.

B) Consistência causal É mais relaxada que a forte, mas ainda exige ordem causal, o que impacta a latência.

C) Consistência de sessão Garante que uma sessão de usuário veja seus próprios dados atualizados, mas não minimiza latência geral.

E) Consistência linearizável É ainda mais estrita que a forte (parece que tudo é instantâneo), e tem alta latência.

A consistência eventual é amplamente utilizada em bancos NoSQL distribuídos porque prioriza:

  • alta disponibilidade;
  • baixa latência;
  • escalabilidade horizontal.

Nesse modelo, uma leitura pode retornar dados temporariamente desatualizados, mas o sistema garante que, eventualmente, todas as réplicas convergirão para o mesmo estado.

  • A) Consistência forte → garante leitura sempre atualizada, porém com maior latência.
  • B) Consistência causal → preserva relações de causa e efeito entre operações.
  • C) Consistência de sessão → garante consistência dentro da sessão do usuário.
  • E) Linearizabilidade → modelo extremamente forte e rigoroso, com maior custo de desempenho.

Gabarito: D

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo