Databricks Training
Modules

← Platform Fundamentals & Architecture Review

Compute: serverless, classic, and access modes

Compute is where your money goes and where most of your failures happen. There are three decisions: which compute type, which access mode, and which runtime version. Get all three right and most performance and permission problems never appear.

The three compute types

Databricks' own docs organize compute into three families (Compute, page updated 2026-07-10):

Serverless Classic SQL warehouse
Runs in Databricks account your cloud account either, depending on type
Start time seconds minutes seconds (serverless)
Idle cost none you pay until auto-terminate depends
Network control account-level (NCC) full — your VNet/VPC depends
Custom libraries / init scripts limited full n/a
Best for notebooks, jobs, pipelines custom networking, GPUs, Scala/R, init scripts BI and SQL

Serverless is GA and is the default in most workspaces — no enablement step needed (Serverless compute, updated 2026-07-10). Treat it as the default choice and justify departures from it, not the reverse. That's an inversion from how the platform was taught before 2025 and it catches experienced people out.

Reach for classic when you specifically need:

Cost intuition

Serverless removes idle cost, which is usually the biggest source of waste — clusters sitting warm while an analyst is at lunch. But serverless bills at a higher rate per unit of work. The rule of thumb that survives contact with reality:

Don't guess. Module E9 shows how to answer this from your own system.billing.usage table rather than from a blog post.

Access modes — renamed, and it matters

This is a rename that breaks older material, so read carefully.

Current name Formerly What it means
Dedicated Single user One user (or one group) owns the compute. Full language support.
Standard Shared Multiple users share it safely, with isolation between them.
Auto (new) Databricks selects the mode for you. This is now the default selection.

Sources: Dedicated access mode — the UI shows "Dedicated (formerly: Single-user)"; the standard-mode doc is titled "…standard access mode (formerly shared access mode)". Configure compute confirms Auto as the default.

The reason this shows up as an exam question and a real-world blocker: access mode determines what your code is allowed to do. Standard mode enforces isolation between users, which historically restricted certain operations — some RDD APIs, some Scala paths, certain init scripts. If a notebook works on your dedicated cluster and fails on the shared job cluster, access mode is the first thing to check, not the code.

Runtime versions

The Databricks Runtime (DBR) is the packaged image: a specific Apache Spark version, a specific Delta Lake version, Python, and a pile of libraries.

Verified from the runtime support matrix on 2026-07-30:

Version LTS? Spark Delta Lake Released End of support
DBR 19 no (current GA) 4.2.0 4.2.0 2026-06-15 TBD
DBR 18 LTS 4.1.0 4.2.0 2026-06-10 2029-06-10
DBR 17.3 LTS 4.0.0 4.0.0 2025-10-22 2028-10-22
DBR 16.4 LTS 3.5.2 3.3.1 2025-05-09 2028-05-09
DBR 15.4 LTS 3.5.0 3.2.0 2024-08-19 2027-08-19
DBR 13.3 LTS 3.4.1 2023-08-22 2026-08-22 ⚠️

Practical guidance: run LTS in production. Non-LTS releases have short support windows and force upgrades on someone else's schedule. Today that means DBR 18 LTS for new work, or 17.3 LTS if you need a version that's been in the field longer.

⚠️ DBR 13.3 LTS goes out of support 2026-08-22 — within weeks of this writing. If you have jobs pinned to it, that's an action item, not a reading item.

Note also that Lakeflow pipelines use channels rather than pinned versions: CURRENT maps to DBR 17.3 and PREVIEW to DBR 18 (pipelines release notes, 2026-07-14).

Photon

Photon is a vectorized query engine written in C++ that replaces parts of Spark's JVM execution for SQL and DataFrame operations. It's not a different API — you don't write Photon code. You enable it, and qualifying operations get faster.

It helps most on scans, filters, joins, and aggregations over Delta/Parquet. It does nothing for arbitrary Python UDFs, because those can't be vectorized into its engine. If your job is one big Python UDF, Photon will not save you; rewriting the UDF might.

Primary source, if you want the engineering detail: Photon: A Fast Query Engine for Lakehouse Systems (SIGMOD 2022).

A decision checklist

Work top to bottom; stop at the first line that applies.

  1. Pure SQL / BI workload? → SQL warehouse (serverless).
  2. Need Scala, R, GPUs, or init scripts? → classic, dedicated access mode.
  3. Traffic must traverse your own firewall? → classic in your VNet/VPC.
  4. Everything else → serverless.

Then: pick the latest LTS runtime, and enable Photon unless you've measured that it doesn't help your specific workload.

Check yourself

  1. What are Dedicated and Standard access modes called in a 2024 tutorial?
  2. Your notebook runs fine interactively but fails when scheduled as a job. Name two compute-related causes before you look at the code.
  3. Which LTS runtime would you pin a new production pipeline to today, and why not the newest GA?
  4. When does Photon not help?
Answers
  1. Single user and Shared, respectively.
  2. (a) Access mode differs — interactive cluster is Dedicated, job cluster is Standard, and an operation your code uses is restricted there. (b) Runtime version differs, so a library or Spark behavior changed. Also plausible: the job runs as a service principal without the same grants.
  3. DBR 18 LTS — supported until 2029-06-10. Not DBR 19, because it's non-LTS with a short support window, which means a forced upgrade on Databricks' schedule rather than yours.
  4. On workloads dominated by arbitrary Python UDFs, which can't be vectorized into its C++ engine.

Teaching this section

← PreviousThe lakehouse and the three planesNext →Unity Catalog's object model
Compute: serverless, classic, and access modes
0:00 0:00