Questão de Banco de Dados — Banco de Dados Distribuídos — FGV 2024
Banco de Dados›Banco 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
Amulti-líder.
Bsem líder.
Cde líder indireto.
Dde líder único.
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.