价值驱逐对完全驱逐有多大优势?在价值驱逐的情况下,我假设元数据存在于RAM中。元数据的存在如何帮助更快地检索内容?是否已达到NRU文件被驱逐的高水印?在将驱逐政策从价值驱逐改为完全驱逐之前,我们需要考虑哪些方面。
答案 0 :(得分:1)
价值驱逐将所有文档元数据保留在内存中,而完全驱逐则不会。
让我们说你做了一个不存在的密钥。在价值逐出模式中,您立即知道密钥不在那里,因为它只是一个内存操作。在完全逐出模式下,如果该密钥的元数据不在内存中,那么您必须进行磁盘提取以确保它们的密钥不存在。
基本上,任何需要了解密钥元数据的某些信息的操作都可能需要进行后台获取。如果元数据不在内存中,其他一些可能很慢的操作是CAS设置(仅在值未更改时检查和设置),追加,加入,转换和预先添加。另请注意,额外的磁盘活动可能会导致磁盘争用,从而影响Couchbase的其他部分。
NRU在完全驱逐和价值驱逐方面是相同的,Couchbase将尽最大努力将您的工作集保存在内存中。
我建议您在切换模式之前尝试了解工作负载的样子并完全逐出测试,因为您可能会发现性能问题会因工作负载而异。
答案 1 :(得分:0)
除了 Mike 的回答之外,这里值得一提的是布隆过滤器,这是 Couchbase 的一个非常强大的功能,可以显着减少到磁盘的次数。布隆过滤器也在仅值弹出模式中启用,但 Couchbase 在完全弹出模式下确实利用了它们的功能。我的情况是,系统已经达到了仅值弹射桶的极限,我测试了两种驱逐模式,最终完全弹射的效果要好得多 - 至少在我的情况下是这样。