Skip to content

Ability to disable models in Rill completely#9616

Merged
k-anshul merged 4 commits into
mainfrom
disable_model_execution
Jun 30, 2026
Merged

Ability to disable models in Rill completely#9616
k-anshul merged 4 commits into
mainfrom
disable_model_execution

Conversation

@k-anshul

@k-anshul k-anshul commented Jun 26, 2026

Copy link
Copy Markdown
Member

closes https://linear.app/rilldata/issue/ENG-1119/ability-to-pause-and-unpause-reconciler#comment-68e95a7d

Checklist:

  • Covered by tests
  • Ran it and it works as intended
  • Reviewed the diff before requesting a review
  • Checked for unhandled edge cases
  • Linked the issues it closes
  • Checked if the docs need to be updated. If so, create a separate Linear DOCS issue
  • Intend to cherry-pick into the release branch
  • I'm proud of this work!

@k-anshul k-anshul self-assigned this Jun 26, 2026
@nishantmonu51

Copy link
Copy Markdown
Collaborator

to understand the behavior more here - When the model reconcilation is paused, would it still reconcile metrics view and dashboards or get those in error state as the model execution threw error ? I wonder if instead of throwing error, we do a WARN and make the model reconcile no-op and complete with success so that the underlying metrics view reconcile.

I am also if we might be able to use this for cases when a user only wants to make changes to metrics view and not any models ?

@k-anshul

k-anshul commented Jun 26, 2026

Copy link
Copy Markdown
Member Author

When the model reconcilation is paused, would it still reconcile metrics view and dashboards or get those in error state as the model execution threw error ?

Depends:

  1. If the model is non partition model then it will fail.
  2. If the model is partitioned model then only some partitions will fail which does not mark entire model as failed and metrics view will succeed.

I wonder if instead of throwing error, we do a WARN and make the model reconcile no-op and complete with success so that the underlying metrics view reconcile.

That feels like it can have some unintended consequences like model success but no data. If refresh is not set then it will require explicit refresh after unpause.

@nishantmonu51

Copy link
Copy Markdown
Collaborator

is there any other state other than error we can return ? e.g. not_executed ? instead of passing it? so that when its unpaused it executes ?

@k-anshul

Copy link
Copy Markdown
Member Author

is there any other state other than error we can return ? e.g. not_executed ? instead of passing it? so that when its unpaused it executes ?

@begelundmuller and I discussed on such solutions. The overall impression was that controller is already quite complex but very stable over more than a 1 year and building such solutions adds another layer to that.
Since this is a maintenance only requirement it may be prudent to develop something that introduces minimal changes to that.

  1. Customers can be notified in advance for these maintenance windows where dashboards will still work as before but reconciles will stop.
  2. Also reconciling metrics views/dashboards when models have not reconciled is not full proof either. It can end up referring to a new column/change that has not been applied to model yet. The dashboards will go down in that case.

@begelundmuller

Copy link
Copy Markdown
Contributor

so that when its unpaused it executes ?

FYI, when unpaused, it will re-execute immediately. So the "error" is ephemeral for the duration of the pause, it is not a persistent error.

@begelundmuller begelundmuller left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@nishantmonu51

Copy link
Copy Markdown
Collaborator

@codex: resolve conflicts and review then

@chatgpt-codex-connector

Copy link
Copy Markdown

Summary

Testing

  • git merge --no-edit c32b652fc2b1ae538ad526caa2872a12e01f17d6
  • ⚠️ go test ./runtime/reconcilers ./runtime/parser/schema ./runtime/drivers — blocked because downloading the required Go 1.25.5 toolchain from proxy.golang.org returned 403 Forbidden.
  • ⚠️ GOTOOLCHAIN=local go test ./runtime/reconcilers ./runtime/parser/schema ./runtime/drivers — blocked because the local Go version is 1.23.8, while go.mod requires Go >= 1.25.5.

View task →

@k-anshul k-anshul force-pushed the disable_model_execution branch from 983b237 to 2c95d8c Compare June 30, 2026 15:41
@k-anshul k-anshul merged commit 226883d into main Jun 30, 2026
12 checks passed
@k-anshul k-anshul deleted the disable_model_execution branch June 30, 2026 16:25
k-anshul added a commit that referenced this pull request Jul 1, 2026
* Add a env to disable execution of models

* property change

* Gate system sync replica behind a config (#9615)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants