Ase*_*ore 6 database-design scalability graph-databases
我知道数据库一般可以使用master/slave replication水平扩展。当并发读取数量增加时,这是一个很好的策略。
但是,随着并发写入的数量或仅数据量开始增长,主/从复制不会为您带来任何好处,因此您需要对数据进行分区。
这对于键值场景非常有用。对我来说一个经典的例子是 TinyURL/bit.ly;读取/写入短URL foo 的数据可以完全独立于读取/写入短URL bar 的数据。
但是,如果您处于图形场景中,您应该怎么做?更具体地说,是否有可能像Neo4j这样的图形数据库进行分区?如果是这样,如何?
我无法理解如何在不违背使用图形数据库(高效遍历)的目的的情况下分解图形。
您很少遍历整个图结构。
此外,图结构很少在所有节点之间紧密连接。
稍加注意,您就可以找到连接良好的节点的集群,这些节点被少量连接到其他集群的连接分隔开。
http://en.wikipedia.org/wiki/Cluster_analysis
如果基于聚类进行分区,那么在集群内的遍历可能会更快,但到另一个集群的遍历会更慢。
分区的总体优势取决于集群内遍历与集群间遍历的比率。
| 归档时间: |
|
| 查看次数: |
2186 次 |
| 最近记录: |