[VOTE] JanusGraph 0.6.0 release
We are happy to announce that JanusGraph 0.6.0 is ready for release.
The release artifacts can be found at this location:
https://github.com/JanusGraph/janusgraph/releases/tag/v0.6.0
A full binary distribution is provided for user convenience:
https://github.com/JanusGraph/janusgraph/releases/download/v0.6.0/janusgraph-full-0.6.0.zip
https://github.com/JanusGraph/janusgraph/releases/download/v0.6.0/janusgraph-0.6.0.zip
https://github.com/JanusGraph/janusgraph/releases/download/v0.6.0/KEYS
The docs can be found here:
https://github.com/JanusGraph/janusgraph/releases/download/v0.6.0/janusgraph-0.6.0-doc.zip
The release tag in Git can be found here:
https://github.com/JanusGraph/janusgraph/tree/v0.6.0
The release notes are available here:
https://github.com/JanusGraph/janusgraph/blob/master/docs/changelog.md#version-060-release-date-august-11-2021
This [VOTE] will open for the next 3 days --- closing Saturday, August 14, 2021 at 3:45 PM GMT+3.
All are welcome to review and vote on the release, but only votes from TSC members are binding.
My vote is +1.
Thank you,
Oleksandr Porunov
Hello,
We are happy to announce that JanusGraph 0.6.0 is ready for release.
The release artifacts can be found at this location:
https://github.com/JanusGraph/janusgraph/releases/tag/v0.6.0
A full binary distribution is provided for user convenience:
https://github.com/JanusGraph/janusgraph/releases/download/v0.6.0/janusgraph-full-0.6.0.zip
A truncated binary distribution is provided:
https://github.com/JanusGraph/janusgraph/releases/download/v0.6.0/janusgraph-0.6.0.zipThe GPG key used to sign the release artifacts is available at:
https://github.com/JanusGraph/janusgraph/releases/download/v0.6.0/KEYS
The docs can be found here:
https://github.com/JanusGraph/janusgraph/releases/download/v0.6.0/janusgraph-0.6.0-doc.zip
The release tag in Git can be found here:
https://github.com/JanusGraph/janusgraph/tree/v0.6.0
The release notes are available here:
https://github.com/JanusGraph/janusgraph/blob/master/docs/changelog.md#version-060-release-date-august-11-2021
This [VOTE] will open for the next 3 days --- closing Saturday, August 14, 2021 at 3:45 PM GMT+3.
All are welcome to review and vote on the release, but only votes from TSC members are binding.
My vote is +1.
Thank you,
Oleksandr Porunov
I've performed the following tests:
+1Tested the binaries in our docker instances..RafaOn Wed, Aug 11, 2021 at 8:43 AM Oleksandr Porunov <alexandr.porunov@...> wrote:Hello,
We are happy to announce that JanusGraph 0.6.0 is ready for release.
The release artifacts can be found at this location:
https://github.com/JanusGraph/janusgraph/releases/tag/v0.6.0
A full binary distribution is provided for user convenience:
https://github.com/JanusGraph/janusgraph/releases/download/v0.6.0/janusgraph-full-0.6.0.zip
A truncated binary distribution is provided:
https://github.com/JanusGraph/janusgraph/releases/download/v0.6.0/janusgraph-0.6.0.zipThe GPG key used to sign the release artifacts is available at:
https://github.com/JanusGraph/janusgraph/releases/download/v0.6.0/KEYS
The docs can be found here:
https://github.com/JanusGraph/janusgraph/releases/download/v0.6.0/janusgraph-0.6.0-doc.zip
The release tag in Git can be found here:
https://github.com/JanusGraph/janusgraph/tree/v0.6.0
The release notes are available here:
https://github.com/JanusGraph/janusgraph/blob/master/docs/changelog.md#version-060-release-date-august-11-2021
This [VOTE] will open for the next 3 days --- closing Saturday, August 14, 2021 at 3:45 PM GMT+3.
All are welcome to review and vote on the release, but only votes from TSC members are binding.
My vote is +1.
Thank you,
Oleksandr Porunov
with error `java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)Lscala/collection/mutable/ArrayOps;`:plugin use tinkerpop.hadoop:plugin use tinkerpop.sparkgraph = GraphFactory.open('conf/hadoop-graph/read-cql.properties')g = graph.traversal().withComputer(SparkGraphComputer)g.V().count()
Best,
Boxuan
I would try chasing down libraries pulling Scala 2.11 and upgrading them.
I downloaded https://github.com/JanusGraph/janusgraph/releases/download/v0.6.0/janusgraph-0.6.0.zip, tried a simple traversal using SparkGraphComputer on my laptop but failed:
with error `java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)Lscala/collection/mutable/ArrayOps;`:plugin use tinkerpop.hadoop:plugin use tinkerpop.sparkgraph = GraphFactory.open('conf/hadoop-graph/read-cql.properties')g = graph.traversal().withComputer(SparkGraphComputer)g.V().count()
I don't have scala or Spark installed locally. The same traversal worked well on the 0.5.3 version. I personally never ran any workload on Spark before, so I am not sure if this is expected, or due to a library conflict in Janusgraph distribution. If anyone familiar with Spark can shed some light or test by themselves, it would be very helpful. Otherwise, I am afraid 0.6.0 might not work well with Spark.
Best,
Boxuan
I will try to look at it today's evening. I have no luck I hope Clement will be able to check it on Monday.
Thus, I'm extending the voting process until the issue is fixed. After the fix I will re-upload artifacts to Sonatype and update release artifacts and a tag.
Best regards,
Oleksandr
On Aug 14, 2021, at 8:15 PM, Oleksandr Porunov <alexandr.porunov@...> wrote:Thank you Boxuan for the catch!
I will try to look at it today's evening. I have no luck I hope Clement will be able to check it on Monday.
Thus, I'm extending the voting process until the issue is fixed. After the fix I will re-upload artifacts to Sonatype and update release artifacts and a tag.
Best regards,
Oleksandr
WARN org.apache.tinkerpop.gremlin.server.handler.WsGremlinBinaryRequestDecoder -
This is expected. You must upgrade your Gremlin Server client first. See upgrade instructions regarding your issue here: https://docs.janusgraph.org/master/changelog/#serialization-of-janusgraph-predicates-has-changed
Also, for gremlin settings breaking changes see the following instructions:
https://docs.janusgraph.org/master/changelog/#breaking-change-for-gremlin-server-configs
https://docs.janusgraph.org/master/changelog/#introduction-of-a-janusgraph-server-startup-class-as-a-replacement-for-gremlin-server-startup
https://docs.janusgraph.org/master/changelog/#automatic-configurations-of-dynamic-graph-binding
Also, notice, the binaries will be updated soon. Thus, you *may* potentially need to update your gremlin server multiple times.
Thanks for taking part in testing.
Best regards,
Oleksandr
I checked and successfully closed the staging release.
GitHub tag v0.6.0 has been updated to point on the latest commit.
All the GitHub artifacts has been rebuilt and updated.
The issue discovered by Boxuan Li has been resolved as well as several other issues. Moreover one new feature has been added to the release (possibility to configure internal Cassandra driver).
I'm reopening the voting process.
This [VOTE] will open for the next 3 days --- closing Tuesday, August 31, 2021 at 11:55 PM GMT+3.
All are welcome to review and vote on the release, but only votes from TSC members are binding.
My vote is +1.
Thank you,
Oleksandr Porunov
gremlin> graph = JanusGraphFactory.open("inmemory")java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;Type ':help' or ':h' for help.Display stack trace? [yN]yjava.lang.NoSuchMethodError: java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;at org.janusgraph.diskstorage.util.WriteByteBuffer.getStaticBufferFlipBytes(WriteByteBuffer.java:148)
I think we will need to automate the releasing process soon to eliminate such issues in the future and build releases in deterministic way.
I did the following tests:
- Connected to AWS keyspace, did some simple traversals
- Compatibility test: using 0.5.3 CQL + ES to create a graph with 10 million nodes (https://gist.github.com/li-boxuan/d8059d1c40652c3c5308670ce383e96a), able to load using 0.6.0
- Did some simple performance comparison (using the graph created in the previous test) and saw significant performance improvements (up to 2x) in some queries, compared to 0.5.3:
0.5.3 (query.batch=true):
gremlin> clock(10) { graph.traversal().V().has("name", "inner0").toList() }
==>478.1922667999999
gremlin> clock(10) { graph.traversal().V().has("age", 0).toList() }
==>17873.4094548
gremlin> clock(10) {graph.traversal().V().has("name", "outer").out().out().toList()}
==>14500.0969486
0.6.0 (query.batch = true, query.limit-batch-size=true)
gremlin> clock(10) { graph.traversal().V().has("name", "inner0").toList() }
==>267.27335619999997
gremlin> clock(10) { graph.traversal().V().has("age", 0).toList() }
==>7432.816540099999
gremlin> clock(10) {graph.traversal().V().has("name", "outer").out().out().toList()}
==>11786.6717737
- Basic SparkGraphComputer traversal works in Spark-local, Spark standalone cluster, and Spark yarn cluster modes. I also wrote a blog to record all configurations needed: https://li-boxuan.medium.com/configure-janusgraph-0-6-0-for-spark-64bd7628fb77
I just did a quick test of the two distribution archives which just consists of starting JanusGraph Server and connecting to it via the remote console to create a vertex. For the full distribution, I then also restarted the server to verify that the vertex was persisted in Cassandra. This unfortunately failed for 0.6.0. The graph was completely empty after executing ‘bin/janusgraph.sh stop’ and ‘start’.
I’m not sure what’s causing this, but I think that we should look into it. At a first glance, the problem seems to be related to Cassandra as that didn’t create a directory ‘db/Cassandra/data/janusgraph’ for the JanusGraph keyspace. I only see directories for the system keyspaces there, but for 0.5.3 where this still worked, there was also a janusgraph keyspace directory.
Other then that, I also noticed that the Changelog mentions the removal of Thrift and refers to this repository where the Thrift code should be moved to: https://github.com/JanusGraph/janusgraph-cassandra
Unfortunately, the PR that would actually add the code to master branch there is still open: https://github.com/JanusGraph/janusgraph-cassandra/pull/3
I don’t think that this should stop the release, but we should try to merge it at least soon after the release.
Von: janusgraph-dev@... <janusgraph-dev@...> Im Auftrag von Boxuan Li
Gesendet: Dienstag, 31. August 2021 09:32
An: janusgraph-dev@...
Betreff: Re: [janusgraph-dev] [VOTE] JanusGraph 0.6.0 release
I did the following tests:
- Connected to AWS keyspace, did some simple traversals
- Compatibility test: using 0.5.3 CQL + ES to create a graph with 10 million nodes (https://gist.github.com/li-boxuan/d8059d1c40652c3c5308670ce383e96a), able to load using 0.6.0
- Did some simple performance comparison (using the graph created in the previous test) and saw significant performance improvements (up to 2x) in some queries, compared to 0.5.3:
0.5.3 (query.batch=true):
gremlin> clock(10) { graph.traversal().V().has("name", "inner0").toList() }
==>478.1922667999999
gremlin> clock(10) { graph.traversal().V().has("age", 0).toList() }
==>17873.4094548
gremlin> clock(10) {graph.traversal().V().has("name", "outer").out().out().toList()}
==>14500.0969486
0.6.0 (query.batch = true, query.limit-batch-size=true)
gremlin> clock(10) { graph.traversal().V().has("name", "inner0").toList() }
==>267.27335619999997
gremlin> clock(10) { graph.traversal().V().has("age", 0).toList() }
==>7432.816540099999
gremlin> clock(10) {graph.traversal().V().has("name", "outer").out().out().toList()}
==>11786.6717737
- Basic SparkGraphComputer traversal works in Spark-local, Spark standalone cluster, and Spark yarn cluster modes. I also wrote a blog to record all configurations needed: https://li-boxuan.medium.com/configure-janusgraph-0-6-0-for-spark-64bd7628fb77
My vote is +1.
I was trying to load `GraphOfTheGodsFactory.load(graph)` and couldn't:
So, it looks like `janusgraph-server.sh` is using inmemory option without index backend instead of using Cassandra + ElasticSearch as requested by `janusgraph.sh` script.
Quickly checking `janusgraph.sh` script I see it starts `janusgraph-server.sh` with the following options:
```
"$BIN"/janusgraph-server.sh console conf/gremlin-server/gremlin-server-cql-es.yaml &
```
Checking `janusgraph-server.sh` script I see the following code:
```
...
...
So, it looks like this script never expects path to be passed as a second argument. Thus, it looks like a second argument `conf/gremlin-server/gremlin-server-cql-es.yaml` is simply ignored and the default `$JANUSGRAPH_CONF/gremlin-server/gremlin-server.yaml` is used. But `$JANUSGRAPH_CONF/gremlin-server/gremlin-server.yaml` is using inmemory option by default.
I believe this is the root cause for this problem but didn't had a chance to actually verify that yet. If anyone has time today to fix this issue, please, submit a PR, otherwise I will try to fix it in a day or two.
I checked and successfully closed the staging release (1035).
GitHub tag v0.6.0 has been updated to point on the latest commit.
All the GitHub artifacts has been rebuilt and updated.
The issue found by Florian Hockmann is now fixed.
I'm reopening the voting process.
This [VOTE] will open for the next 3 days --- closing Monday, September 6, 2021 at 3:45 PM GMT+3.
All are welcome to review and vote on the release, but only votes from TSC members are binding.
My vote is +1.
Thank you,
Oleksandr Porunov
Thanks for fixing this!
I performed the same tests again and now everything looks good. So:
VOTE +1
Von: janusgraph-dev@... <janusgraph-dev@...> Im Auftrag von Oleksandr Porunov
Gesendet: Freitag, 3. September 2021 14:45
An: janusgraph-dev@...
Betreff: Re: [janusgraph-dev] [VOTE] JanusGraph 0.6.0 release
I re-uploaded a new staring release.
I checked and successfully closed the staging release (1035).
GitHub tag v0.6.0 has been updated to point on the latest commit.
All the GitHub artifacts has been rebuilt and updated.
The issue found by Florian Hockmann is now fixed.
I'm reopening the voting process.
This [VOTE] will open for the next 3 days --- closing Monday, September 6, 2021 at 3:45 PM GMT+3.
All are welcome to review and vote on the release, but only votes from TSC members are binding.
My vote is +1.
Thank you,
Oleksandr Porunov