Lazy evaluation is related to pull-based execution. You only execute what is needed, when it is needed. For example:
g.V().has(“name”,’marko”).limit(1)
In a pull-based system, when the first vertex with name=marko is found, the computation halts.
In a push-based system, while the first vertex with name=marko might have already reached has(), the V() step is still pushing out vertices. Thus, extra clock cycles are being used on data that will not be used.
——
Finally, yes, bulking is a very important optimization technique in graph computing. This idea has been captured more elegantly and generally in Stream Ring Theory as “object coefficient.”
Hope that helps,
Marko.