← Questões de Algoritmos e Estrutura de Dados

Algoritmos e Estrutura de Dados · FGV · 2023

Questão comentada de Algoritmos e Estrutura de Dados

Em bancos de dados, especialmente quando distribuídos, surge o problema de garantir que uma certa transação seja processada corretamente quando tem efeitos em diferentes sistemas, ou nós. Um dos algoritmos utilizados nesse tipo de transação é conhecido originalmente como:

Gabarito: E

Quando uma transação envolve vários bancos de dados, servidores ou nós, o desafio é fazer tudo acontecer de modo coordenado: ou todos confirmam a operação, ou todos desistem. Isso evita o famoso cenário do "metade salvou, metade não salvou", que é receita para bagunça em sistema distribuído. O algoritmo clássico para resolver isso é o Two-phase commit, ou commit em duas fases. Ele funciona em duas etapas: primeiro o coordenador pergunta aos participantes se eles conseguem efetivar a transação; depois, se todos concordarem, ele manda confirmar. Se algum deles não puder, a ordem é abortar. A ideia é garantir atomicidade mesmo com vários sistemas envolvidos. Por isso o gabarito é a letra E. Em bancos de dados distribuídos, o two-phase commit é o protocolo tradicional usado para coordenar confirmação de transações entre múltiplos nós, sendo muito citado em teoria de SGBD como o mecanismo básico de consistência distribuída. As demais alternativas trazem termos genéricos ou conceitos próximos, mas não o nome original do algoritmo de coordenação de transações distribuídas. Aqui a banca quer o termo técnico clássico, sem drama e sem improviso.

Continue treinando

Questões relacionadas