Mam aplikację internetową Java, która odbiera zdarzenia w czasie rzeczywistym i przenosi je do warstwy interfejsu użytkownika. Chcę rejestrować wszystkie postrzegane zdarzenia, a ponieważ ilość informacji będzie ogromna, wolę używać bazy danych NoSQL.Najlepsze praktyki dotyczące rejestrowania danych w czasie rzeczywistym w bazie danych NoSQL DB
W tym celu skonfigurowałem monondb, który wstawia dokument na zdarzenie. Problem polega na tym, że to podejście (dostęp do dysku na zdarzenie) znacznie spowalnia cały proces.
Jakie podejścia mogę przyjąć w tej sytuacji? jakie opcje są dostępne w mongodb (np. wstawianie zbiorcze, wstawianie asynchroniczne, buforowanie, ...)? czy zmiana na inną implementację db NoSQL robi różnicę? jakie są najlepsze praktyki tutaj?
Byłoby dobrze, aby wiedzieć trochę więcej szczegółów na temat spodziewanych ograniczeń wydajności. Jak dużą przepustowość spodziewasz się mieć? 100/s? 10k/s? 1M/s? Średnie i możliwe wartości szczytowe? Jaki jest przybliżony rozmiar wydarzeń podczas serializacji? 100 bajtów? 1 megabajt? Czy rzadko chcesz przeglądać swoje przeszłe wydarzenia, np. Odtwarzając je w określonym przedziale czasu, czy też potrzebujesz zapytań ad-hoc na nich? Ile czasu potrzeba na ich przechowywanie - czy baza danych wzrośnie do wartości danych z lat, czy może co tydzień czyścisz coś do archiwizacji wtórnej? –