Demora na carga de cache. [su_e11022301]

  • Ao tentar carregar um cache do início, dependendo do tamanho das tabelas de cadastro, pode ser levado um tempo considerável na montagem do cache no disco. Esse tempo vai variar de acordo com o tamanho dessas tabelas, pois os dados serão capturados no banco e salvos no disco. Nessas tabelas estão os registros como: cadastro de cliente, preço, estabelecimentos, etc.

  • Enquanto o Engine estiver carregando esse cache, ele não poderá ser utilizado. Por esse motivo, a recarga do cache só deve ser feita em casos de extrema necessidade, se tiver de ser feito em horário que o sistema esteja em uso.

  • Alguns fatores influenciam nesse tempo de carga, como por exemplo: processador, memória RAM, velocidade do disco, conexão com o banco de dados e volume dos dados.

  • A maneira para se fazer uma nova carga do cache é parar a execução do Engine e depois excluir (se houver necessidade de guardar esse cache, as pastas poderão ser somente renomeadas, como por exemplo adicionar "_" ao final do nome de cada uma delas) as pastas dbCache, dbCacheBackup e dbCacheProvider, presentes dentro do diretório onde está o Engine.

  • Quando o Engine for iniciado novamente, as pastas citadas acima serão recriadas e o cache montado novamente.

  • O cache também pode ser remontado a partir do backup existente no diretório do Engine. Para isso, somente a pasta dbCache deve ser excluída ou renomeada. Porém, é importante ressaltar que o backup só é feito quando o Engine é inicializado. Caso o Engine não seja iniciado diariamente, o backup pode ser muito antigo, e a sua atualização poderá ser muito demorada. A sugestão é que o Engine seja reiniciado em um determinado horário que não esteja em uso. Se estiver como serviço do Windows o interessante é configurar uma tarefa que, em determinado horário, reinicie o serviço. Isso fará com que o backup do cache seja atualizado e em casos onde é necessário recarregar o cache bastará excluir a pasta dbCache pois será utilizado o backup.

Vale ressaltar que em se tratando de gerência de riscos para casos de problema no Engine ou na máquina onde há o servidor principal, o mais indicado é utilizar técnicas de replicação, como por exemplo: ter um outro Engine como servidor de aplicação onde esse Engine não recebe nenhum tipo de requisição e só existe para que seja feito backup e mantenha um cache íntegro. É importante que esse Engine seja reiniciado toda noite, para que o backup do cache seja sempre realizado. Em casos de indisponibilidade do servidor principal, uma solução rápida seria só mudar o diretório do serviço, fazendo com que o servidor que era de backup passe a ser o principal.

Outro ponto é que mesmo utilizando a técnica acima, ainda há a possibilidade do próprio hardware, onde está o servidor, ter um problema. Para esse caso, seria interessante ter uma outra máquina com a mesma configuração e com o Engine já configurado e que estivesse sendo mantido o cache atualizado. Com a queda do servidor principal por problema de hardware, rapidamente o outro servidor poderia ser colocado no ar, lembrando apenas de alterar o IP.

Essas técnicas visam a robustez da arquitetura a ser utilizada na aplicação, tendo sempre um opção para qualquer problema que possa vir a ocorrer e fazendo com que a resposta seja rápida para esses problemas, minimizando o tempo offline da base.

  • [su_e11022301]