【问题标题】:Implementation of object cache in Neo4j 3.2.3Neo4j 3.2.3 中对象缓存的实现
【发布时间】:2019-04-12 22:19:12
【问题描述】:

我已经阅读了这篇 "Understanding of Neo4j object cache" 的帖子,但在 Neo4j 3.2.3 的源代码中找不到“NodeImpl”。

我尝试了一些代码来追踪 Neo4j 的实现,但无法找到对页面缓存以外的任何缓存的访问。我尝试了两次获取同一节点的属性,预计在第二次查询时会命中缓存。

            Node n = db.getNodeById(0);
            n.getProperty("name");
            String name = (String) n.getProperty("name");
            System.out.println("name: " + name);

“StoreStatement”中有很多“InstanceCache”,但正如注释所暗示的,实例缓存用于单个对象,而不是用于节点和关系之间的连接,如'An overview of Neo4j Internals'中所述。

我的问题是:

  1. neo4j 3.2.3 中对象缓存的实现是什么?
  2. neo4j 内部有什么更新的吗?我得到的幻灯片是 6 年前发布的。

【问题讨论】:

    标签: neo4j


    【解决方案1】:

    对象缓存在 Neo4j 中不再存在(我记得是 3.0 版),只有 页面缓存

    Tobias 解释图存储的幻灯片仍然正确。

    【讨论】:

    • 我看到TransactionApplicationMode中有一个名为'needsCacheInvalidation'的字段,所以这是为了使页面缓存失效?
    • 对象缓存的详细信息是否适用于页面缓存? IE。节点和关系记录是按照幻灯片所示进行转换,还是现在只是在磁盘上缓存?
    • 因为它们在磁盘上
    猜你喜欢
    • 2014-10-26
    • 1970-01-01
    • 2021-05-18
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 2015-12-02
    • 2018-10-14
    • 1970-01-01
    相关资源
    最近更新 更多