如何在RF=3和5机架的apache cassandra 3.11集群中复制数据

o4tp2gmn  于 2022-11-29  发布在  Cassandra
关注(0)|答案(1)|浏览(129)

假设我在3个机架上有一个cassandra集群,比方说在AWS中的3个AZ上,并且有一个RF=3的密钥空间。使用此配置,每个AZ中将存在一个副本。
1.当我在2个新机架(AZ 4和AZ 5)上向该群集再添加2个节点时,数据会发生什么变化?副本如何重新分布?
1.新数据添加到此5机架群集后会发生什么情况?如何维护副本?
当我在AWS EC2上尝试它时,我看到所有机架上的分配百分比相等。/nodetool status

r1zhe5dt

r1zhe5dt1#

当机架等于RF时,如您当前所拥有的-3和3,Cassandra会遍历带有副本的机架,并在它找到的每个机架中放置一个副本,这样就可以很好地工作,每个机架都获得数据的完整副本。
当您添加两个额外的机架时,副本将遍历机架并尝试分割所有权,使其在某种程度上相等,如您所述。在此方案中,任何机架都不会包含完整副本,但所有权将在机架之间分割。
如果您打算将机架划分为多个AZ,那么为了获得最大的好处,最好在现有的3个机架中保持RF为3。如果需要额外的节点来纵向扩展当前群集,则添加三个节点,每个机架一个,以保持平衡。如果您希望在单独的AZ中存储数据的额外副本,添加第二个DC并保持在附加机架中存储完整副本的机架/RF比率。

相关问题