Мы планируем создать центры обработки данных по всему миру и переключиться на базу данных NoSQL, такую как MongoDB, для поддержки распределения наших данных по этим центрам обработки данных (и, в качестве приятного побочного эффекта, ввести дополнительную избыточность, аварийное переключение и т. Д.).
Однако причина создания глобальных центров обработки данных в первую очередь заключается в ускорении времени отклика для наших пользователей в соседних странах, а не в функциях аварийного переключения. Веб-приложение предназначено для использования в масштабах компании, и лишь немногие из этих компаний работают в глобальном масштабе. Таким образом, поскольку многим пользователям на одной стороне мира никогда не потребуется доступ к данным этих пользователей на другой стороне, было бы неплохо, если бы данные могли храниться на серверах, которые являются локальными для большинства пользователей.
Я надеялся, что смогу использовать функции сегментирования mongodb, чтобы данные распределялись глобально, как это, при этом позволяя доступ и обслуживание из одного места (что было бы медленным и запрашивало бы международные серверы). К сожалению, единственное упоминание о таком поведении, которое я могу найти, - это упоминание «интеллектуального самонаведения» в блоге MongoDB и ничего больше. Хотя можно было бы просто синхронизировать все в глобальном масштабе, это кажется довольно неэффективным и неизмеренная пропускная способность не является вариантом по крайней мере в одной из стран.
Может ли mongodb поддерживать такое поведение? Любая дополнительная информация о том, как заставить этот тип настройки работать (или почему я не должна заставить эту настройку работать, так как это приведет к смерти котят и т. Д.), Была бы очень признательна.
Некоторые из них уже реализованы в MongoDB, см. Достойную запись здесь:
http://www.mongodb.org/display/DOCS/Data+Center+Awareness
Что касается маршрутизации чтения, в драйверах есть некоторые реализации, но она не встроена. Полная версия функции чтения локализованных данных предназначена для выпуска с 2.2.
Если вы хотите взглянуть на две наиболее тесно связанные проблемы с главным сервером, вы можете взглянуть здесь:
https://jira.mongodb.org/browse/SERVER-3062 https://jira.mongodb.org/browse/SERVER-3358
И, конечно же, вы можете проголосовать за эту функцию, чтобы поднять ее в списке :)