Opracowuję produkt, który w ramach jego działania musi śledzić dużą liczbę plików / katalogów. Chodzi o to, aby przechowywać dane statystyczne w bazie danych, a następnie przy rozruchu tworzyć zegarki dla każdego pliku. Pliki, które ulegną zmianie, zostaną umieszczone w kolejce (w bazie danych) w celu synchronizacji grupy ze zdalną bazą danych. Zostaną zsynchronizowane w kolejności priorytetów, liczby od 1 do 10.
Informacje o bazie danych:
- <100 000 wpisów informacji o statystykach
- Cała baza danych odczytywana przy starcie, potrzebna jest tylko ścieżka pliku
- Pliki w kolejce będą miały pole priorytetowe (nic więcej nie będzie przeszukiwane)
- Wstawianie może być powolne
Znalazłem kilka baz danych, które moim zdaniem będą działać, ale nie jestem pewien, który byłby najlepszy:
- Redis - przechowuj ścieżkę pliku jako klucz, dane statystyki jako wartość; kolejka byłaby listą
- MongoDB - więcej opcji zapytań niż Redis, ale nadal szybko
Myślę, że baza danych NoSQL byłaby tutaj najlepszym rozwiązaniem, ponieważ nie dzieje się za dużo logiki relacyjnej, a całkowity rozmiar danych nie jest zbyt duży (coś w rodzaju <100 mb, bliżej <30 mb). Spojrzałem na SQLite, ponieważ wydaje się on wystarczająco prosty, aby osadzić go w instalowalnej aplikacji.
Ponieważ jest to aplikacja rozproszona dla użytkowników końcowych, a nie serwer o wysokim obciążeniu, baza danych nie musi obsługiwać wielu jednoczesnych użytkowników. Głównym priorytetem jest tutaj znalezienie bazy danych, której model ma największy sens.
Pytanie, która baza danych byłaby najbardziej odpowiednia w tej sytuacji?
Czy istnieją też inne bazy danych, które mogłyby mieć sens w przypadku takiej aplikacji?