MongoDB или CouchDB - подходят для производства?

485

Мне было интересно, может ли кто-нибудь сказать мне, если MongoDB или CouchDB готовы к созданию production.

Теперь я рассматриваю эти решения для хранения данных (в настоящее время я предпочитаю MongoDB), однако эти проекты довольно молоды и поэтому я предвижу, что мне придется много работать, чтобы убедить моего менеджера, что мы следует принять эту новую технологию.

Что я хотел бы знать:

  • Кто использует MongoDB или CouchDB сегодня в рабочей среде?

  • Как вы используете MongoDB/CouchDB?

  • Какие проблемы (если они есть) вы встретили, когда вы приняли этот новый механизм хранения (и как вы их преодолели)?

  • Как вы справлялись с проблемами миграции, с которыми вам приходилось сталкиваться?

  • Есть ли у вас хорошие/плохие впечатления от любого из этих решений, которые вы хотели бы поделиться?

  • 2
    Просматривая ответы, я не нашел то, что искал. Поскольку обе базы данных очень похожи, какую выбрать? Каковы преимущества любого из них? Для какого приложения я должен выбрать какой? Было бы хорошо, если бы кто-то мог ответить на эти вопросы.
  • 0
    Это действительно зависит от того, как они будут использоваться. Отсутствие транзакций беспокоит многие среды, но отлично подходит для других. Кроме того, принципиально трудно создать резервную копию распределенной базы данных, хотя аргумент заключается в том, что постоянство данных обеспечивается за счет репликации на несколько сегментов.
Показать ещё 3 комментария
Теги:
database
couchdb

19 ответов

270
Лучший ответ

Я технический директор 10gen (разработчики MongoDB), поэтому я немного предвзятый, но я также управляю несколькими сайтами, использующими MongoDB в производстве.

businessinsider уже более года использует монго в производстве. Они используют его для всего, от пользователей и сообщений в блогах, до каждого изображения на сайте.

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

Если вы перейдете на страницу mongodb Production Deployments, вы увидите некоторых людей, которые используют монго в производстве.

Если у вас есть какие-либо вопросы о масштабах или масштабах развертывания производства, опубликуйте в нашем списке пользователей, и мы будем более чем рады помочь.

  • 6
    вот ссылка mongodb.org/display/DOCS/Production+Deployments
  • 1
    не могли бы вы заставить mongodb работать с v8 по умолчанию. и mongodb съедают слишком много памяти для бедных парней, которые используют VPS с 512M памяти.
Показать ещё 3 комментария
106

BBC и meebo.com использовать CouchDB, а также один из моих клиентов. Вот список других людей, использующих Couch: CouchDB в дикой природе

Основная задача состоит в том, чтобы знать, как организовать ваши документы и перестать думать с точки зрения реляционных данных.

  • 7
    На самом деле для меня главная проблема - вернуться назад, если нужно. Как только вы удалите «ограничения отношений» из своего разума, вам будет трудно вернуться назад. :)
42

SourceForge использует MongoDB. См. эту презентацию или читайте здесь.

  • 30
    Для чего они это используют? Или как они это используют?
  • 26
    Я знаю, что это старый вопрос, но, возможно, кто-то еще раз посмотрит на него. Вот презентация разработчика SourceForge о том, как они используют MongoDO: infoq.com/presentations/MongoDB-at-SourceForge
33

Мы запускаем CouchDB в качестве замены для MySQL для наших магазинов (70.0000 пунктов/магазин, всего 4 миллиона атрибутов всех элементов, перекрестные соединения между элементами).

Наши цели:

  • Простая репликация с master-db на несколько клиентов с разными документами.

  • Быстрые предварительно рассчитанные данные, такие как "сколько частей у меня есть с этим атрибутом и этот фильтр, подходящий для этих условий"

факты:

  • Наши магазины теперь работают намного быстрее, чем с MySQL (а mysql-база данных требуется дополнительно 1-3 дня предварительного расчета (так обновление было два раза в месяц), что делает данные готовы к подсчету и фильтрации продукта, CouchDB нуждается в 5 часов, чтобы мы могли обновлять данные о продуктах каждую ночь).
  • Настройка (фильтрация) данных и резервное копирование узлов магазина быстро и легко

но также:

  • Понимание карты/сокращения и пределы отсутствия объединений довольно сложно.
  • Нет операции с такими данными, как "delete where" или "update where" без внешних программ
  • Репликация работает хорошо, если нет проблемы; то действительно трудно понять, в чем причина (для начинающих).
  • Установка CouchDB без двоичных файлов (да, есть некоторые в дикой природе, но не для каждой ОС/версии) может быть сложной, если вы не Linux-разработчик. Но сообщество CouchDB полезно (#couchdb), и, к счастью, есть компании (облачные, iriscouch), предлагающие услуги от свободного до крупного бизнеса.
  • CouchDB продвигается вперед, поэтому происходит много изменений (улучшений), которые могут измениться, как вы работаете. Но основные вещи остаются стабильными.

В результате: MySQL как база данных для создания и обслуживания данных надежна и понятна и понятна. Думаю, мы этого не изменим. Но я также не хочу пропускать возможности представлений CouchDB и простоту настройки репликации.

Производственные кушетки иногда вызывали проблемы после нескольких месяцев работы из-за неправильной конфигурации и забытых логротатов (просмотр здания занимает слишком много времени или зависает, репликация останавливается), но никогда не теряла данные и всегда могла быть легко reset.

  • 0
    70 000 или 700 000 товаров в магазине? Кроме того, что-нибудь изменилось с тех пор, как вы написали пост? Возможно, реализованы некоторые недостающие функции?
26

Я использую CouchDB в производстве. В настоящее время он хранит все эти "необязательные" поля, которые не были в исходной схеме БД. И сейчас я думаю о перемещении всех данных в CouchDB.

Это довольно рискованный шаг, признаюсь я. Во-первых, потому что это еще не v1.0. А во-вторых, потому что это голодный двигатель. По моим расчетам, файл CouchDB (с индексами) в 30 раз больше, чем база данных MySQL с теми же строками. Но я уверен, что все будет хорошо.

  • 1
    Ну, это не сработало вообще. Я избавился от couchdb через пару месяцев.
  • 0
    Что случилось?!
Показать ещё 5 комментариев
18

CouchDB 0.11 (выпущен в конце марта) - это релиз функции-замораживания для версии 1.0. Это означает, что мы будем поддерживать совместимость с текущим API за 1.0, поэтому сейчас самое подходящее время, чтобы еще раз взглянуть на CouchDB, если у вас нет времени.

Выпуск исходного кода CouchDB 0.11 доступен здесь. двоичный инсталляторов и других полезных свойств.

17

Я ничего не знаю о MongoDB, но из CouchDB FAQ:

Готова ли CouchDB для производства?

Да, см. InTheWild для частичного списка проектов с использованием CouchDB. Еще один хороший обзор - Примеры CouchDB

Кроме того, некоторые ссылки:

  • 0
    Это старая новость: теперь ссылка гласит: «Да, см. InTheWild, где приведен неполный список проектов, использующих CouchDB. Еще один хороший обзор - CouchDB Case Studies»
  • 14
    @J Chris A: Конечно, он старый, я опубликовал это полтора года назад. :)
16

Мы используем couchdb в производстве и с тех пор, как проект прошел под зонтиком Apache.

Мы используем его для хранения всего, что мы могли бы использовать dbms, а также всевозможные неструктурированные данные. Лично мне очень нравится, как вы можете просто вбрасывать в него всевозможные данные и использовать представления, чтобы отбросить то, что вам не нужно, в зависимости от ситуации.

Самая сложная часть - это отход от мышления dbms. Мы писали собственные утилиты миграции, когда формат хранилища изменился просто для того, чтобы быть в безопасности, поэтому это не было проблемой.

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

13

Мы используем CouchDB для хранения мобильных входящих и исходящих сообщений и для сообщения об этом трафике через некоторые пользовательские представления, которые я написал. Интерфейс написан на Python. У нас не было никаких реальных технических проблем, и он работает с конца декабря. Единственное препятствие, с которым я столкнулся, изначально думал с точки зрения MapReduce, но как только я узнал, как это сделать, все остальное прошло гладко.

9

В настоящее время мы используем MongoDB в качестве слоя кэширования, а также механизм хранения для импорта и обработки данных продукта. Мы являемся компанией eCommerce, управляющей более чем двумя миллионами продуктов (более 100 миллионов атрибутов), охватывающей 10+ дистрибьюторов и без MongoDB, эта задача будет практически невозможна.

  • 2
    Насколько надежным оказался mongoDB для вас? + Насколько хорошо работает репликация в реальной жизни?
  • 4
    Мы реализуем топологию набора реплик под управлением 1.6. (Не уверен, что младшая версия не доступна). Пока что единственная проблема, с которой мы столкнулись, это, очевидно, когда на диске не хватает места, даже если включены записи сохранения, флаги не поднимаются. Так что просто убедитесь, что у вас есть МНОГО места!
Показать ещё 1 комментарий
1

В настоящее время мы используем mongodb в качестве службы хранения файлов для нашего сотрудничества по локальной сети. Кроме того, проекты, такие как trello, используют mongodb в качестве своего backend хранилища данных. Раньше я использовал couchdb, но не в производственных возможностях.

0

Adobe использует MongoDB для их предстоящей публикации Adobe Experience Manager (ранее Day CQ) в качестве ядро БД.

Несколько клиентов в агентстве, в котором я работаю, используют CouchDB для проектов для крупных клиентов.

Оба являются отличными и жизнеспособными БД, на мой взгляд.:)

0

Говоря о производстве, бесперебойный переход на второй план требует восстановления детской няни
1- Couchbase, нет бесперебойного восстановления после сбоя/восстановления, требуется ручное вмешательство.
перебалансировка занимает слишком много времени, слишком много риска, если потеряно более одного node.

2- Mongo с осколками, восстановление данных от потери сервера конфигурации - непростая задача

0

Этот вопрос уже принял ответ, но теперь несколько дней NoSQL DB находится в тренде для многих своих замечательных функций. Это Couchbase; который работает как CouchbaseLite на мобильной платформе и Couchbase Server на вашей стороне сервера.

Вот некоторые из основных особенностей Couchbase Lite.

Couchbase Lite - это легкий, ориентированный на документы (NoSQL), механизм синхронизации, подходящий для внедрения в мобильные приложения.

Легкий вес:

Embedded - механизм базы данных - это библиотека, связанная с приложением, а не отдельный серверный процесс. Небольшие размеры кода важны для мобильных приложений, которые часто загружаются через сотовые сети. Быстрое время запуска важно, поскольку мобильные устройства имеют относительно медленные процессоры. Низкие объемы использования памяти - типичные мобильные наборы данных относительно малы, но некоторые документы могут иметь большие мультимедийные вложения. Разумеется, хорошие показатели производительности зависят от ваших данных и приложений.

Документированные средства:

Сохраняет записи в гибком формате JSON вместо требуемых предопределенных схем или нормализации. Документы могут иметь двоичные вложения произвольного размера, такие как мультимедийный контент. Формат данных приложения может развиваться со временем без необходимости явных миграций. Индексирование MapReduce обеспечивает быстрый поиск без необходимости использования специальных языков запросов.

Syncable означает:

Любые две копии базы данных могут быть синхронизированы с помощью эффективного, надежного, проверенного алгоритма репликации. Синхронизация может быть по требованию или непрерывной (с задержкой в ​​несколько секунд). Устройства могут синхронизироваться с подмножеством большой базы данных на удаленном сервере. Синхронизатор поддерживает прерывистые и ненадежные сетевые подключения. Конфликты могут быть обнаружены и решены, при этом логика приложения полностью контролирует процесс слияния. Деревья редактирования позволяют создавать сложные топологии репликации, включая сервер-сервер (для нескольких центров обработки данных) и одноранговую, без потери данных или ложных конфликтов. Couchbase Lite предоставляет собственные API-интерфейсы для бесшовных iOS (Objective-C) и Android (Java). Кроме того, он включает в себя подключаемый модуль Couchbase Lite для PhoneGap, который позволяет вам создавать приложения для iOS и Android, которые вы разрабатываете, используя привычные методы программирования веб-приложений и платформу для мобильных мобильных телефонов PhoneGap.

Вы можете больше узнать о Couchbase Lite

и Couchbase Server

Это будет следующая важная вещь.

0

Мы используем mongodb в производстве для

www.beachfront.io - приближается к запросу на 5к в секунду www.beachfrontbuilder.com - 500 запросов на чтение/запись в секунду, поддержка 10-метровых данных пользователей и olap.

Единственная проблема, с которой приходится сталкиваться при архивировании данных, мы преодолеваем, реализуя наш пользовательский компонент.

0

Я использую CouchDB в производстве уже почти 2 года. Там не работает миграция, поскольку проект запускается непосредственно с реализацией CouchDB. Он служит в качестве базы данных, которая хранит данные одного электронного продукта с самого начала до упаковки.

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

Там есть какая-то кривая обучения, которую я узнал из своего опыта, которая должна полностью использовать представления (или также известные как постоянные виды). Представления должны быть "небольшим фильтром" части базы данных, которая будет вызываться часто.

My CouchDB databse не так сумасшедший, как другая гигантская компания. Но пока я все еще в порядке. В настоящее время у меня есть 24000 документов на 700 МБ.

Функция из CouchDB, которая мне нравится, это "репликация", "сохранение версий документа".

Я бы прочитал много хороших отзывов о MongoDB, и я хочу попробовать, если есть шанс.

0

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

-2

Здесь приведен список рабочих мест с поддержкой mongoDB

  • The New Yorks Times: использование этого в приложении для создания форм для отправки фотографий. Отсутствие схемы Mongo дает разработчикам возможность определять любую комбинацию полей пользовательских форм.
  • SourceForge: используется для резервного копирования на исходных страницах SourceForge, страниц проекта и страниц загрузки для всех проектов.
  • Bit.ly
  • Etsy
  • IGN: полномочия IGNs аналитики трафика в реальном времени и API-интерфейсы RESTful Content.
  • Justin.tv: поддерживает внутренние аналитические инструменты Justin.tv для виральности, удержания пользователей и общей статистики использования, которые не могут обеспечить готовые решения.
  • Posterous
  • Intuit
  • Foursquare: для большинства данных в четырехквартальных системах используются базы данных с запаздыванием Mongo.
  • Бизнес-инсайдер: использование его с начала 2008 года. Все данные сайта, включая сообщения, комментарии и даже изображения, хранятся на MongoDB.
  • Github: используется для внутреннего отчета.
  • Examiner: перенесла свой сайт из Cold Fusion и SQL Server на Drupal 7 и MongoDB.
  • Grooveshark: в настоящее время Mongo управляет более миллиона уникальных пользовательских сеансов в день.
  • Buzzfeed
  • Discus
  • Evite. Используется для аналитики и быстрой отчетности.
  • Squarespace
  • Shutterfly: используется для различных постоянных требований к хранению данных в Shutterfly. MongoDB помогает Shutterfly создавать непревзойденный сервис, который обеспечивает более глубокие, более личные отношения между клиентами и теми, кто имеет наибольшее значение в своей жизни.
  • Шиворот
  • ShareThis
  • Mongohq: предоставляет платформу для хостинга для MongoDB, а также использует MongoDB для поддержки своего сервиса. На странице наших центров хостинга вы найдете дополнительную информацию о MongoHQ и других вариантах хостинга MongoDB.

и многое другое...

Извлечено из: http://lineofthought.com/tools/mongodb

Вы также можете проверить другие базы данных или инструменты.

  • 0
    Добавил большую часть списка в пост
-6

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

  • 1
    Звучит как ересь
  • 1
    хотя вы не указали точные проблемы с лицензированием, в лицензировании MongoDB нет ничего плохого mongodb.org/about/licensing. Он использует лицензию AGPL, которая может быть причиной проблем в вашем отделе по юридическим вопросам, но они утверждают, что любой клиент БД отдельная работа. «Мы обещаем, что ваше клиентское приложение, использующее базу данных, является отдельной работой. Для этого драйверы, поддерживаемые mongodb.org (часть, которую вы связываете с вашим приложением), выпускаются под лицензией Apache, которая не содержит авторских прав».

Ещё вопросы

Сообщество Overcoder
Наверх
Меню