Neo4j · Neo4j 5.26.20
Инженеры МТС, которые контролируют качество транспортной сети, решают две задачи. Прямая — по какому пути сервис базовой станции проходит через сеть. Обратная — какие сервисы зависят от канала, чтобы при аварии сразу понимать, кого она задела. Модель сети перенесли в Neo4j: узлы — маршрутизаторы и коммутаторы, рёбра — каналы.
В нашей модели: (:BS {name}) — базовая станция, (:Router), (:Gateway) — шлюз, связи [:LINK {id}] без смыслового направления. Пути до шлюза не длиннее 8 каналов.
Пришла авария по каналу L7. Нужны станции, у которых не осталось ни одного пути до шлюза в обход L7. Станции с резервом в список попадать не должны. Имена по алфавиту.
В работе: Оценка влияния аварии на транспортной сети оператора связи.
Источник: статья инженера МТС на Хабре о модели транспортной сети в Neo4j, 2020. Условие пересказано своими словами.
Какой запрос вернёт станции, которые после обрыва L7 не имеют ни одного пути до шлюза?
- Станции, для которых не существует пути до шлюза без L7: NOT EXISTS и none() по связям пути
- Станции, у которых есть путь до шлюза через L7
- Станции, у которых кратчайший путь до шлюза идёт через L7
- Станции, к которым L7 подключён напрямую