risingwavelabs / risingwave

Best-in-class stream processing, analytics, and management. Perform continuous analytics, or build event-driven applications, real-time ETL pipelines, and feature stores in minutes. Unified streaming and batch. PostgreSQL compatible.
https://go.risingwave.com/slack
Apache License 2.0
6.8k stars 563 forks source link

Discussion: report user errors and abort mv creation directly during backfilling? #13035

Open TennyZhuang opened 11 months ago

TennyZhuang commented 11 months ago

Currently, we'll ignore and just warn all parsing and expression errors of streaming jobs (mview). It may be friendly for online jobs, but confusing for the mview creator.

It'll be better if the mview creation will be aborted when meeting errors during backfilling.

chenzl25 commented 11 months ago

We have background ddl right now, for background ddl it seems we can't report user errors easily. Furthermore, we will have sink into table later. It also relies on backfilling, but it looks like it should not abort because it will cause a partial update. However, this idea is good for debugging, maybe we can apply it the the frontend mv creation and provide a system variable to let users decide which mode to use.

kwannoel commented 11 months ago

+1 for system / session variable support

fuyufjh commented 10 months ago

Can this be solved by #13108?

xxchan commented 5 months ago

Can this be solved by #13108?

It seems this provided the reporting mechanism.

The main problem for this is that "parsing and expression errors" are ignored/tolerated, so they are not considered "errors", and will also not be propagated.

We might need to add a mechanism to change the behavior of error handling, like ignore when streaming, but report when backfilling. One challenge may be that the code for tolerating errors are scattered in many places.

fuyufjh commented 5 months ago

We might need to add a mechanism to change the behavior of error handling, like ignore when streaming, but report when backfilling. One challenge may be that the code for tolerating errors are scattered in many places.

The idea makes sense to me, but it makes error-handling become a bit too difficult to explain to users. Prefer KISS now and keeping the behavior as slightly ignoring the parsing errors.

BugenZhao commented 5 months ago

We might need to add a mechanism to change the behavior of error handling, like ignore when streaming, but report when backfilling. One challenge may be that the code for tolerating errors are scattered in many places.

The idea makes sense to me, but it makes error-handling become a bit too difficult to explain to users. Prefer KISS now and keeping the behavior as slightly ignoring the parsing errors.

Is source error also the case? Somehow similar to https://github.com/risingwavelabs/risingwave/issues/15587#issuecomment-2019566428.

kwannoel commented 5 months ago

Any updates?

xxchan commented 4 months ago

We might need to add a mechanism to change the behavior of error handling, like ignore when streaming, but report when backfilling. One challenge may be that the code for tolerating errors are scattered in many places.

The idea makes sense to me, but it makes error-handling become a bit too difficult to explain to users. Prefer KISS now and keeping the behavior as slightly ignoring the parsing errors.

Per offline discussion: reporting error on backfilling is still useful.

Any updates?

I think not started yet. There are a few design problems to investigate.