MongoDB — это хранилище документов, классифицируемое как CP (Consistent и Partition-tolerant) согласно теореме CAP, то есть оно отдаёт приоритет консистентности данных. Cassandra — это wide-column хранилище, классифицируемое как AP (Available и Partition-tolerant), отдающее приоритет доступности над строгой консистентностью.
MongoDB использует архитектуру primary-secondary (master-slave):
Cassandra использует peer-to-peer архитектуру (ring):
MongoDB предоставляет более богатый и выразительный интерфейс запросов:
$lookup) и полнотекстовый поискdb.orders.find({ "customer.city": "NYC", total: { $gt: 100 } })
Cassandra использует CQL (Cassandra Query Language), который похож на SQL, но намеренно ограничен — запросы должны соответствовать заранее определённым partition key'ам, что делает ad-hoc запросы невозможными.
Cassandra превосходит по пропускной способности записей благодаря:
Производительность записей в MongoDB хорошая, но может стать узким местом под экстремальной нагрузкой, так как все записи маршрутизируются через primary-узел.
Архитектура MongoDB с primary-secondary означает, что все операции записи должны обрабатываться одним primary узлом, что может создать узкое место при экстремальных нагрузках, тогда как Cassandra распределяет записи одновременно между несколькими узлами.
Новый — ещё не проверен сообществом
Вы