Neo4j 4.0 support on gremlin

448 views
Skip to first unread message

Stefano Cimini

unread,
Jan 29, 2020, 12:56:02 PM1/29/20
to Gremlin-users
Hi All,
Neo4j 4.0 stable has been released few days ago.
Are there any plans to update the neo4j-gremlin implementation in order to support it?

Thanks in advance

Stephen Mallette

unread,
Jan 29, 2020, 1:31:21 PM1/29/20
to gremli...@googlegroups.com
Well, we already have an unreleased version bump of Neo4j in 3.5.0-SNAPSHOT which puts the version at 3.4.11. We could choose to go to neo4j 4.0 on that branch if we wanted or save it for TinkerPop 3.6.0. I'm not sure what's best...

That said, release logistics issues aside, we really can't do any upgrade at all without some help from the neo4j - they would need to bump to their implementation to 4.0 first over here:


--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/bd8acf82-30fe-4743-afb2-a6f27578c786%40googlegroups.com.

Stefano Cimini

unread,
Jan 30, 2020, 10:37:36 AM1/30/20
to Gremlin-users

Il giorno mercoledì 29 gennaio 2020 19:31:21 UTC+1, Stephen Mallette ha scritto:
Well, we already have an unreleased version bump of Neo4j in 3.5.0-SNAPSHOT which puts the version at 3.4.11. We could choose to go to neo4j 4.0 on that branch if we wanted or save it for TinkerPop 3.6.0. I'm not sure what's best...

That said, release logistics issues aside, we really can't do any upgrade at all without some help from the neo4j - they would need to bump to their implementation to 4.0 first over here:


On Wed, Jan 29, 2020 at 12:56 PM Stefano Cimini <cimini...@gmail.com> wrote:
Hi All,
Neo4j 4.0 stable has been released few days ago.
Are there any plans to update the neo4j-gremlin implementation in order to support it?

Thanks in advance

--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremli...@googlegroups.com.

Alex Vinnik

unread,
Jul 17, 2020, 12:28:22 PM7/17/20
to Gremlin-users
Stephen, 

I tried gremlin 3.5.0-snapshot and looks like "Removed the "experimental" support for multi/meta-properties in Neo4j."

Stephen Mallette

unread,
Jul 17, 2020, 12:39:56 PM7/17/20
to gremli...@googlegroups.com
That feature has been experimental since 3.0.0 and has never moved forward as anything more than that. Except for the smallest graphs I don't think anyone would have felt confident suggesting the use of it in production scenarios. Keeping that experimental feature around more than doubled our test time and therefore an expensive feature to keep around that we couldn't even recommend to users to actually make use of. The approach to having this experimental feature also complicated the code base by creating a layer of abstraction that probably hurt the actual non-experimental implementation in a sense. There's probably other reasons, but at least that gives you an idea as to why we opted to drop support for it.

Alex Vinnik

unread,
Jul 17, 2020, 12:56:42 PM7/17/20
to gremli...@googlegroups.com
Hmm.. interesting. Let's say there is a graph with several 10K nodes with high cardinality properties. Loading such a graph takes ~15 minutes in 3.3.10 and 3.4.7 (Neo4j 3.2.3), but 3.5 (Neo4j 3.4.11) loads it in 2 seconds. Also 3.5 reports more nodes and edges then 3.3.10. Wonder if such observation reflects the fact that "support for multi/meta-properties in Neo4j" was removed.

Stephen Mallette

unread,
Jul 17, 2020, 1:52:05 PM7/17/20
to gremli...@googlegroups.com
> 10K nodes with high cardinality properties. 

By "high cardinality" I assume that you mean multi-properties (i.e. list cardinality)

> Loading such a graph takes ~15 minutes in 3.3.10 and 3.4.7 (Neo4j 3.2.3), but 3.5 (Neo4j 3.4.11) loads it in 2 seconds. 

I'm not sure why load time would differ except that Neo4j 3.4.11 might have added some loading optimization for getting the graph into memory faster?? I dont' think that's related 

> Also 3.5 reports more nodes and edges then 3.3.10.

yes - I would expect more vertices/edges with that feature removed because multi/meta properties were encoded into the graph itself and not natively stored. 

amit.c...@gmail.com

unread,
Jul 17, 2020, 2:28:03 PM7/17/20
to Gremlin-users
Hi Stephen,
                      So, is there a way to add multi-properties (ie list cardinality) to vertices (and edges), with Gremlin 3.5? We use neo4j plugin with gremlin server.

Amit

Alex Vinnik

unread,
Jul 17, 2020, 2:46:09 PM7/17/20
to gremli...@googlegroups.com
g.addV().property('code','AUS').property('code','KAUS')
gremlin> g.V(0).property('code','AUS').property('code','KAUS')
==>v[0]
gremlin> g.V().has('code','AUS').valueMap()
gremlin> g.V().has('code','KAUS').valueMap()
==>[code:[KAUS],TenantContext:[demo4-14],SnapshotID:[56]]
gremlin> g.V().has('code','KAUS').count()
==>1
gremlin> g.V().has('code','AUS').count()
==>0
I tried this approach and it looks like last one wins.


Stephen Mallette

unread,
Jul 17, 2020, 2:54:01 PM7/17/20
to gremli...@googlegroups.com
the code for that experimental feature has been removed so there's no way to really use it short of resurrecting it into a fork of 3.5.0 or backporting the neo4j upgrade to 3.4.x where it still exists. I suppose I'd try the latter if i had to. I'd say that was the path of least resistance if you still needed that functionality but with a newer version of neo4j. In the longer run, I think you might want to consider modifying your graph schema to move off of multiproperties so tha you can use a standard TinkerPop release going forward or switch to a graph that directly supports such things, like JanusGraph, DS Graph, Neptune, etc.



Reply all
Reply to author
Forward
0 new messages