首页
学习
活动
专区
圈层
工具
发布

Janusgraph
EN

Stack Overflow用户
提问于 2021-09-03 05:47:59
回答 1查看 371关注 0票数 3

我读到了Janusgraph文档中有关Janusgraph的内容。对于事务缓存,我几乎没有疑问。在我的应用程序中,我使用的是嵌入式janusgrah服务器。

  1. 如果我只是在做一个阅读查询。- g. v().has(“名称”,"ABC")使用gremlin端点,那么这个值会被缓存在事务缓存或数据库级缓存中吗?因为我不会在这里开任何交易。
  2. 如果它存储在事务缓存中,如果我有多节点部署,那么如何获取这个顶点的更新值?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-05 07:21:37

关于问题1:

如果未显式创建事务,则自动创建事务。来自JanusGraph参考文档

JanusGraph中的每个图操作都发生在事务的上下文中。根据TinkerPop的事务性规范,每个线程通过图形上的第一个操作(即检索或突变)对图形数据库打开自己的事务。

事务期间检索的顶点存储在事务缓存和数据库缓存中。关闭事务后,顶点仍在数据库缓存中(但请注意,由于janusgraph-0.5.x,默认情况下数据库缓存是禁用的)。

关于问题2:

实际上,JanusGraph实例不能知道对其他实例的事务缓存中的顶点的修改。只有在这些事务关闭并持久化到存储和索引后端之后,其他实例才能从后端读取修改后的顶点。这也意味着其他JanusGraph实例中的缓存可能已过时,因此如果您希望确保您拥有来自后端的最新数据,则应该启动一个新事务并禁用数据库缓存(默认设置)。

补充意见(由9月12日增补):

顶点缓存是JanusGraph的私有成员,没有向用户公开(甚至在调试日志记录中)。遍历中的缓存命中只能从快速(亚毫秒)返回时间中看到。

如果事务或janusgraph实例之间的数据一致性对您有影响,您可以查看:

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69040069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档