Войти Регистрация
Data base

261. Упал канал L7: какие станции остались без шлюза

Сложная

Neo4j · Neo4j 5.26.20

Инженеры МТС, которые контролируют качество транспортной сети, решают две задачи. Прямая — по какому пути сервис базовой станции проходит через сеть. Обратная — какие сервисы зависят от канала, чтобы при аварии сразу понимать, кого она задела. Модель сети перенесли в Neo4j: узлы — маршрутизаторы и коммутаторы, рёбра — каналы.

В нашей модели: (:BS {name}) — базовая станция, (:Router), (:Gateway) — шлюз, связи [:LINK {id}] без смыслового направления. Пути до шлюза не длиннее 8 каналов.

Пришла авария по каналу L7. Нужны станции, у которых не осталось ни одного пути до шлюза в обход L7. Станции с резервом в список попадать не должны. Имена по алфавиту.

В работе: Оценка влияния аварии на транспортной сети оператора связи.

Как проверяем Движка Neo4j в браузере пока нет, поэтому здесь не запрос, а выбор решения. Выберите один вариант. После ответа — почему каждый вариант верный или нет. Ответ один на подход: после него показываем разбор.
пути переменной длиныNOT EXISTSnone()резервные пути

Источник: статья инженера МТС на Хабре о модели транспортной сети в Neo4j, 2020. Условие пересказано своими словами.

Какой запрос вернёт станции, которые после обрыва L7 не имеют ни одного пути до шлюза?

  • Станции, для которых не существует пути до шлюза без L7: NOT EXISTS и none() по связям пути
  • Станции, у которых есть путь до шлюза через L7
  • Станции, у которых кратчайший путь до шлюза идёт через L7
  • Станции, к которым L7 подключён напрямую