JanusGraph / JanusGraph/janusgraph

Make GhostVertexRemover easy to use

Open
#2,555 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area/core area/hadoop kind/enhancement
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.