Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Many distributed open source systems has rolling upgrade feature, already.
We must study implemented approaches to gain some insights from them.


  1. Is there rolling upgrade feature?
  2. How it implemented?
  3. How it tested?
  4. When it tested: Each PR? Weekly? Only on release? 

Apache Cassandra

...

  1. Rolling upgrade implemented. Guide - https://www.datastax.com/learn/whats-new-for-cassandra-4/migrating-cassandra-4x
  2. Server-client compatibility works similar to

...

  1. Ignite Thin Client protocol.
  2. Compatibility checked with the special test framework - https://github.com/apache/cassandra-dtest/blob/trunk/upgrade_tests/README.md
    At a first glance, there are no special source code checks to ensure compatibility in day by day coding.
  3. ??? 

Apache Kafka

  1. Rolling upgrade implemented. Guide - https://kafka.apache.org/documentation/#upgrade
  2. Message formats checked on PR reivew. 
    At a first glance, there are no special source code checks to ensure compatibility in day by day coding.
    But, all machinery to code compatible implemented in code generation framework - https://github.com/apache/kafka/blob/trunk/clients/src/main/resources/common/message/AlterPartitionResponse.json
  3. Compatibility checked with the special test framework ducktest - https://github.com/apache/kafka/blob/trunk/tests/kafkatest/tests/core/kraft_upgrade_test.py
  4. On release, or by request. Kafka doesn't provide public resources to run ducktests. Run done by contributors or by confluent employers on private hosts. 

Yugabyte

Cockroach DB

Alternative designs

...