我应该使用JanusGraph作为主数据库来存储新项目的所有数据吗?

Aug*_*ill 4 graph janusgraph

我正在考虑学习JanusGraph在我的新项目中使用,但我无法理解一些事情.

Janus可以像任何数据库一样使用并支持"插入","更新","删除"操作,因此JanusGraph会将数据写入Cassandra或其他数据库来存储这些数据,对吧?

在JanusGraph存储节点,边缘,属性等的地方,它会将这些写入数据库,对吧?

这些数据应该由Janus加载到内存中还是一直从Cassandra读取?

JanusGraph读取的数据必须在每个查询中加载JanusGraph,否则它会在数据库中选择以检索我需要的数据?

在数据库中检索的数据只是我需要的,或者Janus会一直读取数据库中的所有记录?

我应该在生产项目中使用JanusGraph,还是应该等到生产准备就绪?

我正在开发某种社交网络,需要存储友谊,帖子,评论,用户块以及做一些弹性搜索,在这种情况下,我应该使用什么数据库后端?

Fil*_*ira 11

Janus会将数据写入Cassandra或其他数据库来存储这些数据,对吧?

在Janus存储节点,边缘,属性等的地方,它会将这些写入数据库,对吧?

Janus Graph会将数据写入您配置使用的任何存储后端.这包括卡桑德拉.它使用此处概述的数据模型将此数据写入底层数据库

这些数据应该由Janus加载到内存中还是一直从Cassandra读取?

在数据库中检索的数据只是我需要的,或者Janus会一直读取数据库中的所有记录?

Janus Graph只会加载到查询/遍历期间触摸的内存顶点和边缘.所以如果你做的事情如下:

graph.traversal().V().hasLabel("My Amazing Label");

剑锋将读取并加载到内存中用了顶点label.因此,您无需担心初始化图形连接,然后等待整个图形序列化到内存中,然后才能进行查询.Janus是一个懒惰的读者.

我应该在生产项目中使用Janus还是应该等到生产准备就绪?

这完全取决于您和您的用例.剑锋在生产中使用已经可以看出这里在页面的底部.Janus在TitanDB上分叉和改进,TitanDB也用于几个生产用例.因此,如果你想知道"它准备好了"那么我会说是的,它已经准备好了,因为它已经存在.

我应该使用什么数据库后端?

同样,这完全取决于你.我使用Cassandra,因为它可以水平扩展,我发现它更容易使用.它似乎也适合所有不同大小的数据.

我玩过Google Big Table,看起来也非常强大.但是,它只适用于非常大的数据,而且它也只适用于云,因为Cassandra可以很容易地在本地托管.

我没有将Janus与HBaseBerkeleyDB一起使用,所以我不能在那里发表评论.

虽然在后端之间进行更改非常简单(您需要做的就是调整一些配置并检查您的依赖关系到位),因此在开发过程中随时可以使用后端.您只需要在生产时提交后端或者对每个后端更加确定.