如果Cassandra的一个dc耗尽了物理内存会发生什么?

mzmfm0qo  于 2021-06-15  发布在  Cassandra
关注(0)|答案(1)|浏览(392)

我是Cassandra的新手,我在问自己,如果我有多个数据中心,一个数据中心的物理内存不足以存储所有数据,会发生什么。
假设我们有两个dcs。第一个dc可以存储1 tb,第二个dc只能存储500 gb。此外,假设两个dc的复制因子都为1。据我所知,这两个dc都有完整的令牌环,所以每个dc都有完整的数据。如果我将数据推送到DC1,而所需的存储总量超过500GB,现在会发生什么?

hc8w905p

hc8w905p1#

为了简单起见,我将考虑使用dc1编写数据,因此这一个将是每个场景中的本地dc。关闭的dc2将一直处于远程状态。因此,这里真正重要的是您在编写时使用的一致性级别:
类型local的一致性级别(local\u quorum,one,local\u one)-您可以写入数据。
类型remote的一致性级别(all、each\u quorum、quorum、two、three)-无法写入数据。
我建议你读一读关于一致性水平的书。
此外,使用ccm和cassandra压力工具进行快速测试可能有助于再现不同的场景。
另一个评论是关于您的可用空间:当一个节点将达到250gb标记(500gb的一半)时,您将有压缩问题。建议将磁盘的一半清空以运行压缩。
但是,假设您将继续向该节点获取数据,并将达到500gb的标记。Cassandra会停在那个节点上。

相关问题