gpt4 book ai didi

Neo4j 分区

转载 作者:行者123 更新时间:2023-12-04 16:46:06 24 4
gpt4 key购买 nike

是一种在 Neo4j 分区之间进行物理分离的方法吗?
这意味着以下查询将转到 node1:

Match (a:User:Facebook)

虽然此查询将转到另一个节点(可能托管在 docker 上)
Match (b:User:Google)

情况是这样的:
我想在neo4j下存储几个客户端的数据,希望有很多。
现在,我不确定什么是最好的设计,但它必须满足几个条件:
  • 不应从密码查询返回混合数据(真的很难确定,没有开发人员会忘记密码查询中的“:Partition1”(例如))
  • 1 个客户端的性能不应该影响另一个客户端,例如,如果 1 个客户端有大量数据,而另一个客户端有少量数据,或者如果 1 个客户端的“重”查询当前正在运行,我不想要其他“lite"另一个客户端的查询性能缓慢

  • 换句话说,在 future 的某个时刻,将所有内容存储在 1 个节点下, 我想 ,将有可扩展性问题,当我会有更多的客户。

    顺便说一句,很少有集群是常见的吗?

    与为每个客户端创建不同的标签相比,分区的优势是什么?例如: Users_client_1 、 Users_client_2 等

    最佳答案

    简短的回答:不,没有。

    Neo4j 有 high availability (HA) clusters您可以在多台机器上制作整个图形的副本,然后针对该副本快速提供许多请求,但它们不会对真正巨大的图形进行分区,因此其中一些存储在这里,其他一些部分存储在那里,然后连接通过一种查询机制。

    更详细的答案:图分区是一个难题,需要持续研究。您可以阅读更多相关信息 over at wikipedia ,但要点是,当您创建分区时,您将图形拆分为多个不同的位置,然后需要处理跨分区的复杂关系。跨分区是一项代价高昂的操作,因此分区时的真正问题是,您如何分区才能使查询中跨分区的需要尽可能少出现?

    这是一个非常困难的问题,因为它不仅取决于数据模型,还取决于可能会改变的访问模式。

    这是情况有多糟糕(报价被盗):

    Typically, graph partition problems fall under the category of NP-hard problems. Solutions to these problems are generally derived using heuristics and approximation algorithms.[3] However, uniform graph partitioning or a balanced graph partition problem can be shown to be NP-complete to approximate within any finite factor.[1] Even for special graph classes such as trees and grids, no reasonable approximation algorithms exist,[4] unless P=NP. Grids are a particularly interesting case since they model the graphs resulting from Finite Element Model (FEM) simulations. When not only the number of edges between the components is approximated, but also the sizes of the components, it can be shown that no reasonable fully polynomial algorithms exist for these graphs.



    为了不给您带来太多的厄运和沮丧,很多人已经划分了大图。 Facebook 和 twitter 每天都这样做,所以你可以 read about FlockDB on the twitter sideavail yourself of relevant facebook research .但总而言之,切入正题,这取决于您的数据和大多数分区设计自定义分区策略的人,这不是软件为他们做的事情。

    最后,其他架构(例如 Apache Giraph)在某种意义上可以自动分区;如果您将图形存储在 hadoop 之上,并且 hadoop 已经在集群中自动扩展,那么从技术上讲,这就是自动为您分区图形。酷,对吧?好吧...很酷,直到您意识到您仍然必须在所有地方执行图遍历操作,由于必须遍历所有这些分区的事实,这可能性能很差,这是您通常尝试的性能情况首先通过明智地分区来避免。

    关于Neo4j 分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31277849/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com