Это вопрос относительно TTL, установленного на ребрах в JanusGraph.Я настроил тест, в котором я создаю метку ребра edgeLabel
с продолжительностью TTL - в моем случае 5 секунд.
Затем я создаю ребро с этой меткой и жду, пока истечет срок действия TTL.Однако, похоже, что вершина не была удалена из графа.Ниже приведен пример, который проливает некоторый свет на то, что я пытаюсь сделать.
Пример
Скажем, g
- это объект обхода TinkerPop.У меня есть 2 вершины с полем свойства _id
v1
и v2
.После создания ребра edgeLabel
между v1
и v2
и ожидания 10 секунд я вижу, что к вершинам по-прежнему прикреплено ребро:
g.V().has("_id", "v1").next().edges(Direction.BOTH, "edgeLabel").hasNext() == true
Дополнительно, проверкаподсчет числа ребер на графике до и после ожидания в течение 10 секунд приводит к одинаковому подсчету, используя следующее:
g.E().count().next().longValue()
Я подтвердил, что значение TTL установленоправильно с JanusGraphManagement
:
final JanusGraphManagement mgmt = graph.openManagement();
mgmt.getTTL(mgmt.getEdgeLabel("edgeLabel")).getSeconds() == 5
Конфигурация / Настройка
Я запускаю JanusGraph с Cassandra в качестве внутреннего хранилища базы данных со свойством storage.backend = cql
противлокальный экземпляр базы данных со всеми остальными свойствами по умолчанию.
Мой вопрос: почему не удаляется край?Есть ли что-то, что мне нужно сделать, чего мне не хватает, например, обновить состояние базы данных графа?
Насколько я знаю, TTL должен работать с Cassandra в качестве хранилища внутренней базы данных, и это должно бытьдостаточно, чтобы убедиться, что TTL установлен правильно для ребра с заданной меткой в JanusGraphManagement.