incubator-hugegraph-computer icon indicating copy to clipboard operation
incubator-hugegraph-computer copied to clipboard

improve(core): vertices and edges loading optimization

Open diaohancai opened this issue 1 year ago • 0 comments

Feature Description (功能描述)

ComputerOptions.INPUT_FILTER_CLASS default value is DefaultInputFilter. org.apache.hugegraph.computer.core.input.filter.DefaultInputFilter

public class DefaultInputFilter implements InputFilter {

    @Override
    public Vertex filter(Vertex vertex) {
        vertex.properties().clear();
        return vertex;
    }

    @Override
    public Edge filter(Edge edge) {
        edge.properties().clear();
        return edge;
    }
}

Load all properties first, then clear.

Could we specify some properties when loading vertices or edges? May could improve performance. Just like mysql:

select a, b, c

instead of

select *

org.apache.hugegraph.computer.core.input.hg.HugeVertexFetcher

    @Override
    public Iterator<Vertex> fetch(InputSplit split) {
        Shard shard = toShard(split);
        return this.client().traverser().iteratorVertices(shard,
                                                          this.pageSize());
    }

But it seems that the traverser api does not yet support specifying some properties to load vertices or edges on the server side.

diaohancai avatar Nov 22 '23 10:11 diaohancai