У меня есть 2 коллекции: A (3,8 млн документов) и B (1,7 млн документов)
У меня есть PHP-скрипт, который я запускаю из оболочки, который:
- циклынад каждой записью в A
- ~ 60% времени он выполняет findOne для B (используя _id)
- выполняет некоторые базовые вычисления, создавая массив php
как только цикл по всем документам в a завершен:
4) цикл по массиву php
5) вставка в коллекцию C
во время (1), я последовательноget: PHP Неустранимая ошибка: необработанное исключение «MongoCursorException» с сообщением «Курсор не найден» Последний обработанный элемент был # 8187 из 3872494.
real 1m25.478s
user 0m0.076s
sys 0m0.064s
Повторный запуск без изменения в коде, исключение полученоброшенный в предмет # 19826/3872495
real 3m19.144s
user 0m0.120s
sys 0m0.072s
И снова # 8181/387249
real 1m31.110s
user 0m0.036s
sys 0m0.048s
Да, я понимаю, что могу (и, вероятно, должен) поймать исключение ...но ... почему его даже бросают?Особенно в такое разное время / глубину в базу данных.
Если это поможет, моя установка - это набор из трех узлов (2 + arb).Я перевел вторичное устройство в автономный режим и попыталось запустить только основное.Те же результаты (различное количество обработанных результатов и раз, но всегда выдает исключение Cursor Not Found).