При выставлении чека до операторов addE()
и addV()
я понял, что график не был полностью пустым после drop()
.Кажется, это занимает несколько секунд.
Поэтому я ставлю цикл после drop()
, пока график не станет полностью пустым, прежде чем я продолжу операции add
.
def drop_graph(client):
client.submitAsync("g.V().drop()").result()
remain = None
while remain != 0:
callback = client.submitAsync("g.V().count()")
for result in callback.result():
previous = remain
remain = result[0]
print('remaining nodes {}'.format(remain))
if remain > 0:
sleep(1)
if previous == remain:
client.submitAsync("g.V().drop()").result()
РЕДАКТИРОВАТЬ: Кажется, есть ошибка либо в gremlin.python.driver
, либо на бэкэнд-сервере Gremlin - в некоторых случаях не было никакого прогресса в отбрасывании всех вершин.Для этого я добавил кик-старт для другого drop()
на случай, если оставшиеся узлы не уменьшатся.