Recentemente, aprendi sobre logs de gravação antecipada e recuperação de falhas no contexto de armazenamentos de valor-chave como Cassandra e tenho algumas perguntas de acompanhamento:
- Os WALs são persistidos em instantâneos menores para que precisemos apenas recuperar do instantâneo mais recente em vez de todo o histórico de confirmação? Qual é o mecanismo de alto nível para persistir e recuperar desses instantâneos?
- Os logs são agrupados ao gravar no disco para desempenho? Isso corre o risco de perder dados permanentemente?
- O que acontece quando uma máquina falha durante a recuperação de um WAL? Acabamos com resultados parciais no banco de dados? Como nos recuperamos desse estado na próxima vez que o banco de dados for iniciado?