Назад | Перейти на главную страницу

PostgreSQL и Mongodb в производстве

У нас есть продукт, который использует Postgres для данных RDBMSish (учетные записи, биллинг и т. Д.) И MongoDB для каждого из данных учетных записей (которые, очевидно, не могут поддерживаться в Postgres).

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

Экземпляр (облачный сервер), содержащий обе базы данных вместе, или мы должны разделить экземпляры, и каждый должен иметь свою собственную машину? (Очевидно, что второй вариант всегда лучше)

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

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

Однако есть предостережения:

  • Если в системе достаточно ОЗУ для обеих баз данных, чтобы полностью кэшировать свои базы данных в ОЗУ, они могут успешно сосуществовать при достаточном количестве операций ввода-вывода.
  • Если базы данных очень асимметричны (небольшая база данных метаданных учетной записи в psql, база данных учетной записи размером с монстра в mongo), вы можете поделиться, если у вас достаточно оперативной памяти для быстрой производительности Mongo и бит, необходимый для psql.
  • Если обе базы данных достаточно велики, что не могут поместиться в ОЗУ при работе сами по себе, то наличие двух серверов настоятельно рекомендуется.

Если вы все же решите консолидироваться на Mongo в будущем, вы можете с радостью сократить до одного сервера для БД.