Ich entwickle ein Produkt, das im Rahmen seines Betriebs eine große Anzahl von Dateien / Verzeichnissen nachverfolgen muss. Die Idee ist, stat-Informationen in einer Datenbank zu speichern und beim Booten Watches für jede Datei zu erstellen. Dateien, die sich ändern, werden (in der Datenbank) für eine Gruppensynchronisierung mit einer entfernten Datenbank in eine Warteschlange gestellt. Sie werden in der Reihenfolge ihrer Priorität synchronisiert, eine Zahl zwischen 1 und 10.
Informationen zur Datenbank:
- <100.000 Einträge von stat info
- Gesamte Datenbank wird beim Booten gelesen, nur der Dateipfad wird benötigt
- In die Warteschlange gestellte Dateien haben ein Prioritätsfeld (nichts anderes muss durchsucht werden)
- Einfügungen können langsam sein
Ich habe ein paar Datenbanken gefunden, von denen ich denke, dass sie funktionieren werden, aber ich bin mir nicht sicher, welche die besten wären:
- Redis - Dateipfad als Schlüssel speichern, Statistikdaten als Wert; Warteschlange wäre eine Liste
- MongoDB - mehr Abfrageoptionen als Redis, aber immer noch schnell
Ich denke, eine NoSQL-Datenbank wäre die beste Lösung, da hier nicht zu viel relationale Logik abläuft und die Gesamtdatenmenge nicht zu groß ist (etwa <100 MB, näher an <30 MB). Ich habe mir SQLite angesehen, weil es so einfach zu sein scheint, dass es in eine installierbare Anwendung eingebettet werden kann.
Da dies eine verteilte Anwendung für Endbenutzer und kein Hochlastserver ist, muss die Datenbank nicht viele gleichzeitige Benutzer unterstützen. Die Hauptpriorität besteht darin, eine Datenbank zu finden, deren Modell am sinnvollsten ist.
Also die Frage, welche Datenbank wäre für diese Situation am besten geeignet?
Gibt es auch andere Datenbanken, die für eine solche Anwendung sinnvoller wären?