2015-09-09 3 views
0

Я создал тест MongoDB Sharding с 1 Config Server, 1 Router и 2 Shards.Как получить результаты из разных осколков и той же коллекции

Я создал сервер конфигурации с mongod --configsvr --dbpath /data/configdb --port 27019

И я бегу mongos с mongos --configdb <CONFIG SERVER IP>:27019. Я подключил осколки, базу данных и коллекции. Когда я запрашиваю очерченную коллекцию, курсор не получает результатов от двух осколков, он получает только 1 осколок. Согласно MongoDB Sharding Document, я могу распространять коллекцию на разные осколки, но результаты не удовлетворяли этой информации.

Что я делаю неправильно? Каков правильный способ получить результаты из разных осколков с тем же запросом?

+1

Это действительно все о том, что вы выбираете для ключа осколка и ваших целей. Если вы действительно «хотите» разбросать записи и читать по всем осколкам, тогда выбранный ключ осколка должен отразить это. Для действительно равномерного распределения рассмотрим [хэшированный осколочный ключ] (http://docs.mongodb.org/master/tutorial/shard-collection-with-a-hashed-shard-key/). –

ответ

1

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

Для запросов, которые не могут быть удовлетворены результатами только одного осколка, Mongo автоматически запрашивает данные из всех осколков.

Смежные вопросы