Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate sustainable ways to ensure backwards compatibility #13559

Open
kwannoel opened this issue Nov 21, 2023 · 3 comments
Open

Investigate sustainable ways to ensure backwards compatibility #13559

kwannoel opened this issue Nov 21, 2023 · 3 comments

Comments

@kwannoel
Copy link
Contributor

kwannoel commented Nov 21, 2023

Currently we try to support backwards compatibility from 1.0 to the latest main.

The way this is done is by ensuring metadata remains backwards compatible, i.e. old meta-data will still need to be maintained.

Additionally the code which handles this metadata will also need to be kept compatible.

Long term, this can lead to some messy code.

This issue tracks the investigation of alternative ways we can support backwards compatibility, which minimize the technical debt.

Additional motivation is from @stdrc who shared the painpoint.

@github-actions github-actions bot added this to the release-1.5 milestone Nov 21, 2023
@stdrc
Copy link
Member

stdrc commented Nov 21, 2023

I just realized that 0020507 this commit, which is #13376, though seems so harmless, also causes serious incompatibility. In plan pb generated by older version of frontend, there's no order_columns, in the new backend executor, it uses the order_columns in plan node instead of derive it on its own. If the plan node is from an older frontend, non-append-only min/max calls will stop working!

This implies that, for keys/schemas/... that used to be derived by backend executors, and not passed via protobuf from frontend (examples that were passed from fe include operators' pk_indices and schema), we can never remove the derivation logic from executors. Instead, we can only add a new branch that uses what frontend passed in.

@kwannoel
Copy link
Contributor Author

kwannoel commented Jan 9, 2024

We can support migration of metadata I suppose.

@kwannoel kwannoel removed this from the release-1.6 milestone Jan 9, 2024
Copy link
Contributor

This issue has been open for 60 days with no activity. Could you please update the status? Feel free to continue discussion or close as not planned.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants