@Override public void writeRequest(DataOutput output) throws IOException { output.writeInt(workerPartitions.getSize()); PairList<Integer, ExtendedDataOutput>.Iterator iterator = workerPartitions.getIterator(); while (iterator.hasNext()) { iterator.next(); output.writeInt(iterator.getCurrentFirst()); WritableUtils.writeExtendedDataOutput( iterator.getCurrentSecond(), output); } }
@Override public void writeRequest(DataOutput output) throws IOException { output.writeInt(partitionVertexData.getSize()); PairList<Integer, B>.Iterator iterator = partitionVertexData.getIterator(); while (iterator.hasNext()) { iterator.next(); output.writeInt(iterator.getCurrentFirst()); iterator.getCurrentSecond().write(output); } }
WritableRequest writableRequest = new SendWorkerVerticesRequest( configuration, vertexIterator.getCurrentSecond()); doRequest(vertexIterator.getCurrentFirst(), writableRequest); WritableRequest writableRequest = new SendWorkerEdgesRequest<I, E>( edgeIterator.getCurrentSecond()); doRequest(edgeIterator.getCurrentFirst(), writableRequest);
/** * Flush the rest of the messages to the workers. */ public void flush() { PairList<WorkerInfo, PairList<Integer, VertexIdMessages<I, M>>> remainingMessageCache = removeAllMessages(); PairList<WorkerInfo, PairList< Integer, VertexIdMessages<I, M>>>.Iterator iterator = remainingMessageCache.getIterator(); while (iterator.hasNext()) { iterator.next(); WritableRequest writableRequest = new SendWorkerMessagesRequest<I, M>( iterator.getCurrentSecond()); totalMsgBytesSentInSuperstep += writableRequest.getSerializedSize(); clientProcessor.doRequest( iterator.getCurrentFirst(), writableRequest); } }
@Override public void flush() { super.flush(); PairList<WorkerInfo, ByteArrayOneMessageToManyIds<I, M>> remainingMsgVidsCache = removeAllMsgVids(); PairList<WorkerInfo, ByteArrayOneMessageToManyIds<I, M>>.Iterator msgIdsIterator = remainingMsgVidsCache.getIterator(); while (msgIdsIterator.hasNext()) { msgIdsIterator.next(); WritableRequest writableRequest = new SendWorkerOneMessageToManyRequest<>( msgIdsIterator.getCurrentSecond(), getConf()); totalMsgBytesSentInSuperstep += writableRequest.getSerializedSize(); clientProcessor.doRequest( msgIdsIterator.getCurrentFirst(), writableRequest); } } }
@Override public int getSerializedSize() { // 4 for number of partitions int size = super.getSerializedSize() + 4; PairList<Integer, ExtendedDataOutput>.Iterator iterator = workerPartitions.getIterator(); while (iterator.hasNext()) { iterator.next(); // 4 bytes for the partition id and 4 bytes for the size size += 8 + iterator.getCurrentSecond().getPos(); } return size; } }
@Override public int getSerializedSize() { int size = super.getSerializedSize() + 4; PairList<Integer, B>.Iterator iterator = partitionVertexData.getIterator(); while (iterator.hasNext()) { iterator.next(); size += 4 + iterator.getCurrentSecond().getSerializedSize(); } return size; } }
@Override public void doRequest(ServerData serverData) { PairList<Integer, VertexIdMessages<I, M>>.Iterator iterator = partitionVertexData.getIterator(); while (iterator.hasNext()) { iterator.next(); serverData.getIncomingMessageStore(). addPartitionMessages(iterator.getCurrentFirst(), iterator.getCurrentSecond()); } } }
@Override public void doRequest(ServerData<I, V, E> serverData) { PairList<Integer, ExtendedDataOutput>.Iterator iterator = workerPartitions.getIterator(); while (iterator.hasNext()) { iterator.next(); serverData.getPartitionStore() .addPartitionVertices(iterator.getCurrentFirst(), iterator.getCurrentSecond()); } }
@Override public void doRequest(ServerData serverData) { PairList<Integer, VertexIdEdges<I, E>>.Iterator iterator = partitionVertexData.getIterator(); while (iterator.hasNext()) { iterator.next(); serverData.getEdgeStore() .addPartitionEdges(iterator.getCurrentFirst(), iterator.getCurrentSecond()); } } }