2. Entity file manager
Entity file manager é um recurso que permite persistir entidades em arquivos
estruturados. Ele foi desenvolvido com a finalidade de dar suporte à persistência
de dados no BRCache.
3. 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.
4. Transações
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.
5. 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.
7. 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.
9. 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.