Сборка индекса переднего плана MongoDB блокирует вторичные чтения для всех баз данных

Сегодня один из пользователей нашего сегментированного кластера MongoDB 3.0.12 (ошибочно) выпустил сборку индекса переднего плана для своей собственной базы данных (pride_archive_ms), после завершения операции над основным членом каждого набора реплик (shard) он был реплицирован в вторичные

Я ожидал, что база данных, в которой сборка индекса все еще находится в процессе выполнения, будет заблокирована для чтения и записи, но фактически все базы данных для чтения / записи блокируются при использовании предпочтения чтения Secondary или SecondaryPreferred. Любая открытая сессия просто добавляется. Это ожидаемое поведение? Документы сообщают, что:

Любая операция, требующая блокировки чтения или записи во всех базах данных (например, listDatabases), будет ожидать завершения построения индекса переднего плана.

Но в нашем случае это просто find() для баз данных, отличных от той, на которой строится индекс.

Может ли кто-нибудь пролить свет?

Спасибо

1 ответ

Томас Шуберт дал ответ на этот вопрос в:

https://jira.mongodb.org/browse/SERVER-25168

Тем не менее, мне интересно, почему маршрутизатор не обнаруживает заблокированные на чтение вторичные серверы и обслуживает запросы от первичного сервера, когда secondaryPreferred предпочтение чтения указано.

Другие вопросы по тегам