When an input is given in the format where
A A_value B B_value C C_value
which means that vertex A with value of A_value has an outgoing edge to B and C with edge values of B_value and C_value respectively, currently implementation of Giraph would only detect A at superstep 0, thus getNumVertices() will return 0 at superstep 0.
Current implementation would create B, C after the messages have been sent to B and C, which then updates getNumVertices() for all supersteps > 0.
Now the problem with this approach is as follows.
If there is an algorithm that assumes it does not alter the graph in any way and saves the number of vertices at superstep 0, it will result in a wrong output. (Green-Marl port of Giraph does this...)
So, the option is to either not allow this kind of input or create all the vertices prior to superstep 0.
It would be good if I can get some inputs to this.