Cassandra 扩容过程中,我理解应该一开始就计算好迁移哪些SSTable文件,我们从netstats可以看到结果。如果在扩容的过程中,有写入请求到要迁移的token,这部分的增量数据会怎么迁移呢?包括commitlog,SSTable,还有没有flush到磁盘的内存里的数据。
Cassandra 扩容过程中,我理解应该一开始就计算好迁移哪些SSTable文件,我们从netstats可以看到结果。如果在扩容的过程中,有写入请求到要迁移的token,这部分的增量数据会怎么迁移呢?包括commitlog,SSTable,还有没有flush到磁盘的内存里的数据。
When a node is added to the cluster, it will receive new mutations (write requests) for the token range it will eventually own while it is bootstrapping. This means that the existing owner of the token range and the new node is receiving new write requests at the same time during the bootstrap.
But the new node will not accept read requests until the B has completed. Cheers!
一个新节点在加入到cluster的时候,它会被标记成UJ状态(意味着UP and Joining)。处于Joining状态的节点已经被安排好了它将要负责的Token Range,所以任何涉及到这个新Token Range的写请求都会被多写一份到这个新节点,在Joining完成之前(也就是Bootstrapping期间),已有的负责这些Token Range的节点仍然会收到所有的写请求。这意味着token range的现有所有者和新节点在bootstrap期间会同时接收新的写请求。
但是新节点将在bootstrap完成之前不接受读取请求。
5 People are following this question.
DataStax Enterprise is powered by the best distribution of Apache Cassandra ™
© 2022 DataStax, Titan, and TitanDB are registered trademarks of DataStax, Inc. and its subsidiaries in the United States and/or other countries.
Apache, Apache Cassandra, Cassandra, Apache Tomcat, Tomcat, Apache Lucene, Lucene, Apache Solr, Apache Hadoop, Hadoop, Apache Spark, Spark, Apache TinkerPop, TinkerPop, Apache Kafka and Kafka are either registered trademarks or trademarks of the Apache Software Foundation or its subsidiaries in Canada, the United States and/or other countries.
Privacy Policy Terms of Use