Versions Compared

Key

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

...

Compatibility, Deprecation, and Migration Plan

  • Rack will be included in inter-broker protocol. Therefore, rolling upgrade requires these steps:
    1. Update server.properties file on all brokers and add the following property: inter.broker.protocol.version=<old version> (for example, 0.9.0)
    2. Upgrade the brokers. This can be done a broker at a time by simply bringing it down, updating the code, and restarting it.
    3. Once the entire cluster is upgraded, bump the protocol version by editing inter.broker.protocol.version and setting it to new version, for example, 0.9.1.
    4. Restart the brokers one by one for the new protocol version to take effect
  • Rack property will be included in version 2 3 broker JSON schema and version 1 2 of UpdateMetaDataRequest. Controller will include version specific broker information in its wire format so that broker with old version can still interoperate with broker with new version and rack.
  • When upgrading brokers, consumers with the old version can still understand the new broker information with rack in ZooKeeper. It calls ZkUtils.getBrokerInfo() which parses the JSON into a map and only gets the id, host and port from it.