Skip to content

Commit

Permalink
Add possibility to build JanusGraph Scylla Release
Browse files Browse the repository at this point in the history
Related to #3580

Signed-off-by: Oleksandr Porunov <alexandr.porunov@gmail.com>
  • Loading branch information
porunov committed Oct 16, 2023
1 parent 5e6b6b0 commit 26ed54f
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 2 deletions.
16 changes: 14 additions & 2 deletions docs/storage-backend/scylladb.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,20 @@ compile "org.janusgraph:janusgraph-scylla:1.0.0"
The manual process described below is temporary and should be replaced by automated process after the issue
[janusgraph/janusgraph#3580](https://github.com/JanusGraph/janusgraph/issues/3580) is resolved.

In case `scylla` storage option is needed to be used in JanusGraph distribution then it's necessary to replace the next libraries
in `lib` directory (all libraries can be downloaded via Maven Central Repository).
In case `scylla` storage option is needed to be used in JanusGraph distribution then it's necessary to replace the next
DataStax provided CQL driver with Scylla provided CQL driver.
The default JanusGraph distribution builds contain only DataStax drivers, but not Scylla drivers because they are conflicting.
However, it's possible to build the same distribution build but with Scylla drivers enabled instead.
To do this, you can use the following command inside the JanusGraph repository:
```groovy tab='Bash'
mvn clean install -Pjanusgraph-release -Puse-scylla -DskipTests=true --batch-mode --also-make -Dgpg.skip=true
```

This command will generate distribution builds (both normal and full distribution build) in the
following directory: `janusgraph-dist/target/`.

Otherwise, if you can't build distribution on your own, you can use the JanusGraph provided distribution and replace
the following libraries in `lib` directory (all libraries can be downloaded via Maven Central Repository).
- `org.janusgraph:janusgraph-cql` with `org.janusgraph:janusgraph-scylla`
- `org.janusgraph:cassandra-hadoop-util` with `org.janusgraph:scylla-hadoop-util`
- `com.datastax.oss:java-driver-core` with `com.scylladb:java-driver-core`
Expand Down
35 changes: 35 additions & 0 deletions janusgraph-dist/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,42 @@
<skipDefaultDistroIT>${it.skip}</skipDefaultDistroIT>

<doc.dir>${project.parent.basedir}/docs</doc.dir>

<cql-module>janusgraph-cql</cql-module>
<cql-hadoop-module>cassandra-hadoop-util</cql-hadoop-module>
</properties>

<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>janusgraph-all</artifactId>
<version>${project.version}</version>
<exclusions>
<exclusion>
<artifactId>janusgraph-cql</artifactId>
<groupId>${project.groupId}</groupId>
</exclusion>
<exclusion>
<artifactId>cassandra-hadoop-util</artifactId>
<groupId>${project.groupId}</groupId>
</exclusion>
</exclusions>
</dependency>

<!-- Either "janusgraph-cql" or "janusgraph-scylla" -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>${cql-module}</artifactId>
<version>${project.version}</version>
</dependency>

<!-- Either "cassandra-hadoop-util" or "scylla-hadoop-util" -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>${cql-hadoop-module}</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
Expand Down Expand Up @@ -326,6 +354,13 @@
<docker.tag-suffix>-java-11</docker.tag-suffix>
</properties>
</profile>
<profile>
<id>use-scylla</id>
<properties>
<cql-module>janusgraph-scylla</cql-module>
<cql-hadoop-module>scylla-hadoop-util</cql-hadoop-module>
</properties>
</profile>
<profile>
<id>janusgraph-release</id>
<dependencies>
Expand Down

1 comment on commit 26ed54f

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Benchmark suite Current: 26ed54f Previous: 68f49a1 Ratio
org.janusgraph.JanusGraphSpeedBenchmark.basicAddAndDelete 14542.007743543334 ms/op 14750.912757292574 ms/op 0.99
org.janusgraph.GraphCentricQueryBenchmark.getVertices 1342.1677772591113 ms/op 1346.1948471823591 ms/op 1.00
org.janusgraph.MgmtOlapJobBenchmark.runClearIndex 221.55785739288535 ms/op 221.0470166869565 ms/op 1.00
org.janusgraph.MgmtOlapJobBenchmark.runReindex 480.17081076060606 ms/op 463.2053476121212 ms/op 1.04
org.janusgraph.JanusGraphSpeedBenchmark.basicCount 450.9651674000045 ms/op 473.90261975756744 ms/op 0.95
org.janusgraph.CQLMultiQueryMultiSlicesBenchmark.getValuesAllPropertiesWithAllMultiQuerySlicesUnderMaxRequestsPerConnection 8943.818925339641 ms/op 8776.908210320456 ms/op 1.02
org.janusgraph.CQLMultiQueryBenchmark.getElementsWithUsingEmitRepeatSteps 34407.08329434762 ms/op 29926.15626700794 ms/op 1.15
org.janusgraph.CQLMultiQueryMultiSlicesBenchmark.getValuesMultiplePropertiesWithSmallBatch 36484.84961798334 ms/op 32526.844515654997 ms/op 1.12
org.janusgraph.CQLMultiQueryMultiSlicesBenchmark.vertexCentricPropertiesFetching 72129.33750813332 ms/op 59550.41166966667 ms/op 1.21
org.janusgraph.CQLMultiQueryBenchmark.getAllElementsTraversedFromOuterVertex 17011.382524325756 ms/op 15006.601503888596 ms/op 1.13
org.janusgraph.CQLMultiQueryBenchmark.getVerticesWithDoubleUnion 623.5585674941539 ms/op 610.4456304918209 ms/op 1.02
org.janusgraph.CQLMultiQueryMultiSlicesBenchmark.getValuesAllPropertiesWithUnlimitedBatch 8982.786441277023 ms/op 8351.21971247489 ms/op 1.08
org.janusgraph.CQLMultiQueryBenchmark.getNames 16528.651819274102 ms/op 14737.422644903432 ms/op 1.12
org.janusgraph.CQLMultiQueryMultiSlicesBenchmark.getValuesThreePropertiesWithAllMultiQuerySlicesUnderMaxRequestsPerConnection 11951.277383700071 ms/op 10903.708326936881 ms/op 1.10
org.janusgraph.CQLMultiQueryBenchmark.getLabels 14826.383204531568 ms/op 13305.68422999396 ms/op 1.11
org.janusgraph.CQLMultiQueryBenchmark.getVerticesFilteredByAndStep 682.859730844567 ms/op 672.9530191288869 ms/op 1.01
org.janusgraph.CQLMultiQueryBenchmark.getVerticesFromMultiNestedRepeatStepStartingFromSingleVertex 22503.107474370005 ms/op 21151.69997790227 ms/op 1.06
org.janusgraph.CQLMultiQueryBenchmark.getVerticesWithCoalesceUsage 588.7231085677345 ms/op 566.2220666199714 ms/op 1.04
org.janusgraph.CQLMultiQueryMultiSlicesBenchmark.getValuesMultiplePropertiesWithAllMultiQuerySlicesUnderMaxRequestsPerConnection 29753.549394845715 ms/op 25822.55861829052 ms/op 1.15
org.janusgraph.CQLMultiQueryBenchmark.getIdToOutVerticesProjection 405.3947555291476 ms/op 411.4887692411499 ms/op 0.99
org.janusgraph.CQLMultiQueryMultiSlicesBenchmark.getValuesMultiplePropertiesWithUnlimitedBatch 35665.56775005857 ms/op 29794.881563733332 ms/op 1.20
org.janusgraph.CQLMultiQueryBenchmark.getNeighborNames 16648.795963799046 ms/op 14451.119747276667 ms/op 1.15
org.janusgraph.CQLMultiQueryBenchmark.getElementsWithUsingRepeatUntilSteps 17748.13006140814 ms/op 16086.213028835715 ms/op 1.10
org.janusgraph.CQLMultiQueryBenchmark.getAdjacentVerticesLocalCounts 16928.912670951537 ms/op 14981.480702516508 ms/op 1.13

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.