In the Dgraph paper, it is mentioned that entities are sharded randomly across servers and they carry relationships with other entities with themselves. This results in a high fan-out result set in intermediate steps of a graph query causing broadcasting on servers and high latency to perform joins.
I do not understand the meaning of fan-out here.
I tried understanding from the basics and this is what I found:
- The large number of fan-out requests in the query can cause issues such as network congestion, tail-latency, and CPU-bounding. Click here for the paper.
- Fan-in is a measure of the number of functions or methods that call some other function or method (say X). Fan-out is the number of functions that are called by function X. It is used as a call graph based metrics. Click here for the source.
I am not certain how the above to points relate to an entity based graph as discussed in the Dgraph paper. Is it the case that entities have many relationships with other entities and so, there are many edges attached to one entity?