价值驱逐比完全驱逐有多大的优势?在价值被逐出的情况下,我假设内存中存在元数据。元数据的存在如何帮助更快地检索内容?NRU文件是否达到高水印?在将驱逐策略从价值驱逐改为完全驱逐之前,我们需要考虑哪些方面。
发布于 2016-03-16 01:28:23
值驱逐将所有文档元数据保存在内存中,而完全驱逐则不会。
假设您对一个不存在的密钥进行了获取。在值清除模式中,您立即知道键不在那里,因为它是仅内存操作。在完全驱逐模式下,如果该键的元数据不在内存中,则必须进行磁盘提取,以确保它们不存在。
基本上,任何需要了解有关密钥元数据的信息的操作都可能需要后台获取。如果元数据不在内存中,则其他一些操作可能比较慢,它们是CAS设置(只在值未更改时进行检查和设置)、附加、添加、标记和前置操作。还要记住,额外的磁盘活动可能会导致磁盘争用,从而影响Couchbase的其他部分。
NRU在完全驱逐和价值驱逐两方面都是一样的,Couchbase将尽最大努力将您的工作集保存在内存中。
我建议您在切换模式之前了解一下您的工作负载是什么样子,然后完全逐出测试它,因为您可能会看到性能问题会根据工作负载的不同而有所不同。
发布于 2021-02-18 08:12:03
除了Mike的回答之外,这里还值得一提的是bloom,这是Couchbase的一个非常强大的特性,可以显着地减少访问磁盘的次数。Bloom过滤器也启用了仅值的弹射,但是Couchbase确实在完全弹射模式下充分利用了它们的功能。我当时的情况是,系统已经达到了它的极限,只有价值的弹射桶和我测试了两种驱逐模式,最终完全驱逐结果是远远优于--至少对我的情况。
https://stackoverflow.com/questions/35995941
复制相似问题