Skip to content

Conversation

@TimothyW553
Copy link
Collaborator

@TimothyW553 TimothyW553 commented Dec 1, 2025

🥞 Stacked PR

Use this link to review incremental changes.


Which Delta project/connector is this regarding?

  • Spark
  • Standalone
  • Flink
  • Kernel
  • Other (fill in here)

Description

This PR implements the catalog-managed snapshot management wiring for Coordinated Commits v2 (CCv2), connecting the wireframe components introduced in #5607 to the Unity Catalog infrastructure.

Key changes:

  • Wire DeltaSnapshotManagerFactory.fromCatalogTable() to detect UC-managed tables and create CatalogManagedSnapshotManager
  • Connect UnityCatalogAdapter to UCCatalogManagedClient for snapshot/commit-range loading
  • Add kernelUnityCatalog (compile + test) dependency to kernel-spark module

Architecture

flowchart TD
      Factory[DeltaSnapshotManagerFactory.fromCatalogTable]
      Factory --> UCAdapter[UnityCatalogAdapter.fromCatalog]
      UCAdapter --> Check{Adapter present?}

      Check -->|Yes| CatalogMgr[CatalogManagedSnapshotManager]
      CatalogMgr -.->|delegates to| Adapter[UnityCatalogAdapter]
      Adapter -.->|uses| UCClient[UCCatalogManagedClient]

      Check -->|No| PathMgr[PathBasedSnapshotManager]
Loading

How was this patch tested?

Locally and CI.

Does this PR introduce any user-facing changes?

No.

@TimothyW553 TimothyW553 marked this pull request as ready for review December 1, 2025 23:05
@TimothyW553 TimothyW553 force-pushed the stack/ccv2-uc-impl branch 15 times, most recently from f251dd5 to 8122696 Compare December 2, 2025 20:35
@TimothyW553 TimothyW553 changed the title Implement UC snapshot manager and adapter wiring [Kernel-Spark] Wire up catalog-managed snapshot management for CCv2 Dec 2, 2025
requireNonNull(spark, "spark is null");
requireNonNull(hadoopConf, "hadoopConf is null");

Optional<ManagedCatalogAdapter> adapterOpt =
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This is currently UC-specific and will be address in a follow up stack/PR. Although it is UC-specific, generic catalog design is kept in mind.

As we see below, there is no downcasting to UnityCatalogAdapter since getTableId() and getTablePath() are on the ManagedCatalogAdapter interface. Only the discovery call needs generalization when supporting additional catalogs.

return tablePath;
}

public String getEndpoint() {
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

getTableId()/getTablePath() are on the generic interface. endpoint/token are not exposed, they're encapsulated inside UCClient, keeping auth details internal to the UC adapter.

@TimothyW553 TimothyW553 force-pushed the stack/ccv2-uc-impl branch 7 times, most recently from ef369c6 to c2c9b92 Compare December 4, 2025 20:19
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.

1 participant