MongoDB или CouchDB — подходят для производства?[закрыто]

StackOverflow https://stackoverflow.com/questions/895762

  •  23-08-2019
  •  | 
  •  

Вопрос

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

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

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

  1. Кто сегодня использует MongoDB или CouchDB в производственной среде?

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

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

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

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

Это было полезно?

Решение

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

Бизнесинсайдер использует mongo в производстве уже больше года.Они используют его для всего: от пользователей и сообщений в блогах до каждого изображения на сайте.

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

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

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

Другие советы

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

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

ИсточникForge использует MongoDB.Видеть эта презентация или читайте здесь.

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

Нашими целями были:

  1. Легкая репликация с главной базы данных на несколько клиентов с разными документами.

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

факты:

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

но и:

  1. Понимание карты/сокращения и ограничений отсутствия соединений довольно сложно.
  2. Никаких операций с данными типа «удалить где» или «обновить где» без внешних программ.
  3. Репликация работает хорошо, если нет проблем;тогда действительно сложно выяснить в чем была причина (для новичков)
  4. Установка CouchDB без двоичных файлов (да, такие есть, но не для каждой ОС/версии) может быть сложной, если вы не фанат Linux.Но сообщество CouchDB помогает (#couchdb), и, к счастью, есть компании (cloudant, iriscouch), которые предлагают услуги как бесплатно, так и крупному бизнесу.
  5. CouchDB движется вперед, поэтому происходит множество изменений (улучшений), которые могут изменить ваш способ работы.Но основные вещи остаются стабильными.

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

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

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

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

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

А Выпуск исходного кода CouchDB 0.11 доступен здесь. Есть бинарные установщики и другие вкусности, ссылки на которые можно найти здесь.

Я ничего не знаю о MongoDB, но из Часто задаваемые вопросы по CouchDB:

Готов ли CouchDB к производству?

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

Также несколько ссылок:

В производстве мы используем Couchdb, и с тех пор проект перешёл под эгидой Apache.

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

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

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

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

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

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

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

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

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

Из своего опыта я усвоил некоторую кривую обучения, которая заключается в том, чтобы в полной мере использовать представления (или также известные как постоянные представления).Представления должны быть «маленьким фильтром» той части базы данных, которая будет часто вызываться.

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

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

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

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

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

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

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

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

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

Легкость означает:

Встроенное: ядро ​​базы данных представляет собой библиотеку, связанную с приложением, а не отдельный серверный процесс.Небольшой размер кода — важен для мобильных приложений, которые часто загружаются через сотовые сети.Быстрое время запуска — это важно, поскольку мобильные устройства имеют относительно медленные процессоры.Низкое использование памяти — типичные наборы мобильных данных относительно невелики, но некоторые документы могут иметь большие мультимедийные вложения.Хорошая производительность — точные цифры, конечно, зависят от ваших данных и приложения.

Документоориентированность означает:

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

Синхронизируемый означает:

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

Вы можете изучить больше на Коучбейс Лайт

и Сервер Couchbase

Это будет следующим большим событием.

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

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

Adobe использует МонгоБД для их предстоящего выпуска Менеджер по работе с Adobe (ранее День CQ) в качестве основного механизма БД.

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

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

Вот список производственных сайтов, развернутых с mongoDB.

  • Нью-Йорк Таймс:Использование его в приложении для создания форм для отправки фотографий.Отсутствие схемы в Mongo дает производителям возможность определять любую комбинацию пользовательских полей формы.
  • ИсточникForge:используется для внутреннего хранения на главных страницах SourceForge, страницах проектов и страницах загрузки для всех проектов.
  • Bit.ly
  • Этси
  • ИГН:обеспечивает аналитику трафика IGN в реальном времени и API контента RESTful.
  • Джастин.тв:обеспечивает внутренние аналитические инструменты Justin.tv для определения вирусности, удержания пользователей и общей статистики использования, которую не могут предоставить готовые решения.
  • Плакатный
  • Интуиция
  • Форсквер:Для хранения большинства данных в FourSquare используются сегментированные базы данных Mongo.
  • Бизнес-инсайдер:Пользуюсь с начала 2008 года.Все данные сайта, включая публикации, комментарии и даже изображения, хранятся в MongoDB.
  • Гитхаб:используется для приложения внутренней отчетности.
  • Эксперт:перенесли свой сайт с Cold Fusion и SQL Server на Drupal 7 и MongoDB.
  • Грувшарк:в настоящее время использует Mongo для управления более чем одним миллионом уникальных пользовательских сессий в день.
  • Баззфид
  • Дискус
  • Эвите:Используется для аналитики и быстрой отчетности.
  • Квадратное пространство
  • Шаттерфляй:используется для различных требований к постоянному хранению данных в Shutterfly.MongoDB помогает Shutterfly создать непревзойденный сервис, который обеспечивает более глубокие и личные отношения между клиентами и теми, кто наиболее важен в их жизни.
  • Топси
  • Поделись этим
  • Монгохк:предоставляет хостинговую платформу для MongoDB, а также использует MongoDB в качестве серверной части для своего сервиса.На странице наших хостинг-центров представлена ​​дополнительная информация о MongoHQ и других вариантах хостинга MongoDB.

и более...

Извлечен из:http://lineof Thought.com/tools/mongodb

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top