@Override public void readFieldsRequest(DataInput input) throws IOException { int numPartitions = input.readInt(); partitionVertexData = new PairList<Integer, B>(); partitionVertexData.initialize(numPartitions); while (numPartitions-- > 0) { final int partitionId = input.readInt(); B vertexIdData = createVertexIdData(); vertexIdData.setConf(getConf()); vertexIdData.readFields(input); partitionVertexData.add(partitionId, vertexIdData); } }
/** * This method tries to get a partition data from the data cache. * If null, it will create one. * * @param workerInfo The remote worker destination * @param partitionId The remote Partition this message belongs to * @return The partition data in data cache */ private VertexIdData<I, T> getPartitionData(WorkerInfo workerInfo, int partitionId) { // Get the data collection B partitionData = getData(partitionId); if (partitionData == null) { partitionData = createVertexIdData(); partitionData.setConf(getConf()); partitionData.initialize(getInitialBufferSize(workerInfo.getTaskId())); setData(partitionId, partitionData); } return partitionData; } }