SteelBridgeLabs / neo4j-gremlin-bolt

Apache License 2.0
0 stars 1 forks source link

Concurrency issues when the driver is used on a Gremlin Server #84

Open fourier134949 opened 4 years ago

fourier134949 commented 4 years ago

Hi, We have integrated the neo4j-gremlin-bolt driver into a gremlin server. Below the steps:

graphs: { graph: conf/neo4j-bolt.properties}

We have configured two gremlin console instances, both pointing at the same gremlin server instance. Below the steps for installing a console instance:

:remote connect tinkerpop.server conf/remote.yaml session

==>Configured xx.xxx.xxx.xx/xx.xxx.xxx.xx:8182-[93b3521e-7de1-45d9-a5ca]

==>All scripts will now be sent to Gremlin Server - [xx.xxx.xxx.xx/xx.xxx.xxx.xx:8182]-[93b3521e-7de1-45d9-a5ca]

Repeat the steps for a second console.

On the first console type:

g.addV('book').property('name', 'The French Chef Cookbook') g.tx().commit()

You can repeat this step by creating/droppping nodes

On the second console type:

g.V()

The second console won't randomly see the updates performed on the first one. How can we solve this issue?

Thanks in advance

rjbaucells commented 4 years ago

It looks like the second console has an instance of the graph opened, all operations performed in that instance will be cached and only on TX commit/rollback will be flushed.

Try explicitly committing the TX on the second console, similar to the statement you are issuing on the first console.

fourier134949 commented 4 years ago

Hi, We also executed the above statements between g.tx().open() and g.tx().commit() on both consoles and we experience the same issue

fravdd81 commented 4 years ago

Same issue with two different consoles.