Cassandra vs MongoDB w praktyce

0

Czy stosujecie któreś z tych rozwiązań? Jak porównalibyście je od strony praktycznej, pomijając to co można wyczytać z oficjalnych tekstów. Które sprawdza się lepiej w jakich sytuacjach?

MongoDB niby obiecuje spójne dane, a czytam na forach, że i tak z powodu braku transakcji bywa, że dan się duplikują.

1

Te bazy są nieporównywalne, całkowicie inne zastosowanie i model danych. To jakbyś porównywał sekator do kosiarki.

Spójność danych zależy od ustawień quorum, read/write concern. Generalnie z C* mnóstwo problemów (GC, tombstony), polecam MongoDB. Masz transakcje na poziomie jednego dokumentu, są tez „nowe” szersze ale nie mam doświadczenia.

0

A porównując do (O)RDBMS to o ile większego monitoringu wymaga takie MongoDB?

1

Sprawdź też ArangoDB: NoSQL-owa baza danych z ACID:

https://www.arangodb.com/

2

Wszystko zależy czego potrzebujesz.

Każda z tych baz ma swoje zastosowania. Jeśli Twoja aplikacja wymaga np. skalowalności, High Availability, georedundancji czy dużej prędkości zapisu danych to Cassandra powinna być dobrym wyborem. Dużo problemów z Cassandrą wynika z tego, że ludzie modelują dane tak jak to ma miejsce w bazach relacyjnych, a to po prostu nie działa (niestety, podobieństwo CQL i SQL do tego "zachęca"). Nie wiem jak tam z Mongo, Cassandra ma całkiem fajne tutoriale (datastax academy, w sumie niezależnie co byś wybrał to ja polecałbym je zrobić, nawet z czystej ciekawości).

2

Mongo nikt nie lubi i mało kto poleca. Więcej pisałem tutaj.

Cassandre miałem w jednym projekcie do trzymania logów i metryk, ale tym się opiekował inny dev; o ile wiem, działała i tyle. Ja bym pewnie zamiast tego zaproponował użycie Elastic Stack.

Moje ogólne wrażenie jest takie, że w większości przypadków lepiej jest używać sprawdzonych i stabilnych baz relacyjnych, a NoSQL-e rezerwować na ewentualne zastosowania, gdzie akurat dobrze modelują jakąś konkretną potrzebę (pokroju przechowywania sieci społecznych w bazach grafowych). W większości przypadków wybór Mongo czy Cassandry to programming by buzzwords.

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