如果可用磁盘空间量小于当前数据库大小的两倍,则不会执行压缩过程,并在日志中发出警告。
假设这仍然与Couchbase 5.x相关(我无法在最新的文档中找到它),我想知道这个要求是否真的适用于整个桶尺寸(甚至是整个数据库) - 或者更确切地说,每个vBucket在给定的时间点被压缩(因为压缩过程发生在每个vBucket,默认情况下只有3个并行工作)。
如果按照vBucket进行压缩,我就不用担心让我的单个磁盘占用超过50%的磁盘大小了,现在我对此保持警惕,所以我保留了一个非常大的磁盘余量未使用。
答案 0 :(得分:1)
Couchbase forums也提出了这个问题。我从那里复制了我的答案:
假设这仍与Couchbase 5.x相关
对于Couchbase Server 5.X,这仍然是正确的。
如您所述,建议是关于整个桶的大小。
每个vBucket完成计算本身以检查压缩是否有足够的空间来成功完成。换句话说,只要有足够的空间让一个vBucket被压缩,压缩就会运行。
因为每个vBucket都会发生压缩过程,默认情况下只有3个并行工作。
默认设置已更改为1 - 有关详细信息,请参阅MB-18426
答案 1 :(得分:0)
我似乎无法在5.x中找到文档,但是再次,假设旧文档仍然成立,我认为它可能在你怀疑的vbucket级别(来自Don Pinto in this old blog post的一些注释似乎确认)。但是,虽然文档在vbuckets之间相对均匀地分布,但实际大小可能会有所不同,因此如果您查看磁盘空间,我不会对vbucket大小做任何假设。索引也会占用磁盘空间。
但是请注意,如果您担心遇到磁盘大小限制,可以添加另一个节点,该节点将重新分配vbuckets,并且应该在每个节点上释放更多空间。