假设我在3个机架上有一个cassandra集群,比方说在AWS中的3个AZ上,并且有一个RF=3的密钥空间。使用此配置,每个AZ中将存在一个副本。1.当我在2个新机架(AZ 4和AZ 5)上向该群集再添加2个节点时,数据会发生什么变化?副本如何重新分布?1.新数据添加到此5机架群集后会发生什么情况?如何维护副本?当我在AWS EC2上尝试它时,我看到所有机架上的分配百分比相等。/nodetool status
r1zhe5dt1#
当机架等于RF时,如您当前所拥有的-3和3,Cassandra会遍历带有副本的机架,并在它找到的每个机架中放置一个副本,这样就可以很好地工作,每个机架都获得数据的完整副本。当您添加两个额外的机架时,副本将遍历机架并尝试分割所有权,使其在某种程度上相等,如您所述。在此方案中,任何机架都不会包含完整副本,但所有权将在机架之间分割。如果您打算将机架划分为多个AZ,那么为了获得最大的好处,最好在现有的3个机架中保持RF为3。如果需要额外的节点来纵向扩展当前群集,则添加三个节点,每个机架一个,以保持平衡。如果您希望在单独的AZ中存储数据的额外副本,添加第二个DC并保持在附加机架中存储完整副本的机架/RF比率。
1条答案
按热度按时间r1zhe5dt1#
当机架等于RF时,如您当前所拥有的-3和3,Cassandra会遍历带有副本的机架,并在它找到的每个机架中放置一个副本,这样就可以很好地工作,每个机架都获得数据的完整副本。
当您添加两个额外的机架时,副本将遍历机架并尝试分割所有权,使其在某种程度上相等,如您所述。在此方案中,任何机架都不会包含完整副本,但所有权将在机架之间分割。
如果您打算将机架划分为多个AZ,那么为了获得最大的好处,最好在现有的3个机架中保持RF为3。如果需要额外的节点来纵向扩展当前群集,则添加三个节点,每个机架一个,以保持平衡。如果您希望在单独的AZ中存储数据的额外副本,添加第二个DC并保持在附加机架中存储完整副本的机架/RF比率。