...
- Is there any primitives, building blocks to provide compatibility?
- Difficulties for day by day coding.
- Compatibility testing.
- explicit tests.
- ability to run tests with random node versions
- New feature implementation, enabling.
- patterns for implementing commons cases: new version of algorithmes, testing against new versions.
Code cleanup
- remove
DirectByteBufferStreamImpl V1-V3, keep V4, only. - remove all items from
IgniteFeatures and corresponding checks. - remove all code and checks for GridContinuousProcessor#discoProtoVer
- TcpDiscoverySpi#setForceServerMode
- All old version of classes - keep only max from V2, V3, etc. versions. StartRequestV2 that belongs to internal communication.
Classes releated to thin client, jdbc, odbc interaction must stay.- StartRequest must be deleted. Rename StartRequestV2 → StartRequest.
- CacheMetricsSnapshot must be deleted. Rename CacheMetricsSnapshotV2 → CacheMetricsSnapshot.
Additional materials
Many distributed open source systems has rolling upgrade feature, already.
We must study implemented approaches to gain some insights from them.
...