Estou desenvolvendo um produto que, como parte de sua operação, deve rastrear um grande número de arquivos / diretórios. A idéia é armazenar informações estatísticas em um banco de dados e, na inicialização, criar relógios para cada arquivo. Os arquivos alterados serão colocados na fila (no banco de dados) para uma sincronização de grupo em um banco de dados remoto. Eles serão sincronizados em ordem de prioridade, um número entre 1 e 10.
Informações sobre o banco de dados:
- <100.000 entradas de informações estatísticas
- Banco de dados inteiro lido na inicialização, apenas o caminho do arquivo é necessário
- Os arquivos na fila terão um campo prioritário (nada mais precisa ser pesquisado)
- As inserções podem ser lentas
Encontrei alguns bancos de dados que acho que funcionarão, mas não tenho certeza qual seria o melhor:
- Redis - armazena o caminho do arquivo como chave, os dados estatísticos como valor; fila seria uma lista
- MongoDB - mais opções de consulta que Redis, mas ainda rápido
Estou pensando que um banco de dados NoSQL seria a melhor solução aqui, pois não há muita lógica relacional em andamento e o tamanho total dos dados não é muito grande (algo como <100 mb, mais próximo a <30 mb). Eu olhei para o SQLite porque parece ser simples o suficiente para incorporar em um aplicativo instalável.
Como esse é um aplicativo distribuído para usuários finais e não um servidor de alta carga, o banco de dados não precisa oferecer suporte a muitos usuários simultâneos. A principal prioridade aqui é encontrar um banco de dados cujo modelo faça mais sentido.
Então a pergunta, qual banco de dados seria mais aplicável a essa situação?
Além disso, existem outros bancos de dados que fariam mais sentido para um aplicativo como esse?