JanusGraph / JanusGraph/janusgraph
Make GhostVertexRemover easy to use
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 5.8k
- Forks
- 1.2k
- Avg merge
- 13h 53m
- Merged PRs (30d)
- 6
Description
JanusGraph codebase contains a `GhostVertexRemover` that implements `ScanJob` interface, which could be used via:
```java
JanusGraphManagement.IndexJobFuture ghostRemover =
graph.getBackend().buildEdgeScanJob()
.setJob(new GhostVertexRemover(graph))
.execute();
```
The above way, however, runs on a single instance, and thus its capacity is limited despite its use of multi-threading. It is unrealistic to use it to remove all ghost vertices on a massively large graph. We should make it easy to use in both 1) single machine 2) Hadoop system. We should, of course, also add the usage to the documentation
A good example is`IndexRemoveJob`, which also implements the `ScanJob` interface. It can be used via `ManagementSystem` (single machine) and `MapReduceIndexManagement` (map-reduce).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing GhostVertexRemover with IndexRemoveJob, especially how ManagementSystem and MapReduceIndexManagement expose ScanJob implementations. Trace the existing single-machine execution path and the Hadoop example, then define the usage paths for both environments and document them. Done means GhostVertexRemover is usable on a single machine and through Hadoop, with documentation covering both.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- hadoop, java
- Domain
- databases, distributed-systems, documentation
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100