apache / apache/hugegraph-computer

improve(core): vertices and edges loading optimization

Aperta
#288 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
feature
Lingua principale
Java
Stelle
65
Fork
52
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

### 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.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia leggendo DefaultInputFilter e HugeVertexFetcher, quindi esamina l’API del traverser utilizzata da iteratorVertices per determinare se è supportata la selezione delle proprietà lato server. L’issue è completa quando il caricamento di vertici ed edge può richiedere solo le proprietà selezionate, invece di caricare tutte le proprietà e cancellarle successivamente.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
distributed-systems
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
30/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.