MongoDB против CouchDB ... И любые другие "крупные игроки" - PullRequest
4 голосов
/ 03 сентября 2010

Каковы основные различия между MongoDB и CouchDB, и есть ли другие важные серверы баз данных NO-SQL, о которых стоит упомянуть?

Я знаю, что CERN использует CouchDB где-то в своем бэк-энде LHC; огромный штамп одобрения. Что такое ссылки MongoDB и любых других крупных серверов?


Обновление

Для меня одним из главных преимуществ CouchDB является API на основе REST и бесшовная интеграция JavaScript с использованием JSON в качестве оболочки данных. Это возможно с любой другой упомянутой базой данных NO-SQL?

Ответы [ 3 ]

4 голосов
/ 03 сентября 2010

Есть еще много отличий, но есть несколько быстрых моментов:

  • CouchDB имеет MVCC (Multi Version Concurrency Control) - каждый раз, когда документ обновляется, создается его НОВАЯ версия. Принимая во внимание, что MongoDB обновляется на месте.
  • CouchDB поддерживает multi-master, поэтому вы можете писать на любой сервер. MongoDB имеет только 1 активный сервер для записи (master-slave) - Однако: возможно, это изменилось в последней версии (1.6), поэтому MongoDB теперь может поддерживать несколько серверов для записи

Чтобы узнать, кто использует MongoDB , посмотрите здесь (например, foursquare, bit.ly, sourceforge ....)

Чтобы узнать, кто использует CouchDB , см. Здесь .

Самая известная база данных NoSQL - это Cassandra (facebook, twitter) Тогда у вас есть HBase , HyperTable , RavenDB , SimpleDB , и еще больше ...

1 голос
/ 04 сентября 2010

Добро пожаловать на новую площадку @AdaTheDev, охватывающую большинство основных.Есть также проект Волдеморт, Токийский кабинет / Тиран, и целая куча оберток вокруг всех этих вещей.Поэтому люди также создают MemcacheDB (memcache с постоянным слоем).

MongoDB имеет несколько хуков для поддержки API-интерфейсов REST (ознакомьтесь с поддержкой Sleepy Mongoose и Node.js).MongoDB и CouchDB имеют разные способы обработки уменьшений карты (хотя они несколько похожи).MongoDB не имеет MVCC, но две системы действительно имеют разные способы хранения данных, каждый со своим собственным набором компромиссов.

MongoDB использует драйверы, зависящие от языка, где CouchDB использует REST (компромисс производительности).

Для более подробного сравнения смотрите здесь .

0 голосов
/ 17 сентября 2010

MongoDB, вероятно, немного легче понять реляционному разработчику, поскольку он использует драйверы и имеет лучшую поддержку специальных запросов. CouchDB имеет очень мало общего со старыми реляционными способами ведения дел.

И то, и другое касается по-разному шардинга и репликации.

Сказав это, я считаю, что оба концептуально достаточно похожи, что часто сводится к личным предпочтениям. С ними все весело писать. Фактически, мы оценили как внутренний проект, так и пошли дальше и дальше с нашим решением.

...