2015-03-31 3 views
0

Давайте предположим, что sharded коллекция с ключом шарда под названием «SKEY» и есть другая индексируется, но не шард ключ с именем «Айки»Где хранится информация об индексе коллекции mongodb?

, если запрос, как это,

db.collection.find({"ikey": "something"}) 

Он будет искать docs через все осколки, потому что это не осколок.

На этом этапе, как монгоры знают, что его нужно искать через осколки? где хранится эта индексная информация? configServer? или каждый отложенный сервер mongod?

ответ

0

Показатели хранятся на индивидуальном осколке. Это касается как ключа осколка, так и всех других индексов.

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

Так что если вы запросите ключ осколка, mongos может идентифицировать осколки, которые хранят данные, и отправляет запрос на осколки, которые хранят данные с определенным диапазоном клавиш. Затем осколки возвращают данные в mongos, которые при необходимости сортируют возвращаемые данные.

Mongos знает, что он должен отправить запрос ко всем осколкам просто потому, что запрос не содержит ключа осколка для соответствующей коллекции.

+0

спасибо, не могли бы вы дать мне ссылку на документ, связанный с этим вопросом? –

+0

У меня есть подробный вопрос после прочтения вашего ответа. давайте подумаем о счетчике, если индекс проиндексирован, и значение 1,3, хранящееся при значениях shard1 и 2,4, сохраненных в shard2. Это может произойти, если ключ счета не является ключом осколка. то в каких диапазонах хранится каждый осколок? –

+0

1 и 3 на осколках 1, 2 и 4 на осколке 2. Подробные сведения см. В [документах, касающихся маршрутизации запросов с закрытыми кластерами] (http://docs.mongodb.org/manual/core/sharded-cluster-query-router /) –

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