3 ms·
Mind explaining the fork vs joins inefficiency thing a bit further? I feel like there's some wisdom here, but I don't think I grocked it
by kjeetgill 5y ago
Mind explaining the fork vs joins inefficiency thing a bit further?
I feel like there's some wisdom here, but I don't think I grocked it
- Ericson2314 5y agoWith forks (in the article DAGs vs trees), pure pulling means you pull the same thing twice. With joins, pushing only works if both sides push at the same time. In general, joins work by a push on one side triggering a pull on the other side, and then both are combined. For forks there should be some subscribe mechanism to turn pulls into pushes that can cheaply fan out to all subscribers. (Side note, the mitigations ought to be completely symmetric. This is a sign there is more to the problem that I am missing.)
- quantified 5y agoI believe joins work without simultaneous pushing. One side can build first, the other side can probe in a pushed fashion after but not necessarily simultaneously. “Trigger” is not necessarily the relationship, between build and probe sides though it could be. The DAG paths that produce/push the probe can be triggered by the completion of the build. “Happens after” is more strictly apt.