Questão de Banco de Dados — Banco de Dados Relacionais — FUNDATEC 2023
Banco de Dados›Banco de Dados Relacionais
Código
qq894934
Banca
FUNDATEC
Órgão
IF-SC
Ano
2023
Nível
Superior
Cargo
Professor EBTT - Sistemas Distribuídos
Analise a seguinte situação: "Em uma rede distribuída utilizada para compartilhamento de arquivos, existem três servidores: A, B e C. Esses servidores armazenam cópias idênticas de um arquivo. Para garantir a consistência dos dados, sempre que um cliente realiza uma alteração no arquivo em um dos servidores, essa alteração deve ser propagada para os demais servidores de forma síncrona. No entanto, há a possibilidade de que ocorra uma falha de rede durante a replicação". Nesse cenário, assinale a alternativa que apresenta a melhor e mais adequada ação para manter a consistência, o sincronismo e a replicação corretos nos servidores, além de exemplificar corretamente seu funcionamento.
AImplementar um mecanismo de replicação por consenso, em que os servidores A, B e C trocam mensagens e chegam a um acordo sobre a atualização do arquivo antes de propagar as alterações, mas tal alternativa não é adequada para manter totalmente a consistência, o sincronismo e a replicação corretos nos servidores.
BUtilizar uma abordagem de replicação baseada em transações, em que todas as alterações no arquivo são encapsuladas em transações distribuídas. Os servidores coordenam-se para garantir que todas as transações sejam sempre executadas de forma atômica consistente, isolada e durável (propriedades ACID), assegurando a correta replicação e sincronismo dos dados.
CAdotar um protocolo de sincronismo baseado em timestamp, em que as alterações são propagadas para os demais servidores considerando a ordem de chegada, evitando conflitos de versão.
DAdotar um modelo de consistência eventual forte, em que todas as réplicas são atualizadas em algum momento, mesmo que haja possíveis leituras inconsistentes.
EUtilizar uma técnica de replicação passiva, em que cada servidor aguarda a solicitação explícita de replicação vinda de outro servidor antes de atualizar seus dados.
Revelar gabarito e comentário▾
GabaritoC — Adotar um protocolo de sincronismo baseado em timestamp, em que as alterações são propagadas para os demais servidores considerando a ordem de chegada, evitando conflitos de versão.
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 em Sistemas Distribuídos
Gabarito: letra C. O protocolo baseado em timestamp ordena as alterações pela marcação temporal, propagando-as de forma a evitar conflitos de versão. Essa abordagem é leve, tolera falhas de rede e garante a consistência eventual forte (convergência para um estado consistente), sendo a mais adequada para o cenário de replicação síncrona com possibilidade de falha, como descrito no enunciado.
A banca testa o conhecimento sobre técnicas de replicação e consistência em sistemas distribuídos. O contexto do teorema CAP (Consistência, Disponibilidade, Tolerância a Partição) é fundamental: em uma rede sujeita a falhas (partição), não é possível garantir consistência forte e disponibilidade total simultaneamente; portanto, mecanismos que priorizam a ordenação e resolução de conflitos, como o timestamp, são práticos.
Replicação em sistemas distribuídos
1Teorema CAP
Consistência
Disponibilidade
Tolerância a partição
2Técnicas de replicação
Consenso (Paxos/Raft)
Garante acordo entre nós
Alta latência
Transações ACID (2PC)
Atomicidade e isolamento
Bloqueio em falhas de rede
Timestamp (Lamport)
Ordenação global leve
Tolerante a partições
Consistência eventual forte
Consistência eventual
Leituras inconsistentes temporárias
Replicação passiva
Solicitação explícita atrasa
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Afirma que a replicação por consenso (ex.: Paxos, Raft) não é adequada para manter a consistência. Na verdade, algoritmos de consenso são altamente adequados para replicação síncrona tolerante a falhas, pois garantem que todos os nós concordem com a atualização antes de finalizá-la. A própria alternativa nega sua adequação, o que a torna falsa.
Alternativa B — ❌ Incorreta
Transações ACID distribuídas (com commit em duas fases, por exemplo) garantem atomicidade, consistência, isolamento e durabilidade — propriedades que teoricamente atendem ao requisito de replicação síncrona. Contudo, em cenários com falhas de rede, essas transações podem ficar bloqueadas ou falhar, além de impor alta latência e sobrecarga de coordenação. Embora funcional, não é a melhor escolha para o cenário descrito, pois o protocolo de timestamp (alternativa C) é mais leve e flexível para ambientes com partições de rede.
Alternativa C — ✅ Correta ⟵ GABARITO
O protocolo baseado em timestamp (como o proposto por Lamport) atribui uma marca temporal a cada alteração, permitindo que os servidores ordenem as atualizações globalmente. Quando uma réplica recebe uma modificação, ela a propaga aos demais servidores; eventuais conflitos são resolvidos pela ordem dos timestamps. Essa técnica é eficiente, não exige bloqueio prolongado e lida bem com falhas de rede, pois as réplicas podem convergir para o mesmo estado assim que a comunicação for restabelecida — o que se alinha ao requisito de consistência eventual forte.
Alternativa D — ❌ Incorreta
O modelo de consistência eventual permite leituras inconsistentes (réplicas podem ter versões diferentes por um período), violando a exigência de consistência síncrona do enunciado. A expressão "forte" na alternativa é contraditória, pois consistência eventual é fraca por definição. Portanto, não atende ao cenário.
Alternativa E — ❌ Incorreta
A replicação passiva (ou sob demanda) exige que cada servidor aguarde uma solicitação explícita para atualizar seus dados. Isso não garante replicação síncrona — pelo contrário, pode gerar atrasos e inconsistências se um servidor não solicitar a atualização a tempo. Não é adequada para manter o sincronismo.