添加新服务器时在 Cassandra 中重新分区数据
Repartitioning of data in Cassandra when adding new servers
假设我有一个包含 3 个节点的 Cassandra 集群,每个节点有 100GB 的可用硬盘 space。此集群的复制因子设置为 3,R/W CL 设置为 2,这意味着我可以容忍我的一个节点出现故障而不会牺牲一致性或可用性。
现在假设我的服务器已经开始填满(例如 80GB),我想向我的集群中添加另外 3 台相同规格的服务器,保持相同的 CL 和 RF。
我的问题是:在我将新节点添加到我的集群和 运行 节点修复工具之后,假设我的每个节点应该大致(或多或少几 GB)是否公平? ) 每个包含 40GB 的数据?
如果没有,我如何添加新节点而不用担心 运行耗尽硬盘 space?
我问这个问题的一些背景知识: 我正在开发一个连接到服务器的应用程序,运行s Cassandra 用于其数据存储。由于这只是我开发的,而且我购买服务器的资金有限,所以我决定购买小型、便宜的 "servers" 而不是更昂贵的机架选项,但我如果磁盘分配不是(至少部分),真的很担心节点 运行 退出 space
同质的。
非常感谢你的帮助,
My question is: after I've added the new nodes to my cluster and run
the node repair tool, is it fair to assume that each of my nodes
should roughly (more or less a few GBs) 40GB of data each
在 运行ning nodetool cleanup 之后,您应该会在每个节点上看到大约 40GB 的数据。清理删除节点不再负责的数据。如果您不 运行 此命令,旧数据将保留在机器上。
假设我有一个包含 3 个节点的 Cassandra 集群,每个节点有 100GB 的可用硬盘 space。此集群的复制因子设置为 3,R/W CL 设置为 2,这意味着我可以容忍我的一个节点出现故障而不会牺牲一致性或可用性。
现在假设我的服务器已经开始填满(例如 80GB),我想向我的集群中添加另外 3 台相同规格的服务器,保持相同的 CL 和 RF。
我的问题是:在我将新节点添加到我的集群和 运行 节点修复工具之后,假设我的每个节点应该大致(或多或少几 GB)是否公平? ) 每个包含 40GB 的数据?
如果没有,我如何添加新节点而不用担心 运行耗尽硬盘 space?
我问这个问题的一些背景知识: 我正在开发一个连接到服务器的应用程序,运行s Cassandra 用于其数据存储。由于这只是我开发的,而且我购买服务器的资金有限,所以我决定购买小型、便宜的 "servers" 而不是更昂贵的机架选项,但我如果磁盘分配不是(至少部分),真的很担心节点 运行 退出 space 同质的。
非常感谢你的帮助,
My question is: after I've added the new nodes to my cluster and run the node repair tool, is it fair to assume that each of my nodes should roughly (more or less a few GBs) 40GB of data each
在 运行ning nodetool cleanup 之后,您应该会在每个节点上看到大约 40GB 的数据。清理删除节点不再负责的数据。如果您不 运行 此命令,旧数据将保留在机器上。