couchbase RAM配额和vbucket';细节问题

couchbase RAM配额和vbucket';细节问题,couchbase,ram,bucket,Couchbase,Ram,Bucket,我有一个包含三个节点的集群。我们在内部创建了一个bucket,并将bucket副本的数量设置为2。此外,RAM配额设置为每个节点10G,即总RAM配额为30G 我使用客户端将数据保存到这个bucket中。数小时后,客户端打印了临时故障错误。Couchbase web控制台显示bucket RAM达到29G。重复数据压缩,但RAM不再减少 我的问题安排如下 1,我猜桶中的钥匙只能保存在RAM中,而不能保存在硬件中,对不对 2、无法压缩成硬件的29G数据是否为密钥 3、每个保存其他节点副本信息的节点

我有一个包含三个节点的集群。我们在内部创建了一个bucket,并将bucket副本的数量设置为2。此外,RAM配额设置为每个节点10G,即总RAM配额为30G

我使用客户端将数据保存到这个bucket中。数小时后,客户端打印了临时故障错误。Couchbase web控制台显示bucket RAM达到29G。重复数据压缩,但RAM不再减少

我的问题安排如下

1,我猜桶中的钥匙只能保存在RAM中,而不能保存在硬件中,对不对

2、无法压缩成硬件的29G数据是否为密钥

3、每个保存其他节点副本信息的节点是否保存在硬件中?如果没有,怎么能挽救呢


4、客户端每次保存数据时,都会利用哈希函数对vbucket求值,以判断数据将保存在哪些节点中。该过程是否在客户端进行?

回答您的具体问题:

1,我猜桶中的钥匙只能保存在RAM中,而不能保存在硬件中,对不对

如果说硬件,你指的是磁盘;然后是的,当前Couchbase必须在RAM中保存所有文档密钥(以及一些附加元数据)。这是为了确保对密钥的任何请求都可以立即得到响应,无论是肯定的(“是的,此密钥存在,这是它的值”)还是否定的(“不,这样的密钥不存在”)

2、无法压缩成硬件的29G数据是否为密钥

其中一些可能是元数据。如果您转到Bucket选项卡并通过单击其名称显示其统计信息,您可以看到所使用的内存量,特别是在VBucket Resources选项卡下,以查看元数据和用户数据所使用的内存量。有关详细信息,请参阅

3、每个保存其他节点副本信息的节点是否保存在硬件中?如果不是,如何保存

副本元数据也始终保存在RAM中,但副本值(如活动值)可以弹出到磁盘以释放内存

4、客户端每次保存数据时,都会利用哈希函数对vbucket进行求值,以判断哪些节点将保存数据。该过程是否在客户端进行

是的,vbucket哈希是在客户端上完成的-请参阅《管理指南》中的部分



一般情况下,您可能需要查看《管理指南》中的,以确定存储关键元数据所使用的内存量-特别是该部分。确切的计算取决于Couchbase的版本(因此我不在此重复)。

针对您的具体问题:

1,我猜桶中的钥匙只能保存在RAM中,而不能保存在硬件中,对不对

如果硬件是指磁盘,那么是的,当前Couchbase必须在RAM中保存所有文档密钥(以及一些附加元数据)。这是为了确保任何密钥请求都可以立即得到响应,无论是正面的(“是,此密钥存在,这是它的值”)还是负面的(“否,这样的密钥不存在”)

2、无法压缩成硬件的29G数据是否为密钥

其中一些可能是元数据。如果转到Bucket选项卡,单击Bucket的名称显示其统计信息,您可以看到所用内存量,特别是在VBucket Resources选项卡下,查看元数据和用户数据使用的量。有关更多详细信息,请参阅

3、每个保存其他节点副本信息的节点是否保存在硬件中?如果没有,怎么能挽救呢

副本元数据也始终保存在RAM中,但副本值(如活动值)可以弹出到磁盘以释放内存

4、客户端每次保存数据时,都会利用哈希函数对vbucket求值,以判断数据将保存在哪些节点中。该过程是否在客户端进行

是的,vbucket哈希是在客户端上完成的-请参阅《管理指南》中的部分


一般来说,您可能需要查看《管理指南》中的,以确定有多少内存用于存储关键元数据-特别是该部分。精确的计算取决于Couchbase的版本(因此我不会在这里重复)