GDS 1.7: Unable to start database derived from graph projection

System:
MacBookPro: 11.5.2
Neo4j Enterprise: 4.3.2
GDS 1.7

Using a sample database from Neo4j's Node Classification Sample, and creating the graph projection, I decided to test a GDS 1.7 feature of querying that projection by creating a database from that projection:

CALL gds.alpha.create.cypherdb(
  'gdsDb',
  'myHouseGraph'
)

I received the following error:

gdsdb"	"localhost:7687"	"standalone"	"online"	"offline"	"Unable to start database `DatabaseId{a2decf72[gdsdb]}`"	false	false

I tried unsuccessfully to manually start the 'gdsDb':

start database gdsDB

I am not sure why this is. This particular example does not contain relationships, did that confuse Neo4j? Any thoughts on this are obviously welcome.

To update: I encourage Neo4j Testers to replicate the Node Classification Example using GDSL 1.7 (non Enterprise) and Neo4j Enterprise 4.3.2. All calls to GDSL failed.

Update: I was able to replicate the Node Classification Example using GDSL 1.7. Apologies for noting originally that all calls to GDSL failed. My error. However, I am still unable to:

CALL gds.alpha.create.cypherdb()

and start that newly created database.

Hello there @skerr,
that indeed sounds like a bug. Could you paste the error from the debug.log? There should be a stacktrace showing where this error might be coming from. You can find the debug log in the logs folder of your neo4j installation.
Cheers, Sören

@soren_reichardt - I'm having the same issue. The error is quite long, but starts with

WARN  [o.n.k.d.Database] [graph1db/224e870c] Exception occurred while starting the database. Trying to stop already started components.
java.lang.IllegalArgumentException: No graph with name `null` was found in GraphStoreCatalog. Available graph names are [graph1]

As you can see from my screenshot, I'm trying to create a DB from graph1, so I'm not sure why it's trying to reference a "graph with name null."

@skerr @jessica.f I was able to reproduce and fix the error when creating the in-memory database. It will be fixed in the upcoming 1.8 release.

1 Like

I faced a similar issue and wonder if they are related.

I was creating the database using gds.graph.export('myInMemGraph', { dbName: 'myExportedGraphDB' })
..and the command returns:
dbName, graphName, nodeCount, relationshipCount, relationshipTypeCount, nodePropertyCount, relationshipPropertyCount, writeMillis
..but I do not see the database listed when i run show databases so as expected cannot start it, however if i rerun the same gds.graph.export again it throws an error stating
java.lang.IllegalArgumentException: The database [myExportedGraphDB] already exists. The graph export procedure can only create new databases.

@deepak.tanna : you're running the command to create a new neo4j database; to activate the database you've created, you'll need to take a few extra steps:

CALL  gds.graph.export('myInMemGraph', { dbName: 'myExportedGraphDB' }) //creates db store
:use system //this switches to the system db
CREATE DATABASE myExportedGraphDB //start up a new database from the store you exported
:use myExportedGraphDB //now use the database

(or check out the docs here)

This is a different set of steps (see the documentation here) than what's described above - where folks are talking about trying to run cypher against the in memory graph itself (without creating a separate DB).

1 Like

@skerr @jessica.f : we've just published 1.8 (and a 1.8 patch!) - it should fix the errors described above :slight_smile:

Thank you so much, Alicia, the steps you shared were in plain sight and I yet somehow missed it. Appreciate your patience