数据库缓存和缓存未命中

时间:2016-11-05 05:08:01

标签: caching datomic

在datomic中如果我正在寻找一个不存在于DB中的密钥,我想它总是会导致缓存未命中(即使整个数据库缓存在对等的内存中)。所以我猜这些请求(寻找一个非EXISTING键)将始终命中后端DB(网络访问)并且不返回任何结果。这是对的吗?

1 个答案:

答案 0 :(得分:1)

根据我对Datomic内部的理解,在没有找到元素时与存储进行对话不应该是必要的。

Datomic的覆盖索引以排序集的形式实现,查询引擎使用二进制搜索来处理这些索引。二进制搜索的平均值和最差情况都是O(log n),所以你不会通过搜索不在数据库中的元素来获得大的性能命中。

查询(对等方)是否必须与存储通信与数据库中是否存在该项目无关。当查询引擎遍历数据库时,对等体中不存在的任何段都必须从存储器加载到对等体。