On finding and updating shortest paths distributively