Sto sviluppando un prodotto che, come parte del suo funzionamento, deve tenere traccia di un gran numero di file / directory. L'idea è quella di memorizzare le informazioni sulle statistiche in un database, quindi, all'avvio, creare watch per ogni file. I file che cambiano verranno messi in coda (nel database) per una sincronizzazione di gruppo con un database remoto. Verranno sincronizzati in ordine di priorità, un numero compreso tra 1 e 10.
Informazioni sul database:
- <100.000 voci di informazioni statistiche
- Intero database letto all'avvio, è necessario solo il percorso del file
- I file in coda avranno un campo prioritario (non è necessario cercare altro)
- Le inserzioni possono essere lente
Ho trovato un paio di database che penso funzioneranno, ma non sono sicuro di quale sarebbe il migliore:
- Redis - memorizza il percorso del file come chiave, i dati delle statistiche come valore; la coda sarebbe un elenco
- MongoDB : più opzioni di query rispetto a Redis, ma comunque veloce
Sto pensando che un database NoSQL sarebbe la soluzione migliore qui, poiché non c'è troppa logica relazionale in atto e la dimensione totale dei dati non è troppo grande (qualcosa come <100 mb, più vicino a <30 mb). Ho esaminato SQLite perché sembra essere abbastanza semplice da incorporare in un'applicazione installabile.
Poiché si tratta di un'applicazione distribuita per utenti finali e non di un server con carico elevato, il database non deve supportare molti utenti simultanei. La priorità principale qui è trovare un database il cui modello abbia più senso.
Quindi la domanda, quale database sarebbe più applicabile per questa situazione?
Inoltre, ci sono altri database che avrebbero più senso per un'applicazione come questa?