Skip to content
Discussion options

You must be logged in to vote

Thanks for one of the most detailed reports we have had. I went through the code paths your pipeline exercises, and the headline is that the trade-off you describe is not real: both horns are the same root cause, and neither is on the batch-size axis. Four issues came out of it.

What is actually happening

Heap growth is proportional to stream length, not to batch size. GraphBatch keeps two caches that map every distinct vertex an edge touches, and neither is cleared until close(). At roughly 80-90 bytes per entry in each of the two maps, a stream that touches 100M distinct vertices holds 16-18 GB before anything else. The deferred incoming-edge buffer adds 36 bytes per edge and is drained…

Replies: 1 comment 1 reply

Comment options

You must be logged in to vote
1 reply
@keygenx
Comment options

Answer selected by keygenx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants