Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados Distribuídos — FGV 2024

Banco de DadosBanco de Dados Distribuídos
Código
fg165283
Banca
FGV
Órgão
EPE
Ano
2024
Cargo
AGC ( )

A alta disponibilidade refere-se à capacidade de um sistema de permanecer operacional e acessível, mesmo diante de falhas de hardware ou software. Existem várias abordagens e mecanismos que podem ser implementados para garantir que um sistema continue a funcionar de forma eficaz, mesmo se ocorrerem erros.


Um exemplo destas abordagens e mecanismos é a replicação de dados. Em uma das abordagens de replicação de dados, os clientes enviam gravações para vários nós, que aceitam gravações diretamente. A leitura também ocorre a partir de vários nós, permitindo a detecção e correção de dados desatualizados. Isso traz flexibilidade e resistência a falhas, embora a lógica de operação seja mais complexa e envolva a necessidade de resolver conflitos devido a gravações simultâneas.


O método de replicação de dados discutido é o

  1. Amulti-líder.
  2. Bsem líder.
  3. Cde líder indireto.
  4. Dde líder único.
  5. Eespelho completo.
Revelar gabarito e comentário

GabaritoB — sem líder.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Replicação de dados em bancos de dados distribuídos

Gabarito: letra B — o método descrito é a replicação sem líder (leaderless replication). A característica central é que os clientes enviam gravações diretamente para vários nós, sem um nó coordenador, e as leituras também são feitas em vários nós, permitindo detectar e corrigir dados desatualizados — exatamente o que o enunciado descreve.

A replicação de dados é uma técnica fundamental para garantir alta disponibilidade e tolerância a falhas em sistemas distribuídos. Ela consiste em manter cópias (réplicas) dos mesmos dados em múltiplos nós, de modo que, se um nó falhar, os dados ainda estejam acessíveis em outros nós. Existem diferentes abordagens para coordenar as réplicas, e a principal distinção entre elas é quem pode aceitar gravações e como as gravações são propagadas.

As abordagens mais comuns são:

  • Replicação com líder único (single-leader): um nó é designado como líder (mestre) e recebe todas as gravações; os demais nós (seguidores) apenas replicam as alterações do líder. As leituras podem ser feitas em qualquer nó, mas as gravações são centralizadas no líder. Isso simplifica a consistência, mas cria um ponto único de falha e um gargalo de escrita.

  • Replicação multi-líder (multi-leader): há vários nós líderes que aceitam gravações, e cada líder propaga suas alterações para os outros. Isso permite maior disponibilidade de escrita, mas introduz conflitos quando dois líderes recebem gravações concorrentes para o mesmo dado, exigindo mecanismos de resolução de conflitos.

  • Replicação sem líder (leaderless): não há um nó líder; qualquer nó pode aceitar gravações diretamente, e as leituras são feitas em vários nós para detectar e corrigir dados desatualizados. Essa abordagem é a que melhor se encaixa na descrição do enunciado: "os clientes enviam gravações para vários nós, que aceitam gravações diretamente. A leitura também ocorre a partir de vários nós, permitindo a detecção e correção de dados desatualizados".

A replicação sem líder é frequentemente associada a bancos de dados NoSQL, como Cassandra e Riak, e é uma das estratégias para alcançar alta disponibilidade e tolerância a falhas, sacrificando, em parte, a consistência imediata (modelo de consistência eventual).

A principal vantagem da replicação sem líder é a flexibilidade e resistência a falhas: como não há um ponto central de escrita, o sistema continua operando mesmo se vários nós falharem. Por outro lado, a lógica de operação é mais complexa, pois é necessário resolver conflitos decorrentes de gravações simultâneas em nós diferentes, e as leituras podem retornar dados desatualizados, exigindo mecanismos de reconciliação (como leitura em múltiplos nós e comparação de versões).

A banca explora a distinção entre as abordagens de replicação, e a pegadinha está em confundir a replicação sem líder com a multi-líder. Embora ambas permitam gravações em vários nós, a multi-líder ainda possui um conceito de "líder" (mesmo que múltiplos), enquanto a sem líder não possui nenhum nó com papel especial — todos são iguais. O enunciado deixa claro que "os clientes enviam gravações para vários nós, que aceitam gravações diretamente", sem mencionar qualquer coordenação central ou líder, o que aponta diretamente para a abordagem sem líder.

Característica

Replicação sem líder (gabarito)

Replicação multi-líder (distrator)

Replicação com líder único (distrator)

Quem aceita gravações

Vários nós, diretamente, sem coordenador

Vários líderes, com coordenação entre eles

Apenas o nó líder

Como as leituras são feitas

Em vários nós, para detectar/corrigir dados desatualizados

Em qualquer nó, mas sem foco em detecção de desatualização via múltiplas leituras

Em qualquer nó (seguidor ou líder), mas sem leitura múltipla para correção

Necessidade de resolução de conflitos

Sim, devido a gravações simultâneas em nós distintos

Sim, entre líderes concorrentes

Não (gravações centralizadas)

Flexibilidade e resistência a falhas

Alta (sem ponto central de escrita)

Alta, porém com complexidade de coordenação entre líderes

Baixa (ponto único de falha na escrita)

Replicação de dados
  • 1Com líder
    • Líder único (single-leader)
      • Gravações centralizadas
      • Leituras em qualquer nó
    • Multi-líder (multi-leader)
      • Vários líderes aceitam gravações
      • Resolução de conflitos
  • 2Sem líder (leaderless)
    • Gravações diretas em vários nós
    • Leituras em vários nós
    • Detecção e correção de dados desatualizados
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

A replicação multi-líder também permite gravações em vários nós, mas ainda há a figura de líderes (mesmo que múltiplos) que coordenam a propagação das alterações. O enunciado não menciona líderes, e a descrição de "aceitar gravações diretamente" em qualquer nó, sem coordenação, é característica da abordagem sem líder. A multi-líder exige mecanismos de resolução de conflitos mais sofisticados, mas a ausência de líder é o traço distintivo da abordagem correta.

Alternativa B — ✅ Correta ⟵ GABARITO

A replicação sem líder é exatamente o que o enunciado descreve: os clientes enviam gravações para vários nós, que as aceitam diretamente, sem um coordenador central. As leituras também são feitas em vários nós, permitindo detectar e corrigir dados desatualizados. Essa abordagem oferece flexibilidade e resistência a falhas, mas exige lógica complexa para resolver conflitos de gravações simultâneas. É o modelo usado em sistemas como Cassandra e Riak.

Alternativa C — ❌ Incorreta

Não existe uma abordagem de replicação chamada "de líder indireto" na literatura de sistemas distribuídos. O termo pode confundir com a replicação multi-líder ou com a ideia de um líder que não participa diretamente das gravações, mas não é um conceito consagrado. A banca incluiu essa alternativa como distrator, e ela não corresponde a nenhuma abordagem real.

Alternativa D — ❌ Incorreta

A replicação de líder único (single-leader) é o modelo tradicional, em que um único nó recebe todas as gravações e os demais apenas replicam. O enunciado afirma que "os clientes enviam gravações para vários nós", o que contraria a centralização da escrita no líder único. Portanto, essa alternativa está incorreta.

Alternativa E — ❌ Incorreta

"Espelho completo" não é uma abordagem de replicação reconhecida na literatura. O termo "espelhamento" (mirroring) pode se referir à duplicação de dados em um único nó de backup, mas não envolve a distribuição de gravações entre vários nós nem a detecção de dados desatualizados por leituras em múltiplos nós. É um distrator sem fundamento técnico.

Gabarito: letra B

Link permanente: /questoes/fg165283