Jacob Isaac created PHOENIX-7210:
------------------------------------
Summary: Ensure Phoenix IT tests can be run against a real
distributed cluster
Key: PHOENIX-7210
URL: https://issues.apache.org/jira/browse/PHOENIX-7210
Project: Phoenix
Issue Type: Improvement
Reporter: Jacob Isaac
When planning a new Phoenix Release in OSS and subsequent upgrades in
production, we must ensure that our release build is well tested. Currently
running the IT test suite ensures that a version (build version) of client and
server are working as desired. A few backward compatibility tests are also run
as part of the IT test suite but they are very minimal in coverage. The purpose
of this JIRA is to explore how we can enhance our IT test framework to provide
test coverage and backward compatibility for various combinations of
client-server versions.
Our current OSS release sign-off process is as described
[here|https://phoenix.apache.org/release.html]
Apache Phoenix follows semantic versioning i.e. for a given version x.y.z, we
have:
* Major version:
* x is the major version.
* A major upgrade needs to be done when you make incompatible API changes.
There will generally be public-facing APIs that have changed, metadata changes
and/or changes that affect existing end-user behavior.
* Minor version:
* y is the minor version.
* A minor upgrade needs to be done when you add functionality in a
backwards compatible manner. Any changes to system table schema (for ex:
SYSTEM.CATALOG) such as addition of columns, must be done in either a minor or
major version upgrade.
* Patch version:
* z is the patch version.
* A patch upgrade can be done when you make backwards compatible bug fixes.
This is particularly useful in providing a quick minimal change release on top
of a pre-existing minor/major version release which fixes bugs.
When upgrading the Major/Minor version we typically run tests other than the IT
tests to cover various client/server combinations that can manifest during an
upgrade.
1. Client with old Phoenix jar + Servers with mixed Phoenix jars + old metadata
(few servers have been upgraded)
2. Client with old Phoenix jar + Server with new Phoenix jar + old metadata
(bits upgraded)
3. Client with old Phoenix jar + Server with new Phoenix jar + new metadata
(metadata upgraded)
4. Client with new Phoenix jar + Server with new Phoenix jar + new metadata
(clients upgraded)
It would be a more exhaustive set of tests if we could run the Phoenix IT test
suites against a distributed cluster with above combinations.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)