in identity-resolution/notebooks/identity-graph/nepytune/benchmarks/drop_graph.py [0:0]
def vertex_fetcher(g, q,start_offset,bracket_size):
p1 = start_offset
inc = min(bracket_size,MAX_FETCH_SIZE)
p2 = start_offset + inc
org = p1
done = False
nm = threading.currentThread().name
print(nm,"[vertices] Fetching from offset", start_offset, "with end at",start_offset+bracket_size)
vertex_fetch_wait_queue.get()
done = False
while not done:
success = False
while not success:
print(nm,"[vertices] retrieving range ({},{} batch=size={})".format(p1,p2,p2-p1))
try:
vertices = g.V().range(p1,p2).id().toList()
success = True
except:
print("***",nm,"Exception while fetching. Retrying.")
time.sleep(1)
slices = math.ceil(len(vertices)/VERTEX_BATCH_SIZE)
s1 = 0
s2 = 0
for i in range(slices):
s2 += min(len(vertices)-s1,VERTEX_BATCH_SIZE)
q.put(["vertices",vertices[s1:s2]])
s1 = s2
p1 += inc
if p1 >= org + bracket_size:
done = True
else:
p2 += min(inc, org+bracket_size - p2)
size = q.qsize()
print(nm,"[vertices] work done. Queue size ==>",size)
vertex_fetch_wait_queue.task_done()
return