use of com.baidu.hugegraph.computer.core.io.BytesOutput in project hugegraph-computer by hugegraph.
the class EdgeMessageRecvPartitionTest method writeEdges.
private static byte[] writeEdges(Vertex vertex) throws IOException {
BytesOutput bytesOutput = IOFactory.createBytesOutput(Constants.SMALL_BUF_SIZE);
EntryOutput entryOutput = new EntryOutputImpl(bytesOutput);
Id id = vertex.id();
KvEntryWriter subKvWriter = entryOutput.writeEntry(out -> {
id.write(out);
});
for (Edge edge : vertex.edges()) {
Id targetId = edge.targetId();
subKvWriter.writeSubKv(out -> {
targetId.write(out);
}, out -> {
edge.properties().write(out);
});
}
subKvWriter.writeFinish();
return bytesOutput.toByteArray();
}
use of com.baidu.hugegraph.computer.core.io.BytesOutput in project hugegraph-computer by hugegraph.
the class VertexMessageRecvPartitionTest method writeVertex.
private static byte[] writeVertex(Vertex vertex) throws IOException {
BytesOutput bytesOutput = IOFactory.createBytesOutput(Constants.SMALL_BUF_SIZE);
EntryOutput entryOutput = new EntryOutputImpl(bytesOutput);
entryOutput.writeEntry(out -> {
vertex.id().write(out);
}, out -> {
out.writeUTF(vertex.label());
vertex.properties().write(out);
});
return bytesOutput.toByteArray();
}
use of com.baidu.hugegraph.computer.core.io.BytesOutput in project hugegraph-computer by hugegraph.
the class SorterTest method sortedSubKvBuffer.
private BytesInput sortedSubKvBuffer(Config config) throws Exception {
List<Integer> kv1 = ImmutableList.of(3, 2, 1, 4, 1);
List<Integer> kv2 = ImmutableList.of(1, 3, 1, 5, 1);
List<Integer> kv3 = ImmutableList.of(2, 8, 1, 9, 1);
List<Integer> kv4 = ImmutableList.of(3, 2, 1, 3, 1);
List<Integer> kv5 = ImmutableList.of(2, 5, 1, 8, 1);
List<List<Integer>> data = ImmutableList.of(kv1, kv2, kv3, kv4, kv5);
BytesInput input = SorterTestUtil.inputFromSubKvMap(data);
BytesOutput output = IOFactory.createBytesOutput(Constants.SMALL_BUF_SIZE);
PointerCombiner combiner = SorterTestUtil.createPointerCombiner(IntValue::new, new IntValueSumCombiner());
int flushThreshold = config.get(ComputerOptions.INPUT_MAX_EDGES_IN_ONE_VERTEX);
InnerSortFlusher flusher = new CombineSubKvInnerSortFlusher(output, combiner, flushThreshold);
Sorter sorter = SorterTestUtil.createSorter(config);
sorter.sortBuffer(input, flusher, true);
return EntriesUtil.inputFromOutput(output);
}
use of com.baidu.hugegraph.computer.core.io.BytesOutput in project hugegraph-computer by hugegraph.
the class SorterTestUtil method writeKvMapToOutput.
public static BytesOutput writeKvMapToOutput(List<Integer> map) throws IOException {
BytesOutput output = IOFactory.createBytesOutput(Constants.SMALL_BUF_SIZE);
for (int i = 0; i < map.size(); ) {
writeData(output, map.get(i++));
writeData(output, map.get(i++));
}
return output;
}
use of com.baidu.hugegraph.computer.core.io.BytesOutput in project hugegraph-computer by hugegraph.
the class EntriesUtilTest method testKvEntryWithFirstSubKv.
@Test
public void testKvEntryWithFirstSubKv() throws IOException {
BytesOutput output = IOFactory.createBytesOutput(Constants.SMALL_BUF_SIZE);
EntryOutput entryOutput = new EntryOutputImpl(output);
KvEntryWriter subKvWriter = entryOutput.writeEntry(BytesId.of(100));
subKvWriter.writeSubKv(BytesId.of(1), BytesId.of(1));
subKvWriter.writeSubKv(BytesId.of(1), BytesId.of(1));
subKvWriter.writeSubKv(BytesId.of(1), BytesId.of(1));
subKvWriter.writeSubKv(BytesId.of(1), BytesId.of(1));
subKvWriter.writeFinish();
BytesInput input = EntriesUtil.inputFromOutput(output);
// Read entry from buffer
KvEntry entry = EntriesUtil.kvEntryFromInput(input, true, true);
entry = EntriesUtil.kvEntryWithFirstSubKv(entry);
// Assert subKvEntry size
Assert.assertEquals(4, entry.numSubEntries());
}
Aggregations