Эта ошибка означает, что некоторые связи между узлами, которые произошли во время обработки вашего запроса, по какой-то причине потерпели неудачу.
Существует множество возможных причин, по которым это может произойти.Иногда это может быть вызвано плохой сетью или другими проблемами среды.Если v_default_node0008 был отключен, например, во время выполнения этого запроса, вы можете увидеть это сообщение.В других случаях это может быть признаком ошибки Vertica, и в этом случае вам придется обратиться в службу поддержки и / или к администратору.
Обычно при выполнении плана запроса поток управления происходит изснизу вверх.На самых низких уровнях плана различные сканирования считываются из проекций, и, когда нет данных для подачи операторам выше сканирования, они останавливаются, что приводит к остановке соседних операторов до тех пор, пока, в конечном счете, не станет корневым оператором.останавливается и запрос завершается.
Иногда возникает необходимость завершить запрос сверху вниз.Когда у вас есть много узлов, каждый из которых передает данные между несколькими потоками для обслуживания вашего запроса, для Vertica может быть сложно детализировать все атомарно.Если поток, отправляющий данные, останавливается до того, как поток, получающий данные, ожидал этого (поскольку получатель еще не осознал, что план еще не остановлен), он может записать это сообщение об ошибке.Обычно, когда это происходит, это безобидно;вы увидите это в vertica.log, но он не доходит до приложения.Если один из них попадает в приложение, то это, вероятно, ошибка Vertica.
Так когда же это может произойти?
Один из распространенных сценариев - когда у вас есть предложение LIMIT.Разные сканы, производящие строки в разных узлах, не могут координировать напрямую, поэтому они должны быть указаны операторами, находящимися выше в плане, когда будет достигнут предел.
Это также происходит, когда запрос отменяется.Отмена может произойти по многим причинам - по запросу приложения, из dba, выполняющей interrupt_statement по вашему запросу, или через политику пула ресурсов.Например, если вы превысили RUNTIMECAP для своего пула ресурсов, запрос автоматически отменяется, если он превышает настроенный порог времени выполнения.
Могут быть и другие, но это наиболее распространенные случаи.Не всегда будет очевидно, что с вами происходят ограничения или отмены.Запрос может быть переписан так, чтобы включать ограничение на разных этапах, и политика приложения и / или администратора базы данных может влиять на вещи под прикрытием.
Хотя это не решит вашу проблему напрямую, мы надеемся, что она даст вам дополнительный контекст и идеи для дальнейшего устранения неполадок.Вероятно, проблема будет очень специфичной для вашего варианта использования, среды и данных и может быть ошибкой.Если вы не можете добиться прогресса, я бы посоветовал обратиться в службу поддержки Vertica, поскольку они будут более подготовлены, чтобы помочь вам разобраться в этом дальше.