【问题标题】:Couchbase 6.5.1 and Bloom filtersCouchbase 6.5.1 和 Bloom 过滤器
【发布时间】:2021-01-28 17:45:12
【问题描述】:

我正在尝试评估使用布隆过滤器是否适合我的 Couchbase 部署。我在仅值弹出模式下使用 CB 6.5.1。在官方文档中搜索,我不清楚何时 布隆过滤器可用。此外,我只能在 5.0 和 5.1 版本上找到它们的使用。更具体地说,在 5.0 版中,在“数据库引擎体系结构”一节中,

完整的元数据弹出会从非常驻项目的缓存中删除所有数据,包括键、元数据和键值对。完全弹出非常适合应用程序具有不经常访问的冷数据或总数据大小太大而无法放入内存以及接受对数据的更高延迟访问的情况。布隆过滤器显着提高了完全驱逐缓存管理的性能。布隆过滤器默认启用,无法禁用。

这是否意味着它们只能在完全弹出模式下使用?

我只能在 5.0 和 5.1 版本中找到的另一个页面是 this one,它仅描述了布隆过滤器结合完全弹出和 XDCR 的功能。

那么 6.5.x 版本发生了什么?布隆过滤器是否默认仅在完全弹出模式下使用并且不能禁用?它们可以在某处配置吗?有人可以将它们与仅值弹出模式结合使用吗?

【问题讨论】:

标签: couchbase bloom-filter


【解决方案1】:

仅值弹出模式下的 Couchbase 存储桶具有元数据中存储桶的所有键,因此布隆过滤器的好处对于大多数操作来说是最小的,因为它可以更快地查看内部内存结构以检查键是否存在与否。也就是说,布隆过滤器用于值驱逐以改进对已删除键的检测,因为这些键不驻留在内存中,但它们的墓碑确实驻留在磁盘上。

Bloom filter 仍然存在于最新的 Couchbase Server 版本中,包括 Couchbase Server 7.0。 例如,在我的 6.5.1 集群上,我有一个名为 travel-sample 的纯值存储桶。我可以使用 cbstats CLI 命令查看布隆过滤器信息。

:~$ /opt/couchbase/bin/cbstats -u Administrator -p password -b travel-sample localhost:11210 all | grep bfilter

ep_bfilter_enabled: true
ep_bfilter_fp_prob: 0.01
ep_bfilter_key_count: 10000
ep_bfilter_residency_threshold: 0.1

使用 cbepctl 命令修改的布隆过滤器有 2 个配置选项:

bfilter_enabled - 启用或禁用布隆过滤器(真/假)

bfilter_residency_threshold - 居民比率阈值,低于该阈值的所有项目都将被完全考虑在布隆过滤器中

例如; :~$ /opt/couchbase/bin/cbepctl localhost:11210 -b travel-sample -u 管理员 -p 密码设置 flush_param bfilter_enabled false

setting param: bfilter_enabled false
set bfilter_enabled to false

你可以看到它现在被禁用了。

:~$ /opt/couchbase/bin/cbstats -u Administrator -p password -b travel-sample localhost:11210 all | grep bfilter
ep_bfilter_enabled: false
ep_bfilter_fp_prob: 0.01
ep_bfilter_key_count: 10000
ep_bfilter_residency_threshold: 0.1
eviction policy (0.0 - 1.0)

谢谢你, Ian McCloy(Couchbase 首席产品经理)

【讨论】:

  • 非常感谢伊恩!老实说,这超出了我的预期。不过,我不确定您为什么从文档中删除了所有提到的布隆过滤器。还是我错过了什么?您可以启用/禁用它们的事实不应该成为内存调整文档的一部分吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-23
相关资源
最近更新 更多