private void handleEdge(final Edge edge, final GlobalPhysicalGraph graph) {
		List<GlobalPhysicalVertex> srcVertices = graph.findGlobalPhysicalVertex(edge.getSrcVertex());

		for (GlobalPhysicalVertex srcVertex : srcVertices) {
			if (edge.getDestDistributingMode() == VertexDistributingMode.LOCAL_FULL) {
				GlobalPhysicalVertex destVertex = graph.findGlobalPhysicalVertex(edge.getDestVertex(), srcVertex.getWorkerServerSignature());
				graph.addEdge(srcVertex, edge.getSrcQueueId(), destVertex, edge.getDestQueueId(), edge);
			}
			else {
				List<GlobalPhysicalVertex> destVertices = graph.findGlobalPhysicalVertex(edge.getDestVertex());
				for (GlobalPhysicalVertex destVertex : destVertices) {
					graph.addEdge(srcVertex, edge.getSrcQueueHandle().getQueueId(), destVertex, edge.getDestQueueHandle().getQueueId(), edge);
				}
			}
		}
	}