Migração de banco de dados com tempo de inatividade zero verificada com PlusCal

2025-03-11

Esta postagem de blog detalha como o autor usou PlusCal, uma DSL para TLA+, e verificação formal para garantir a correção de uma migração de banco de dados com tempo de inatividade zero. Um modelo PlusCal foi construído simulando operações de usuário Upsert, Delete e Get em um banco de dados, juntamente com um processo de migração em segundo plano. Ao simular um sistema sem migração e um com migração, e verificar a consistência dos resultados da operação Get em todos os estados, o autor garantiu a correção do algoritmo de migração. A verificação formal ajudou na detecção precoce de falhas, como o tratamento inadequado de TOMBSTONES, e destacou a importância de operações atômicas, como a atomicidade da verificação e inserção de dados durante a migração.

Desenvolvimento