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

Tracking: schema changes of source | (table with connector) #15582

Closed
3 of 4 tasks
Rossil2012 opened this issue Mar 9, 2024 · 13 comments
Closed
3 of 4 tasks

Tracking: schema changes of source | (table with connector) #15582

Rossil2012 opened this issue Mar 9, 2024 · 13 comments
Assignees

Comments

@Rossil2012
Copy link
Contributor

Rossil2012 commented Mar 9, 2024

A relay for #11800.

Note: A minor difference between ALTER SOURCE <name> REFRESH SCHEMA and ALTER TABLE <name> REFRESH SCHEMA is that the former rejects if columns are missing or changed, while the latter do this check only when the column is referenced by downstream tasks.

@github-actions github-actions bot added this to the release-1.8 milestone Mar 9, 2024
@Rossil2012
Copy link
Contributor Author

Possible solution: using the semantics whether the source executor is reset.
#15025 (comment)

@Rossil2012
Copy link
Contributor Author

cc @tabVersion @fuyufjh @st1page.

@xiangjinwu
Copy link
Contributor

Panic: #16486

@tabVersion tabVersion modified the milestones: release-1.9, release-1.10 May 14, 2024
@fuyufjh
Copy link
Member

fuyufjh commented May 21, 2024

Related discussion about watermark risingwavelabs/rfcs#85 (comment)

@fuyufjh
Copy link
Member

fuyufjh commented Jun 19, 2024

Note down a requirement for ALTER SOURCE CONNECTOR today: without this, changing a single argument will need to recreate the source/table and re-consume the upstream.

Slack thread

@yuhao-su
Copy link
Contributor

We probably also need the same for alter sink

@st1page
Copy link
Contributor

st1page commented Jun 19, 2024

We probably also need the same for alter sink

Can you explain more about it? Should the sink re-send all the historical data or just send it with the current progress?

@st1page
Copy link
Contributor

st1page commented Sep 6, 2024

Changed the pr description and will create a new PR for "alter connector" to make the issue clearer

@fuyufjh
Copy link
Member

fuyufjh commented Sep 6, 2024

Note down a reminder: alter a secret that referenced by a connector is also kind of alter source i.e. it should be refreshed without rebuilding the SourceExecutor.

@fuyufjh
Copy link
Member

fuyufjh commented Sep 23, 2024

We divided the cases into 2 categories: No Rebuild and Rebuild.

  1. If a property change doesn’t need to rebuild the connector instance or state, then it can be done in a lightweight fashion, such as mutate it with a single barrier
  2. If a property change need to rebuild the connector or state, such as change the Kafka consumer topic or change the connector type e.g. from File to Kafka, then we clean the previous state, drop the old actors and create new ones.

@xxchan
Copy link
Member

xxchan commented Sep 23, 2024

For rebuild, there's another case: alter schema

alter small param alter connector alter schema
non-shared source no rebuild rebuild (clean state) no rebuild ⚠️ (We only have this now)
shared source no rebuild rebuild (clean state) rebuild (keep state)
materialized source (table) no rebuild rebuild (clean state) rebuild (keep state)

(More discussion on https://risingwave-labs.slack.com/archives/C069EV2Q5MK/p1726639203021329

@fuyufjh
Copy link
Member

fuyufjh commented Sep 23, 2024

Just found a new issue addressing this. #18440 Let's move there for discussion.

@st1page st1page changed the title Tracking: alter source | (table with connector) Tracking: schema changes of source | (table with connector) Sep 23, 2024
@tabVersion tabVersion removed this from the release-2.1 milestone Oct 17, 2024
@tabVersion
Copy link
Contributor

close this one for duplicate with #18440

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

7 participants