Cassandra 扩容streaming拖数据

Cassandra中,streaming指的是从远端节点拷贝sstable中的一段数据的过程。通常用于数据修复或移动的过程。例如如下场景中通常都会有streaming的过程:

  • repaid / D G - br
  • bootstrap过程
  • gossip收到和本节点有关的REMOi V ( ]VED_TOKEN状态变化
  • nodetool里面会触发数据移动或修复的命令,例如repair,rebuild,removenode,move

Streaming过程中两个节点的网络交互com.cn/tag/%e5%a6%82%e4%b8%8b%e5%9b%be" target="_blank">如下图所示:

这个过程大致可以分为如下四个阶段:

  • 建立连接
  • strV L N 4eaming准备阶段
  • streaming阶段
  • 完成

1 建立连接

streG @ 8am的发起节点创建一个StreamSession对象,初始化并调用start(y [ V % _ d)方法。在start里面会创建一个ConnectionHandler对象,其中包含两个到远端节点的连接,一个