Различное поведение между neo4j-gremlin-bolt, Tinkergraph и Neo4j-gremlin

Я наблюдаю различное поведение между Tinkergraph и Neo4j-gremlin от реализации Tinkerpop3 neo4j-gremlin-bolt Neo4j, особенно в этом фрагменте кода:

// different Tinkerpop impls
Graph graph = new Neo4JGraph(driver, vertexIdProvider, edgeIdProvider);
// Graph graph = Neo4jGraph.open("C:\\tmp\neo");
// Graph graph = TinkerGraph.open();

GraphTraversalSource g = graph.traversal();

String label = "Person";

for (int i = 0; i < 10; i++) {
  System.out.println("Before " + +g.V().toList().size());
  graph.addVertex(label);
  System.out.println("After " + +g.V().toList().size());
}

// if graph is transactional
 graph.tx().commit();

Я ожидал, что число вершин увеличивается от 1 до 10, что я вижу для Tinkergraph и Neo4j-gremlin. Что я вижу с neo4j-gremlin-bolt, так это то, что счетчик всегда равен 1 (после первого AddVertex). После принятия 10 экземпляров появляются в базе данных Neo4J (как и ожидалось). При повторном запуске счетчик всегда равен 11 (после первого addVertex) и после фиксации появляется 20 экземпляров.

Единственный способ заставить это работать должным образом с neo4j-gremlin-bolt - это совершать () и закрывать () график после каждого addVertex, что кажется неправильным.

Это похоже на фундаментальное поведение, поэтому я предполагаю, что упускаю что-то очевидное.

neo4j-gremlin-bolt - v0.2.18

тинкерграф-гремлин - v3.2.4

neo4j-gremlin - v3.2.4

1 ответ

Оказывается, ошибка в обработке neo4j-gremlin-bolt временных объектов: https://github.com/SteelBridgeLabs/neo4j-gremlin-bolt/issues/52

Исправление ожидается в ближайшее время.

Другие вопросы по тегам