Cassandra 中的数据重新分区

Data Re-Partitioning in Cassandra

作为此 的跟进,我想到了 vNode。感谢 'Simon Fontana Oscarsson'

当我尝试使用 vNode 探索数据分区时,我有几个问题,

我尝试观察2个节点的分区分布(./nodetool ring)

Two seed nodes (2 node)

172.30.56.61  rack1       Up     Normal  105.19 KiB      100.00%             -9207297847862311651                        
172.30.56.61  rack1       Up     Normal  105.19 KiB      100.00%             -9185516104965672922                        
172.30.56.61  rack1       Up     Normal  105.19 KiB      100.00%             -9135483708655236026                        
172.30.56.60  rack1       Up     Normal  102.77 KiB      100.00%             -9106737079237505681                        
172.30.56.61  rack1       Up     Normal  105.19 KiB      100.00%             -9078521344187921602                        
172.30.56.61  rack1       Up     Normal  105.19 KiB      100.00%             -9051897156173923903                        
172.30.56.61  rack1       Up     Normal  105.19 KiB      100.00%             -9049800264451581717                        
172.30.56.61  rack1       Up     Normal  105.19 KiB      100.00%             -9039572936575206977                        
172.30.56.60  rack1       Up     Normal  102.77 KiB      100.00%             -9019927187583981555                        
172.30.56.60  rack1       Up     Normal  102.77 KiB      100.00%             -9006071175095726599                        
172.30.56.60  rack1       Up     Normal  102.77 KiB      100.00%             -8995415525773810853                        
172.30.56.60  rack1       Up     Normal  102.77 KiB      100.00%             -8949342263103866059                        
172.30.56.61  rack1       Up     Normal  105.19 KiB      100.00%             -8880432529087253108                        
172.30.56.61  rack1       Up     Normal  105.19 KiB      100.00%             -8859265089807316498                        
172.30.56.61  rack1       Up     Normal  105.19 KiB      100.00%             -8844286905987198633                        
172.30.56.61  rack1       Up     Normal  105.19 KiB      100.00%             -8832739468389117376      

所以根据我在两个节点中的观察,节点 61 的值从 -9207297847862311651 到 -9185516104965672922 作为一个 运行ge 继续...

注意:分区 运行ge 从“-9039572936575206977”到“-9019927187583981554”目前由节点 61 处理。

现在我正在向集群添加一个节点(不是种子节点)并且我 运行 ./nodetool ring,

Two seed nodes with one new node (3 node)

172.30.56.61  rack1       Up     Normal  104.12 KiB      64.73%              -9207297847862311651                        
172.30.56.61  rack1       Up     Normal  104.12 KiB      64.73%              -9185516104965672922                        
172.30.56.61  rack1       Up     Normal  104.12 KiB      64.73%              -9135483708655236026                        
172.30.56.60  rack1       Up     Normal  102.77 KiB      63.57%              -9106737079237505681                        
172.30.56.61  rack1       Up     Normal  104.12 KiB      64.73%              -9078521344187921602                        
172.30.56.61  rack1       Up     Normal  104.12 KiB      64.73%              -9051897156173923903                        
172.30.56.61  rack1       Up     Normal  104.12 KiB      64.73%              -9049800264451581717                        
172.30.56.61  rack1       Up     Normal  104.12 KiB      64.73%              -9039572936575206977                        
172.30.56.62  rack1       Up     Normal  103.7 KiB       71.70%              -9031848008695747480                        
172.30.56.62  rack1       Up     Normal  103.7 KiB       71.70%              -9028974600706382491                        
172.30.56.60  rack1       Up     Normal  102.77 KiB      63.57%              -9019927187583981555    

现在我观察到相同的分区 运行ge 被分配给了新节点 Node 62, i.e, 运行ge 从 -9039572936575206977 到 -9031848008695747480 由节点 61 处理,但 -9031848008695747480 到 -9019927187583981555 由节点 62(新节点])处理,[=

1)那么这是否意味着,在集群中添加一个新节点将分配现有分区运行ge?

2) 有没有办法使用像 nodetool 这样的实用程序来观察 Cassandra 中的复制分区?

3) 我有 3 个节点,RF 为 2,如何单独在节点 62 中查看数据可用?

1) 添加节点时,Cassandra 将首先为要接管的新节点选择合适的范围。然后它将创建 256 个新的令牌范围,这些范围只是现有范围的一部分。这意味着新节点从集群中的许多节点(而不是在不使用 vnode 时每个 RF 仅一个)获取令牌,这使得流式传输速度更快。

2 和 3) 这是否回答了您的问题?