in cassovary-core/src/main/scala/com/twitter/cassovary/graph/ArrayBasedDirectedGraph.scala [225:243]
private def markEmptyNodes(graphInfo: GraphInfo[Seq[Node]]): Future[ArrayBackedSet] = {
log.debug("in markEmptyNodes")
val allNodeIdsSet = new ArrayBackedSet(graphInfo.maxNodeId)
Stat.time(statsReceiver.stat("graph_load_mark_create_empty_nodes")) {
Future.join(
graphInfo.nodesOutEdges.map(nodes =>
futurePool {
nodes foreach { node =>
allNodeIdsSet.add(node.id)
val neighborIds = storedGraphDir match {
case StoredGraphDir.OnlyIn => node.inboundNodes()
case _ => node.outboundNodes()
}
neighborIds foreach { i => allNodeIdsSet.add(i) }
}
})
) map { _ => allNodeIdsSet}
}
}