出于性能原因清除存储桶是否重要?



我的应用程序不断向存储桶插入文档。 它永远不会删除它们,假设数据在达到分配给存储桶的最大内存限制后将被轮换。

但是,完整存储桶对数据检索速度有什么影响? 我是否需要确保在不再需要文档以保持性能时将其删除? Ephermal和Couchbase铲斗在这方面有区别吗?

假设数据在达到分配给存储桶的最大 RAM 限制后将被旋转

这是一个很大的假设。您应该在继续之前对其进行测试。如果数据库在达到其限制后就停止接受新文档,我不会感到惊讶。

这是一个非常广泛的问题,我建议阅读Couchbase Server文档。这是一个快速的TL;博士:

Couchbase Server 中有三种类型的存储桶,每种存储桶在装满时的行为都不同。

沙发底座铲斗

Couchbase 存储桶将文档写入磁盘,并将它们缓存在内存中。它有两种不同的弹出模式;仅值完整。仅值模式仅从内存中删除文档的值,而 full 可以从内存中删除有关文档的值和元数据。这意味着配置了仅值弹出的 Couchbase 存储桶可能会变满并停止接受写入,而完全弹出不会发生这种情况。如果文档不在内存中,它将从较慢的磁盘中获取。

临时桶

临时存储桶仅将文档存储在内存中,可以被视为 memcached 存储桶的替代品。可以控制存储桶装满时的行为方式,有两种模式。无弹出- 不弹出任何数据,而是拒绝新的写入。在这种情况下,由应用程序删除数据。NRU 弹出数据根据最近未使用的算法删除。在这两种情况下,性能都不会下降,因为从 Couchbase 服务器的角度来看,存储桶已满。从应用程序的角度来看,可能会有性能影响,因为它必须从另一个源获取数据。

内存缓存桶

在这种情况下,当存储桶已满时,memcached 存储桶的行为就像具有 NRU 弹出的临时存储桶一样。临时存储桶与 memcached 存储桶相比有许多改进,应改用

最新更新