apache / apache/hugegraph-computer

improve(core): vertices and edges loading optimization

Offen
#288 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
feature
Vorherrschende Sprache
Java
Sterne
65
Forks
52
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

### Feature Description (功能描述)

`ComputerOptions.INPUT_FILTER_CLASS` default value is `DefaultInputFilter`.
`org.apache.hugegraph.computer.core.input.filter.DefaultInputFilter`
```java
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:
```sql
select a, b, c
```
instead of
```sql
select *
```

`org.apache.hugegraph.computer.core.input.hg.HugeVertexFetcher`
```java
@Override
public Iterator 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.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Lies zunächst DefaultInputFilter und HugeVertexFetcher, und untersuche dann die von iteratorVertices verwendete Traverser-API, um festzustellen, ob die serverseitige Auswahl von Properties unterstützt wird. Das Issue ist abgeschlossen, wenn das Laden von Vertices und Edges nur ausgewählte Properties anfordern kann, anstatt alle Properties zu laden und sie anschließend zu löschen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
distributed-systems
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
30/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.