Skip to content

Conversation

@BesikiML
Copy link
Contributor

@BesikiML BesikiML commented Jan 7, 2026

🐛 Problem

Reconciliation fails on Databricks serverless compute with:
[NOT_SUPPORTED_WITH_SERVERLESS] PERSIST TABLE is not supported on serverless compute

✅ Solution

Implemented capability-based caching detection that tests if caching actually works:

Changes Made

  1. Added is_serverless property - Tests caching by attempting to cache an empty DataFrame
  2. Conditional caching - Only caches if is_serverless is False
    • Classic clusters| Spark connect: → DataFrame is cached
    • Serverless: → write to delta

Fixed issue: #1438

Tests

  • manually tested on Databricks serverless compute
  • manually tested on classic cluster
  • added unit tests
  • added integration tests

Use Unity Catalog volumes instead of .cache() for serverless. Auto-detects compute type.
Fixes: [NOT_SUPPORTED_WITH_SERVERLESS]
@BesikiML BesikiML requested a review from m-abulazm January 7, 2026 03:16
@BesikiML BesikiML requested a review from a team as a code owner January 7, 2026 03:16
@BesikiML BesikiML linked an issue Jan 7, 2026 that may be closed by this pull request
1 task
@BesikiML BesikiML self-assigned this Jan 7, 2026
@github-actions
Copy link

github-actions bot commented Jan 7, 2026

✅ 131/131 passed, 7 flaky, 5 skipped, 9m29s total

Flaky tests:

  • 🤪 test_installs_and_runs_local_bladebridge (19.497s)
  • 🤪 test_transpiles_informatica_to_sparksql_non_interactive[True] (16.18s)
  • 🤪 test_transpiles_informatica_to_sparksql (17.582s)
  • 🤪 test_transpile_teradata_sql (18.596s)
  • 🤪 test_transpiles_informatica_to_sparksql_non_interactive[False] (3.066s)
  • 🤪 test_transpile_teradata_sql_non_interactive[True] (19.887s)
  • 🤪 test_transpile_teradata_sql_non_interactive[False] (4.495s)

Running from acceptance #3702

@codecov
Copy link

codecov bot commented Jan 7, 2026

Codecov Report

❌ Patch coverage is 40.00000% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 67.54%. Comparing base (2254cbd) to head (28d6a95).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
...abricks/labs/lakebridge/reconcile/recon_capture.py 57.14% 3 Missing ⚠️
...bricks/labs/lakebridge/reconcile/reconciliation.py 0.00% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2218      +/-   ##
==========================================
- Coverage   67.58%   67.54%   -0.04%     
==========================================
  Files          99       99              
  Lines        8825     8835      +10     
  Branches      915      916       +1     
==========================================
+ Hits         5964     5968       +4     
- Misses       2686     2692       +6     
  Partials      175      175              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Use specific exception types instead of broad Exception catch
to satisfy CI linter rules. Add cluster ID check for improved detection.
Avoids CONFIG_NOT_AVAILABLE exceptions by fetching all configs at once.
Passes all linter checks.
distinguishes serverless (CONFIG_NOT_AVAILABLE) from classic
clusters.
…ss-compute' of github.com:databrickslabs/lakebridge into 1438-feature-remorph-reconcile-fails-to-run-on-serverless-compute
Copy link
Contributor

@m-abulazm m-abulazm left a comment

Choose a reason for hiding this comment

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

LGTM

@m-abulazm m-abulazm self-requested a review February 9, 2026 14:11

@cached_property
def is_cache_supported(self) -> bool:
try:
Copy link
Collaborator

Choose a reason for hiding this comment

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

checking internally if there is a simpler and safer way to check for this. will get back soon.

Copy link
Collaborator

@sundarshankar89 sundarshankar89 left a comment

Choose a reason for hiding this comment

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

LGTM, I don't want to hold this hostage but I would like followup documentation udpate.

That the uc volume should have the same access controls applied to as of data (uc schema where data resides) or should have locked down only to have read and rite access for the app or job user.

cc: @m-abulazm and @BesikiML

@BesikiML BesikiML added this pull request to the merge queue Feb 11, 2026
Merged via the queue into main with commit 94ea4a4 Feb 11, 2026
6 checks passed
@BesikiML BesikiML deleted the 1438-feature-remorph-reconcile-fails-to-run-on-serverless-compute branch February 11, 2026 14:50
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.

[Feature]: Remorph Reconcile fails to run on serverless compute

3 participants