Записывает через сегментированную реплику с двумя осколками, вызывает странные чтения того же объема на первичном из второго шарда - PullRequest
0 голосов
/ 13 сентября 2011

Я понимаю, что этот вопрос сбивает с толку. Я тестирую свою топологию шардинга, и у меня есть:

Осколок А (узел1 (основной), узел2 (дополнительный), узел3 (дополнительный))

Осколок B (узел 4 (основной), узел 5 (дополнительный), узел 6 (дополнительный))

При 0 действиях с базой данных, если я начинаю записывать много данных в изолированную коллекцию, я вижу все операции записи на всех узлах в сегменте A (потому что этот особый блок записывается там). Странно то, что на узле 4 (основной в сегменте B) я вижу тот же объем запросов read , выполняемых в то же время, когда выполняются записи для сегмента A. Что может быть причиной такого поведения

1 Ответ

0 голосов
/ 13 сентября 2011

Если все записи идут в осколок А, то единственное основное действие, которое вы должны увидеть, - это эти узлы.(то есть: пишет в узел 1, получает в узел 2/3).

Два больших вопроса:

  1. Как вы получаете статистику?(mongostat?)
  2. Проверяет ли ваш процесс импорта существующие записи перед вставкой?Возможно ли, что вы отправляете запросы, которые должны выполняться против обоих шардов?Любой запрос, не относящийся к ключу шарда, может привести к тому, что запрос будет отправлен обоим (всем) шардам.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...