1.特性
1:支持 ACID 事务特性; 2: 高可用; 3 : 可处理上十亿节点与关系;4: 非常快的查询速度
单一实例可以操作上十亿个节点与关系,当数据吞吐量不足的时候,可以进行分布式布署。在数据关系复杂的情况下,每秒可处理成百万的 join 操作。
2.两种用法
Neo4j它有两种用法,一是作为单独服务向外提供使用,另一种是嵌入到程序中被某一个程序完全占有。具体用法学习之后再介绍。
类 EmbeddedGraphDatabas,它是嵌入式使用中常用到的类,一般用作单个实例,另一个类 HighlyAvailableGraphDatabase是在高可用结构中常使用的类。不过官网1.5.MO2的jar包中不包含这个类。不知是否以后会支持。
3.系统要求
内存束缚着图数据大小,磁盘I/O束缚着读写性能。当图数据存在于内存中时,CPU的影响才表现出来。
cpu: 最小配置 Intel 486,推荐 Intel Core i7.
内存:更多的内存允许更大的图数据。最小1G,推荐4-8G
磁盘:除了磁盘容量以外,在查询的时候磁盘性能是最重要的。最少SCSI, EIDE,推荐SSD,SATA
文件系统:为了适合ACID特性,文件系统必须支持fsync,fdatasync。最少ext3,推荐ext4,ZFS.
软件:JAVA1.6,XP/LINUX/Mac OS X.
4.Neo4j版本
Neo4j有三个版本,社区版,先进版,企业版。介绍下先进版,主要添加了一些性能监控,企业版新加了在线备份与高可用集群方案。
5.配置
为了给应用追求最佳性能,可以调整一些参数,其中最重要的两个是Neo4j的cache与运行Neo4j的JVM.
5.1 Neo4j's caches
Neo4j使用两种不同类型的cache,一种是文件缓冲cache,另一种是对象cache.文件缓冲cache缓存了相同格式的文件数据。对象cache使用了一种有利于高速遍历的缓存格式缓存了节点,关系与属性。
5.1.1 File Buffer cache
有时候,File Buffer cache被称为低级cache(low level cache)或者文件系统cache.
它缓存Neo4j的数据就像存储在持久化媒介一样 。
如果可以的话它使用操作系统的内存映射特性。
Neo4j也会自动把cache配置成JVM的堆栈大小
File Buffer cache缓存数据文件的格式与存储在持久化媒介一样。cache层的目的是提高读写性能。它通过向File Buffer cache写数据,推迟持久化写直到logical日志被处理来提高写的性能。这个特性是安全的,因为所有的事务都是持久化写到logical日志中。这些文件可以用来恢复数据当发生崩溃的时候。