我正在考虑学习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与HBase或BerkeleyDB一起使用,所以我不能在那里发表评论.
虽然在后端之间进行更改非常简单(您需要做的就是调整一些配置并检查您的依赖关系到位),因此在开发过程中随时可以使用后端.您只需要在生产时提交后端或者对每个后端更加确定.
| 归档时间: |
|
| 查看次数: |
1580 次 |
| 最近记录: |