Fix neo4j: container doesn't start currently (#264)

* Adjust Neo4j memory settings to avoid startup fail

* Upgrade Neo4j to community 5.26.0

* Add Neo4j indexes
This commit is contained in:
cybermaggedon 2025-01-11 12:44:49 +00:00 committed by GitHub
parent cec9e29222
commit c603caa3cc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 57 additions and 3 deletions

View file

@ -55,6 +55,14 @@ class Processor(Consumer):
def create_indexes(self, session):
# Race condition, index creation failure is ignored. Right thing
# to do if the index already exists. Wrong thing to do if it's
# because the store is not up yet
# In real-world cases, Memgraph will start up quicker than Pulsar
# and this process will restart several times until Pulsar arrives,
# so should be safe
print("Create indexes...", flush=True)
try:

View file

@ -50,6 +50,50 @@ class Processor(Consumer):
self.io = GraphDatabase.driver(graph_host, auth=(username, password))
with self.io.session(database=self.db) as session:
self.create_indexes(session)
def create_indexes(self, session):
# Race condition, index creation failure is ignored. Right thing
# to do if the index already exists. Wrong thing to do if it's
# because the store is not up yet
# In real-world cases, Neo4j will start up quicker than Pulsar
# and this process will restart several times until Pulsar arrives,
# so should be safe
print("Create indexes...", flush=True)
try:
session.run(
"CREATE INDEX Node_uri FOR (n:Node) ON (n.uri)",
)
except Exception as e:
print(e, flush=True)
# Maybe index already exists
print("Index create failure ignored", flush=True)
try:
session.run(
"CREATE INDEX Literal_value FOR (n:Literal) ON (n.value)",
)
except Exception as e:
print(e, flush=True)
# Maybe index already exists
print("Index create failure ignored", flush=True)
try:
session.run(
"CREATE INDEX Rel_uri FOR ()-[r:Rel]-() ON (r.uri)",
)
except Exception as e:
print(e, flush=True)
# Maybe index already exists
print("Index create failure ignored", flush=True)
print("Index creation done", flush=True)
def create_node(self, uri):
print("Create node", uri)