move_slot函数流程
2017-02-10 14:41:08 0 举报
move_slot函数是一个用于移动数据槽的函数。首先,它会检查是否有新的槽需要移动。如果有,它会获取新槽的位置和大小,并计算需要移动的距离。然后,它会创建一个新的缓冲区来存储移动后的数据。接下来,它会将原始数据复制到新的缓冲区中,并在适当的位置插入新槽的数据。最后,它会更新数据结构中的槽信息,包括槽的位置和大小。整个过程是在一个循环中进行的,直到所有的槽都被移动完毕。这个函数可以有效地管理数据槽,确保它们在内存中的正确位置,从而提高效率和性能。
作者其他创作
大纲/内容
move_slot 函数执行逻辑
执行migrate命令进行数据迁移
迁移完成
迁移slot成功或者出现BUSYKEY异常(出现busykey异常,如果实在fix模式下,会尝试用migrate replace模式进行修复) 如果是其他异常就直接报错
如果设置cold,则对每个节点执行cluster setslot,将slot赋予目标节点如果设置update,则修改源节点和目标节点的slot信息
通过getkeysinslot获取pipeline个key用于一次迁移当返回为0时结束对该slot迁移
设定pipeline数目检测cold参数是否设置,如果没有设置则对节点标记IMPORTING/MIGRATING状态
0 条评论
下一页