Skip to content

Docs fixes, core performance improvements, and integration config updates#33444

Closed
Vamsi-klu wants to merge 1 commit into
dagster-io:masterfrom
Vamsi-klu:misc-improvements
Closed

Docs fixes, core performance improvements, and integration config updates#33444
Vamsi-klu wants to merge 1 commit into
dagster-io:masterfrom
Vamsi-klu:misc-improvements

Conversation

@Vamsi-klu

@Vamsi-klu Vamsi-klu commented Feb 15, 2026

Copy link
Copy Markdown

Summary & Motivation

Improvements split out from #33303 to keep that PR focused on EMR diagnostics.

Docs: Replaced TODO/FIXME placeholders with proper <PyObject> API references, added missing links across DuckDB/Snowflake/BigQuery docs, added dedent props to <CodeExample> components, fleshed out stub pages (migrating-workspace-yaml.md, troubleshooting-components.md), added missing setup.py descriptions, and improved sensor test coverage.

Core:

  • Bulk delete_dynamic_partitions() and get_dynamic_partitions_by_keys() on DagsterInstance — replaces N individual DB calls with single queries
  • Paginated run monitoring via DAGSTER_RUN_MONITORING_RUN_FETCH_CHUNK_SIZE (default 1000)
  • Paginated asset fetching with heapq.merge + bisect for cursor-based pagination
  • Bulk get_materialized_or_observed_partition_keys() for faster missing-asset computation
  • Paginated _get_first_partition_keys_in_subset() for backfill ordering
  • filter_dagster_events_from_cli_logs rewritten with raw_decode for robust JSON parsing
  • Child process stdout/stderr captured to temp files for crash diagnostics
  • sorted_asset_keys / sorted_asset_key_strings cached properties on BaseAssetGraph

Integrations: Implemented BigQuery table_definitions and udf_resources config fields. Replaced Spark StringSource with SparkMemory/SparkTime types.

UI: YAML lint size guard (200k chars / 5k lines) to prevent editor freezes. Fixed VirtualizedAssetCheckRow test IDs.

How I Tested These Changes

Existing test suites cover modified paths. Docs verified with yarn start. UI verified with yarn tsgo and yarn lint.

Changelog

  • [dagster] Bulk dynamic partition operations, paginated run monitoring, optimized asset pagination
  • [dagster-gcp] Added table_definitions and udf_resources BigQuery config fields
  • [dagster-spark] Added SparkMemory and SparkTime config types
  • [dagster-ui] YAML lint size guard for large configs
  • [docs] Fixed API references, links, and stub pages

contributors : @girlcoder-gaming @codingrealitylabs

…ates

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Vamsi-klu Vamsi-klu requested review from a team and dehume as code owners February 15, 2026 03:25
@Vamsi-klu

Copy link
Copy Markdown
Author

@neverett can you please review this PR too?

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 29c8873d9d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines 217 to 220
description: Optional[str],
automation_condition: Optional["AutomationCondition[AssetCheckKey]"],
metadata: ArbitraryMetadataMapping,
partitions_def: Optional[PartitionsDefinition],
):

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Restore partitions_def arg on AssetCheckNode constructor

Removing the partitions_def parameter from AssetCheckNode.__init__ breaks existing call sites that still pass it (for example AssetGraph.__init__ and RemoteAssetGraph._get_asset_check_node_from_remote_asset_check_node), which now raises TypeError: ... takes 7 positional arguments but 8 were given whenever asset check nodes are built. Any code path that loads an asset graph containing checks will fail at runtime.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Fixed in #33562. Removed the extra partitions_def argument from both AssetGraph.__init__ and RemoteAssetGraph._get_asset_check_node_from_remote_asset_check_node. Since asset checks are always unpartitioned (the partitions_def property on AssetCheckNode unconditionally returns None), the constructor correctly no longer accepts this parameter, and the call sites now match. Verified with 1013 passing asset defs tests (including test_asset_graph.py which exercises both code paths).

async def compute_run_in_progress_subset(
self, *, key: EntityKey, from_subset: EntitySubset
) -> EntitySubset:
async def compute_run_in_progress_subset(self, *, key: EntityKey) -> EntitySubset:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Keep from_subset parameter on subset-computing APIs

These method signatures were changed to drop from_subset, but automation operands still invoke them with from_subset=context.candidate_subset (operands.py), so evaluating run_in_progress, backfill_in_progress, or execution_failed conditions now throws an unexpected-keyword TypeError instead of returning a subset. This breaks declarative automation evaluation for those conditions.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Fixed in #33562. Updated all callers in operands.py to stop passing from_subset:

  • RunInProgressAutomationCondition.compute_subset
  • BackfillInProgressAutomationCondition.compute_subset
  • ExecutionFailedAutomationCondition.compute_subset
  • CheckResultCondition.compute_subset (for compute_subset_with_status)

These methods no longer need from_subset because the underlying implementations now compute the full subset independently (via partition status cache for partitioned assets, or direct queryer calls for unpartitioned ones). Verified with 199 passing declarative automation tests.

Comment on lines 262 to 264
if max_time_str:
try:
max_time = float(max_time_str)
except ValueError:
logger.warning(f"Invalid max runtime value: {max_time_str}")
max_time = None
max_time = float(max_time_str)
else:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Guard max runtime tag parsing against invalid values

Parsing dagster/max_runtime_seconds with a bare float(max_time_str) now raises on malformed tags, whereas this path previously warned and continued. In execute_run_monitoring_iteration, that exception is caught at the run level and emitted as daemon error, which means the affected run repeatedly fails monitoring checks (timeout/health handling) on every tick instead of being safely skipped.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Fixed in #33562. Restored the try/except ValueError guard so malformed dagster/max_runtime_seconds tags are logged with a warning and set to None (skipped) rather than raising and repeatedly crashing the monitoring daemon on every tick. Verified with test_invalid_max_runtime_tag_value in test_monitoring_daemon.py (8/8 passed).

@Vamsi-klu

Copy link
Copy Markdown
Author

@dehume can i get this PR review?

@dehume

dehume commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

Thanks for putting this together, it seems like there some good ideas here. In general it is much easier to review PRs that focus on one thing and this PR covers many different topics. Can this be scoped down to individual topics so it is easier to provide feedback

@Vamsi-klu

Copy link
Copy Markdown
Author

Thanks @dehume I will make sure that I will rise in Eurovision with the appropriate breakdowns as separate peers. I see a valid point from your view that can be a lot easier for you to review and judge the quality of court. I'll make sure to complete this by the week. Thanks again.

Vamsi-klu pushed a commit to Vamsi-klu/dagster that referenced this pull request Mar 8, 2026
Address review comments on PR dagster-io#33444:

1. (P1) Remove `partitions_def` arg from AssetCheckNode call sites in
   AssetGraph.__init__ and RemoteAssetGraph, matching the updated
   constructor that dropped this parameter.

2. (P1) Remove `from_subset` arg from operands.py call sites for
   compute_run_in_progress_subset, compute_backfill_in_progress_subset,
   compute_execution_failed_subset, and compute_subset_with_status,
   matching updated signatures.

3. (P2) Restore try/except guard around float(max_time_str) in
   check_run_timeout to handle malformed dagster/max_runtime_seconds
   tags gracefully.

4. Fix additional broken call sites:
   - entity_subset.py: inline removed get_subset_from_partition_keys
   - asset_check_execution_record.py: set partition=None in from_db_row
     since partition column is no longer selected
   - Remove tests for deleted partitioned check functionality

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Vamsi-klu

Copy link
Copy Markdown
Author

@dehume Thanks for the feedback — you're absolutely right. I've broken out the call-site fixes into a focused PR: #33562

That PR addresses only the broken call sites from the unpartitioned checks refactor:

  • Fixes the AssetCheckNode constructor mismatches (P1)
  • Fixes the from_subset parameter mismatches in operands.py (P1)
  • Restores the try/except guard for max runtime tag parsing (P2)
  • Fixes additional broken call sites (entity_subset.py, asset_check_execution_record.py)

All tests pass (1013 asset defs, 199 automation condition, 8 monitoring daemon). Happy to scope out the remaining topics into additional focused PRs as well.

@Vamsi-klu

Copy link
Copy Markdown
Author

Closing this. It bundled docs, core-performance, and integration-config changes on top of the proposed partitioned-asset-checks refactor that was ultimately abandoned, and it now conflicts with master across many files. Rather than force a sprawling rebase, I'll re-submit the still-relevant pieces as small, single-purpose PRs against current master. Thanks!

@Vamsi-klu Vamsi-klu closed this Jun 20, 2026
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.

2 participants