apache / apache/hugegraph-computer
improve(core): vertices and edges loading optimization
- 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