Janus 会将数据写入 Cassandra 或其他数据库来存储这些数据,对吧?
Janus 在哪里存储节点、边、属性等,它会将这些写入数据库,对吗?
Janus Graph 会将数据写入您配置它使用的任何存储后端。这包括卡桑德拉。它使用此处粗略概述的数据模型将此数据写入底层数据库
这些数据应该由 Janus 加载到内存中,还是一直从 Cassandra 中读取?
数据库中检索到的数据只是我需要的,否则 Janus 会一直读取数据库中的所有记录?
Janus Graph 只会加载到您在查询/遍历期间触摸的内存顶点和边。因此,如果您执行以下操作:
graph.traversal().V().hasLabel("My Amazing Label");
Janus 将仅读取并加载到内存中的顶点label
。所以你不必担心初始化一个图连接然后等待整个图序列化到内存中才可以查询。Janus 是一个懒惰的读者。
我应该在我的生产项目中使用 Janus,还是应该等到它准备好生产?
这完全取决于您和您的用例。如页面底部所示,Janus已经在生产中使用。Janus 是从 TitanDB 衍生出来的,并在 TitanDB 上进行了改进,TitanDB也用于多个生产用例。因此,如果您想知道“它准备好了吗”,那么我会说是的,考虑到它的现有用途,它显然已经准备好了。
我应该使用什么数据库后端?
同样,这完全取决于您。我使用Cassandra是因为它可以水平扩展,而且我发现它更易于使用。它似乎也适合所有不同大小的数据。
我玩过Google Big Table,它看起来也很强大。然而,它只适合非常大的数据,而且它也只在云上,因为 Cassandra 可以很容易地在本地托管。
我没有将 Janus 与HBase或BerkeleyDB一起使用,所以我不能在那里发表评论。
不过,在后端之间进行更改非常简单(您需要做的就是调整一些配置并检查您的依赖项是否到位),因此在您的开发过程中可以随意使用后端。您只需要在进行生产或对每个后端更加确定时才真正需要提交后端。