开发者社区> 问答> 正文

cassandra集群中有节点在执行relocatesstables时其他节点能写入数据吗?

image.png

5节点集群,其中节点34、35、36上都在执行relocatesstables,已经超过1个星期了,根据日志及ps命令来看,程序都还在正常执行中,不知何时结束,大量数据积压。
企业微信截图_17012486176188.png
企业微信截图_1701410459519.png
企业微信截图_17014106275241.png

这个时候可以开始往集群写数据吗?

展开
收起
游客n67wbod3jsomi 2023-12-03 22:54:49 70 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在Cassandra集群中,执行relocatesstables操作时,会涉及到数据的迁移。这个操作会导致目标节点上的SSTable文件与源节点不同步。为了确保数据的一致性,Cassandra集群在执行此类维护操作时不会允许其他节点写入数据。因此,当某个节点正在执行relocatesstables操作时,其他节点是不能写入数据的。这确保了数据的完整性和一致性,避免因数据不一致而导致的潜在问题。

    2023-12-04 14:54:23
    赞同 展开评论 打赏
  • 在Cassandra集群中,数据会在集群中保留多份,这样当某一个机器失效的时候,其他机器仍然有数据备份,从而保证整个服务正常。Cassandra是点对点分布式系统,集群中各节点平等,数据分布于集群中各节点,各节点间每秒交换一次信息。Cassandra是去中心化的集群架构,没有传统集群的中心节点,各个节点地位都是平等的。

    当您的问题中提到“执行relocatesstables”,这通常涉及到数据的迁移,可能会对集群的性能产生影响。由于Cassandra的设计特点,如果集群中有节点在进行数据迁移的操作,那么这个节点在此期间可能无法正常提供服务。因此,如果您希望避免数据迁移过程中可能出现的问题,最好等待所有涉及的节点完成数据迁移操作后再进行写入操作。

    同时,由于Cassandra集群的高可用性和容错性设计,即使某些节点正在进行数据迁移操作,其他节点应该仍然可以正常处理读和写请求。但是,为了避免可能出现的数据不一致或其他潜在问题,最佳实践是在整个集群都处于正常状态时进行数据写入操作。

    2023-12-04 14:17:43
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载