Transações
Uma transação é uma coleção de operações que desempenha uma função lógica única. Ela tem que ter as seguintes propriedades:
- atomicidade: todas as operações contidas na transação são tratadas como uma única unidade. Todas as operações são feitas ou nada é feito.
- consistência: uma transação concluída deixa o sistema em um estado interno consistente.
- isolamento: em um ambiente de múltiplas transações, uma não interfere na outra.
- durabilidade: os resultados das transações são armazenadas permanentemente no sistema.
O entity file Manager permite que transações confirmadas possam ser efetivadas em paralelo com transações em execução. Também favorece a redução das operações de I/O, pois ele permite atualizações em lote. Todas as operações de inserção e atualização são executadas em um arquivo temporário num primeiro momento e depois em segundo plano no arquivo original.
Insert/Update
As transações confirmadas são gravadas no arquivo recoverylogX e os dados das entidades também são gravadas no arquivo temporário. Elas são inseridas sempre no final do arquivo. Este método reduz o I/O em updates, pois toda atualização também é uma inserção e pode ser feito em lote. No momento em que não existir nenhum transação sendo processada, o arquivo temporário é sincronizado com o arquivo original.
Select
Quando um arquivo está envolvido em uma transação, a pesquisa sempre ocorre primeiro no arquivo temporário e depois no arquivo original. A pesquisa ocorre sempre primeiro no arquivo temporário, porque nele ficam armazenadas as alterações feitas pelas transações anteriores depois da última sincronização com o arquivo original.
Efetivando as transações
Quando o arquivo recoverylogX atinge o seu tamanho máximo, ele é fechado e enviado para um processo paralelo que aplica as alterações no arquivo original. O arquivo temporário é sincronizado com o arquivo original somente quando não houver transações ativas.
Nenhum comentário:
Postar um comentário