Мне было интересно, если кто-нибудь может сказать мне , готовы ли MongoDB или CouchDB для производственной среды.
Сейчас я смотрю на эти решения для хранения данных (сейчас я поддерживаю MongoDB), однако эти проекты довольно молоды, и поэтому я предвижу, что мне придется потрудиться, чтобы убедить моего менеджера, что мы должны принять это новая технология.
Что я хотел бы знать, это:
Кто сегодня использует MongoDB или CouchDB в производственной среде?
Как вы используете MongoDB / CouchDB?
С какими проблемами (если они есть) вы столкнулись, когда приняли этот новый механизм хранения (и как вы их преодолели)?
Как вы справились с проблемами миграции, с которыми вам приходилось сталкиваться?
Есть ли у вас хороший или плохой опыт использования любого из этих решений, которым вы хотели бы поделиться?
Ответы:
Я технический директор 10gen (разработчики MongoDB), поэтому я немного предвзят, но я также управляю несколькими сайтами, которые используют MongoDB в производстве.
businessinsider уже более года использует монго в производстве. Они используют его для всего: от пользователей и сообщений в блоге, до каждого изображения на сайте.
Shopwiki использует его для нескольких вещей, включая аналитику в реальном времени и уровень кэширования. Они делают более 1000 записей в секунду в довольно большую базу данных.
Если вы перейдете на страницу «Развертывание производства mongodb», вы увидите людей, которые используют mongo в производстве.
Если у вас есть какие-либо вопросы о масштабах или масштабах производственных развертываний, опубликуйте их в нашем списке пользователей, и мы будем рады вам помочь.
источник
BBC и meebo.com использовать CouchDB в производстве и так же один из моих клиентов. Вот список других людей, использующих Couch: CouchDB в дикой природе
Основная задача состоит в том, чтобы знать, как организовать ваши документы и перестать думать с точки зрения реляционных данных.
источник
SourceForge использует MongoDB. Смотрите эту презентацию или читайте здесь .
источник
Мы используем CouchDB как замену MySQL для наших магазинов (70,0000 товаров / магазин, всего 4 миллиона атрибутов всех товаров, перекрестные связи между товарами).
Нашими целями были:
Простая репликация от master-db до нескольких клиентов с разными документами.
Быстрые предварительно рассчитанные данные, такие как «сколько деталей у меня есть с этим атрибутом и этим фильтром, в соответствии с этими условиями»
факты:
но и:
В результате: MySQL как база данных для создания и обслуживания данных является надежной, простой в понимании и использовании. Я думаю, что мы не изменим это. Но я также не хочу упустить возможности просмотра CouchDB и простоту настройки репликации.
Производственные кушетки иногда вызывали проблемы после нескольких месяцев работы из-за неправильной конфигурации и забытых протоколов (сборка представления занимает слишком много времени или зависает, репликация останавливается), но никогда не теряла данные и всегда легко сбрасывалась.
источник
Я использую CouchDB в производстве. В настоящее время он хранит все те «необязательные» поля, которых не было в исходной схеме БД. И сейчас я думаю о переносе всех данных в CouchDB.
Это довольно рискованный шаг, я признаю. Во-первых, потому что это еще не v1.0. А во-вторых, потому что это жаждет свободного места. По моим расчетам, файл CouchDB (с индексами) примерно в 30 раз больше, чем база данных MySQL с теми же строками. Но я уверен, что все будет хорошо.
источник
CouchDB 0.11 (выпущенный в конце марта) - это версия с заморозкой для 1.0. Это означает, что мы будем поддерживать совместимость с текущим API для 1.0, поэтому сейчас хорошее время, чтобы еще раз взглянуть на CouchDB, если у вас нет времени.
Выпуск исходного кода CouchDB 0.11 доступен здесь. Здесь есть бинарные установщики и другие полезности.
источник
Я ничего не знаю о MongoDB, но из CouchDB FAQ :
Также несколько ссылок:
источник
Мы используем couchdb в производстве и с тех пор незадолго до того, как проект перешел под зонтик Apache.
Мы используем его для хранения всего, что в противном случае мы могли бы использовать в БД, плюс все виды неструктурированных данных. Лично мне очень нравится, как вы можете просто добавить в него все виды данных и использовать представления, чтобы отбросить то, что вам не нужно, в зависимости от ситуации.
Самая сложная часть уходила от мышления DBMS. Мы написали наши собственные утилиты миграции, когда формат хранилища изменился просто для безопасности, так что на самом деле это не было проблемой.
У нас еще не было негативного опыта, но опять же, у нас не было установки под какой-либо огромной нагрузкой. Я думаю, что все будет работать очень хорошо, поскольку у нас есть два подчиненных сервера, которые реплицируются с одного главного сервера, который получает все записи. Я почти уверен, что нам не нужно делать это таким образом, чтобы репликация работала правильно, но это то, как мы настроили ее в начале, и она застряла.
источник
Мы используем CouchDB для хранения мобильных входящих и исходящих сообщений, а также для отчетов об этом трафике с помощью некоторых пользовательских представлений, которые я написал. Внешний интерфейс написан на Python. У нас не было никаких реальных технических проблем, и это работает с конца декабря. Единственным препятствием, с которым я столкнулся, было поначалу думать с точки зрения MapReduce, но как только я научился это делать, все остальное прошло гладко.
источник
В настоящее время мы используем MongoDB в качестве слоя кэширования, а также механизм хранения для импорта и манипулирования данными о продукте. Мы являемся компанией электронной коммерции, управляющей более чем двумя миллионами продуктов (более 100 миллионов атрибутов), охватывающими более 10 дистрибьюторов, и без MongoDB эта задача была бы почти невозможной.
источник
В настоящее время мы используем mongodb в качестве службы хранения файлов для совместной работы по локальной сети. Кроме того, такие проекты, как trello , используют mongodb в качестве своего хранилища данных. Я использовал couchdb ранее, но не в производственных мощностях.
источник
Мы используем MongoDB в производстве нашего мобильного сервиса, а именно Netmera. Мы используем его для хранения всех данных пользователя и контента.
источник
Я использую CouchDB в производстве почти 2 года. Нет миграции, так как проект начался непосредственно с реализации CouchDB. Он служит базой данных, в которой хранятся данные одного электронного продукта от начала до упаковки.
Поскольку мы продаем сенсоры с требованием высокой точности, мы проводим много тестов на разных этапах, и все они будут сохранены в одном документе на CouchDB.
Есть некоторая кривая обучения, которую я изучил из своего опыта, которая заключается в полном использовании представлений (или также известных как постоянные представления). Представления должны быть «маленьким фильтром» части базы данных, которая будет часто вызываться.
Моя база данных CouchDB не такая сумасшедшая, как другие гигантские компании. Но пока у меня все хорошо. В настоящее время у меня есть 24000 документов на 700 МБ.
Мне нравится CouchDB - это «репликация», «сохранение редакций документа».
Я прочитал много хороших отзывов на MongoDB, и я хочу попробовать, если есть шанс.
источник
Мы используем mongodb в производстве для
www.beachfront.io - около 5 000 запросов на запись в секунду. www.beachfrontbuilder.com - 500 запросов на чтение / запись в секунду, поддержка 10 млн. пользовательских данных & olap.
Единственная проблема, стоящая перед архивированием данных, мы преодолеваем, внедряя наш пользовательский компонент.
источник
На этот вопрос уже принят ответ, но теперь еще одна NoSQL DB находится в тренде для многих своих замечательных возможностей. Это
Couchbase
; который работает какCouchbaseLite
на мобильной платформе, так иCouchbase Server
на стороне вашего сервера.Вот некоторые из основных особенностей Couchbase Lite.
Couchbase Lite - это легкий, ориентированный на документы (NoSQL) механизм синхронизируемой базы данных, подходящий для встраивания в мобильные приложения.
Легкий вес означает:
Встроенный - ядро базы данных - это библиотека, связанная с приложением, а не отдельный процесс сервера. Небольшой размер кода - важно для мобильных приложений, которые часто загружаются по сотовым сетям. Быстрое время запуска - важно, потому что мобильные устройства имеют относительно медленные процессоры. Низкое использование памяти - типичные наборы мобильных данных относительно невелики, но некоторые документы могут иметь большие мультимедийные вложения. Хорошая производительность - точные цифры зависят, конечно, от ваших данных и приложения.
Документно-ориентированные средства:
Хранит записи в гибком формате JSON, не требуя предопределенных схем или нормализации. Документы могут иметь двоичные вложения произвольного размера, например, мультимедийный контент. Формат данных приложения может развиваться с течением времени без необходимости явных миграций. Индексирование MapReduce обеспечивает быстрый поиск без необходимости использования специальных языков запросов.
Синхронизируемый означает:
Любые две копии базы данных могут быть синхронизированы с помощью эффективного, надежного, проверенного алгоритма репликации. Синхронизация может быть по требованию или непрерывной (с задержкой в несколько секунд). Устройства могут синхронизироваться с подмножеством большой базы данных на удаленном сервере. Механизм синхронизации поддерживает прерывистые и ненадежные сетевые подключения. Конфликты могут быть обнаружены и разрешены с логикой приложения в полном контроле слияния. Деревья редакций допускают сложные топологии репликации, в том числе сервер-сервер (для нескольких центров обработки данных) и одноранговый, без потери данных или ложных конфликтов. Couchbase Lite предоставляет собственные API для бесшовной разработки под iOS (Objective-C) и Android (Java). Кроме того, он включает в себя плагин Couchbase Lite для PhoneGap,
Вы можете узнать больше на Couchbase Lite
и Couchbase Server
Это идет к следующей большой вещи.
источник
Говоря о производстве, бесшовном отказоустойчивости / восстановлении требуется няня
1 - Couchbase, плавного переключения / восстановления не требуется, требуется ручное вмешательство.
восстановление баланса занимает слишком много времени, слишком большой риск, если потеряется более одного узла.
2- Монго с осколками, восстановление данных после потери сервера конфигурации, задача не из легких
источник
Adobe использует MongoDB для своего предстоящего выпуска Adobe Experience Manager (ранее Day CQ ) в качестве основного ядра БД.
Несколько клиентов в агентстве, в котором я работаю, используют CouchDB для проектов для крупных клиентов.
Оба, на мой взгляд, отличные и жизнеспособные БД. :)
источник
Вот список производственных сайтов с mongoDB
и более...
Извлечено из: http://lineofthought.com/tools/mongodb
Вы также можете проверить другие базы данных или инструменты там.
источник
У MongoDB есть некоторые проблемы с лицензированием предприятий, я не уверен в деталях, но наш юридический отдел недвусмысленно сказал нам, что нам не разрешили использовать MongoDB в любом из наших продуктов.
источник