Шардинг на основе местоположения и зоны MongoDB против шардинга на основе идентификатора Couchbase - PullRequest
0 голосов
/ 30 апреля 2020

Я сравниваю Couchbase и MongoDB для моего приложения. Я буду использовать Redis в качестве вторичной базы данных, чтобы хранить гео-точки, а Couchbase или MongoDB - в качестве основной базы данных для всех остальных данных. В этом случае я хочу, чтобы данные были близки к пользователю, но я также хочу, чтобы данные были доступны, когда пользователь переходит в другое место. В этом случае есть 2 варианта.

  1. Использование шардинга и зон MongoDB для определения местоположения. Это довольно мило, но не дает производительности Couchbase, и если пользователь постоянно переезжает в другую страну, будет неудобно импортировать документ в этот осколок. Насколько я знаю, я не нашел способа автоматизировать это. Если есть, пожалуйста, поправьте меня.
  2. Используйте шардинг по умолчанию в Couchbase, но тогда данные не будут ближе к пользователю. Насколько мне известно, нет способа Shard данных, основанных на местоположении, но поправьте меня, если я ошибаюсь.

в случае, когда разрабатывается приложение типа Uber, какое из них предпочтительнее для хранения пользовательских данных?

1 Ответ

1 голос
/ 30 апреля 2020

Для Couchbase: если вы хотите, чтобы данные были ближе к пользователям (т.е. вы хотите использовать несколько центров обработки данных), то вы, вероятно, захотите использовать несколько кластеров Couchbase (один кластер в западном центре обработки данных, один в например, восточный центр обработки данных). Вы можете использовать Couchbase XDCR для синхронизации c данных между кластерами.

Кроме того, если вы хотите «геозонить» данные, чтобы они не реплицировались (скажем, вы хотите храните данные c, заданные для Европы, в своем центре обработки данных в Европе), XDCR Couchbase имеет усовершенствованный механизм фильтрации для предотвращения синхронизации определенных данных. Это решит вашу проблему «пользователь переезжает в другую страну».

...