【问题标题】:neo4j REST 'Server got itself in trouble'neo4j REST“服务器遇到麻烦”
【发布时间】:2012-08-19 01:13:51
【问题描述】:

我正在运行一个非常基本的测试来检查我的理解并评估 neo4j REST 服务器 (neo4j-community-1.8.M07)。我正在使用 Neo4j Python REST Client

每次测试迭代都以源节点名称和目标节点名称的随机字符串开始。这些名称只包含字母a..z 和数字0..9(奇怪的是,如果我使用A..Z0..9,我永远不会失败)。该名称的长度可以从 1 个字符到 36 个字符,并且没有重复的字符。我创建了 36 个节点,其中第一个节点名称只有一个字符长,第 36 个节点名称有 36 个字符。然后我在所有节点之间创建关系。每个关系的名称是源节点名称和目标节点名称的串联。最终图有 37 个节点(1 个参考节点和 36 个节点,名称从 1 个字符到 36 个非重复字符)和 1260 个关系。在每次测试迭代之前,我都会清除图表,以便它只有一个(参考)节点。

问题是经过几次成功的迭代neo4j REST服务器崩溃了:

Error [500]: Internal Server Error. Server got itself in trouble.

发送的数据无效

导致系统崩溃的查询可能不同 - 以下是导致问题的 query_string 示例:

START n_from=node:index_faqts(node_name="h"),
  n_to=node:index_faqts(node_name="hg2b8wpj04ms")CREATE UNIQUE
  n_from-[r:`hhg2b8wpj04ms`  ]->n_to RETURN r

self.cypher_extension.execute_query( query_string )

我花了很多时间试图找到一种趋势,但徒劳无功。如果我对查询做错了什么,那么任何测试都不会起作用。我观察到在 5 到 25 轮之间成功的测试周期数会发生崩溃。

什么可能导致 neo4j REST 服务器崩溃?

附:一些细节...

节点是这样创建的:

...
self.index_faqts[ "node_name" ][ p_str_node_name ] =
  self.gdb.nodes.create( **p_dict_node_attributes )
...

以防万一 - 在发出查询以创建新关系之前,我检查图表以确保 源节点和目的节点存在。该检查从未失败。

【问题讨论】:

    标签: neo4j cypher


    【解决方案1】:

    您使用的关系类型过多,目前限制为 32k。如果您有有效的用例,可能会在 Neo4j 中进行修补。

    【讨论】:

    • 是的,这就是问题所在。我改变了实现,现在一切正常。感谢您的帮助!
    猜你喜欢
    • 2020-11-02
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多