本文主要内容为部分现存图数据库及其性能(主要包括其是否支持分片;目前能支持存储的最大容量;并发访问性能)。
一、现存图数据库及其性能
1、Neo4j - 高性能的NoSQL数据库
(1)分片:不支持分片
(2)容量:目前累计已容纳34.4亿个节点,344亿的关系,和6870亿条属性。
(3)并发访问性能:有两大主要影响因素:<1>操作本身的复杂程度;<2>硬件的性能
对于较为简单的遍历,可达1000次请求/毫秒。
关于硬件性能,Neo4j官网提供了性能计算器,可以针对所要达到的性能计算出所需硬件条件。
网址:https://neo4j.com/hardware-sizing-calculator/
2、Janus Graph - 高度可扩展的分布式图数据库
(1)分片:支持分片
janus graph中有两种基本的分片策略,第一:砍点策略即将度比较大的点均匀地分布到各个分区,以解决热点问题;第二:砍边策略即将经常遍历到一起的点放到同一分区内,以减小通信量。
当数据量较小时,可采用其默认的随机分片策略;当数据量较大(比如达到数十亿节点和边时),需要根据实际的需求定制分区策略。
(2)容量:可通过扩展集群规模进行线性扩展,一般可存储数千亿节点和边。
(3)并发访问性能:其并发访问的性能受集群规模(即集群中计算机的数量)影响较大,一般可支持数千用户实时的并发访问。
3、Arango DB - 高性能的NoSQL多模型数据库
(1)分片:支持分片,可将数据库设置为主从配置或者将更大的数据集分别存储在多个服务器中。
(2)容量:可存储海量数据,文件默认大小为32MB,可以根据实际需求进行配置。
(3)并发访问性能:可实现图的高性能处理和查询,比其他的NoSQL数据库都要快。
4、Orient DB - 多模型的NoSQL数据库
(1)分片:支持分片。类级分片,每个类支持至少一个或者多个集群。但orient db在分布式模式下,不允许进行数据库的更改;orient db在分布式模式下的热更改,仅在企业版(付费)下可用。
(2)容量:其实际存储数据的空间主要由集群的具体规模来决定,每秒最多可存储12万条记录。
(3)并发访问性能:若不执行昂贵的JOIN操作的话,如同关系数据库可在几毫秒内可检索数以百计的链接文档图。
5、Beam - 分布式知识图谱存储
(1)分片:支持分片;分布式存储,设计上无法支持单一服务器上有效存储的大图。
(2)容量:以三元组的形式存储数据,可通过水平扩展来支持高性能的查询和存储大规模的数据集。现已实现20台服务器组成的beam部署,已存储25亿条事实数据。
(3)并发访问性能:其写入速度无法扩展,一般可支持每秒数万次的数据更改。
6、Infinite Graph - 可扩展的分布式图数据库
(1)分片:支持分片
(2)容量:免费许可版本只能支持最高100万节点和边线。
(3)并发访问性能:受集群规模影响较大;其中每个边和节点都可以算作是一个对象,这可能会导致在处理大图时,性能受到严重影响。
7、Flock DB - twitter为关系数据分析构建的图数据库
(1)分片:支持分片
(2)容量:可根据具体需求通过扩大服务器集群的规模进行扩展,现已存储了130亿条边。
(3)并发访问性能:Flock DB主要优化了超大规模领结矩阵查询、快速读写和分页查询这三种操作,flock db最快可达到每秒2万次写和10万次读。
8、Titan - 可扩展的图形数据库
(1)分片:支持分片
(2)容量:可根据具体需求进行扩展,一般支持存储数百亿顶点和边。
(3)并发性能:可支持数千用户并发的实时的复杂图遍历请求。
二、总结
为了更加直观的展示和比较以上图数据库的各个性能,将以上的主要内容转化为表(图数据库性能表)的形式,如下:
参考文献
[1] 各数据库官网文件
[2] 中文开源技术交流社区 https://www.oschina.net/
第一篇简书,也是第一篇博客,不好或者有错误的地方,还请大家多多包涵~
欢迎指点~