Jaka baza do aplikacji realtime? (podobna do firebase)

0

Cześć

Zastanawia mnie jaka baza ma najlepsze predyspozycje do przechowywania stanu realtime (coś trochę zbliżonego do firebase).

Myślałem pierwotnie o redis, ale tutaj niezbyt wygodnie operuje mi się na modelach, ponieważ czasem chciałbym mieć mapę w mapię i przez to muszę strukturę podzielić na małe kawałki, a potem potrzebowałbym aktualizacji (najlepiej w transakcji). Gdy mam wiele takich kawałków to czasem potrzebuje odczyty i zapisy i wtedy robiąc to w pipeline odczyty uzyskam dopiero po przeprowadzeniu transakcji :-/.

MongoDB wydaje się być do bani od samego początku. Ma ktoś może jakieś opinie na temat rethinkdb, couchdb albo jakiej innej bazie?

W moim przypadku skalowalności nie jest najważniejsza, dlatego powoli myślę o tym by napisać własną usługę która trzyma stan i umożliwia przeprowadzenie wszystkich operacji po linii najmniejszego oporu.

1

Ten post jest mało zrozumiały. Nie napisałeś, czemu nie chcesz użyć firebase, nie napisałeś, czemu nie chcesz mongo... Co to ma być to trzymanie stanu?

0

Różne bazy różnie się zachowują w zależności od workloadu. Np. X może być lepsza dla workloadu typu (90% odczytów, 10% zapisów), Y lepsza do (90% zapisów,10% odczytów) etc.
Napisz wymagania, może baza nie jest najlepszym rozwiązaniem.

0

@jarekczek Firebase to płatna i do tego zewnętrzna usługa. Jeśli jest tak opcja to nie chcę być od tego zależny.

@yarel MongoDB być może jestem głąbem, ale ile kroć zdarzyło mi się pracować z mongo to zwykle na początku było fajnie, a potem człowiekowi włosy wypadały. Niestety, ale z czasem nie widzę żadnego rozsądnego zastowowania dla tej bazy. Nawet logów nie chciałbym w niej trzymać.

Projektowi najbliżej będzie mi do gry w czasie rzeczywistym (choć nie jest grą). Zdecydowanie więcej będzie tutaj zapisów niż odczytów.

2

No to bierz byle jaką bazę, którą lubisz, w przeciwieństwie do Mongo. Tylko jeszcze się zdecyduj czy klient-serwer czy embedded. No i wybór zależy też od platformy aplikacji. Nadal brak konkretów. Może trzeba było zapytać "jaką bazę danych lubicie".

0

Popatrz sobie na Cassandrę. Może Ci się spodoba. Spotify trzyma w niej całą realtime'ową część serwisu.
Więcej nie napiszę, bo będę nieobiektywny.

1

Jak będa wyglądać dane?
Czy dane mają być trwałe?
Czy będą między danymi jakieś powiązania? Jak tak to jakie?
Czy dane są ustrukturyzowane czy nie?
Jakie chcesz robić zapytania?
Jaka będzie szacowana ilość tych danych?
Jakie opóźnienia są dopuszczalne?

Od tego zależy jaki typ bazy potrzebujesz i czy w ogóle jest ona potrzebna.

0

Jak nie masz jakichś super wymagań, to Postgres ogarnie Ci 99% twoich zapotrzebowań.

1

Ten wątek to:

  1. Określenie całego projektu jednym buzzwordem - "aplikacja realtime"
  2. Szukanie odpowiedniej technologii pod ten buzzword, tak jakby każda "aplikacja realtime" miała takie same wymagania

a nie lepiej tak:

  1. Zastanowienie się jakie są wymagania biznesowe
  2. Szukanie technologii pod konkretne wymagania biznesowe (czyli technologii dobrej do danego projektu, a nie do typu idealnego "aplikacja realtime", co może być wszystkim, począwszy od gry w kamień nożyce kamień aż po aplikacje typu Facebook)

?

1 użytkowników online, w tym zalogowanych: 0, gości: 1