cancel
Showing results for 
Search instead for 
Did you mean: 
Get Started Discussions
cancel
Showing results for 
Search instead for 
Did you mean: 

DLT Job Clusters: Continuous vs Triggered Cluster Start Times

ChristianRRL
Contributor

Hi there,

I'm curious if anyone is able to definitively help me answer how DLT Job Clusters operate/run.

For example, the following is my baseline understanding of DLT Job Clusters. If I run a Triggered DLT Pipeline (e.g. daily) the job cluster takes more or less 5 minutes to spin up until it can start running through the operations. If I have it in Development mode the job cluster stays alive for a bit longer for testing/development, but if it's in Production mode the cluster starts and is killed immediately.

I'm curious about the for a "Semi-Continuous" (e.g. running every minute) or a Continuous Job Cluster, what happens to these DLT Job Clusters? Are they "Always On" in either/both of these cases? For the one that runs every minute, does it spin up an entire job cluster every time (which takes usually about 5 minutes)??

1 ACCEPTED SOLUTION

Accepted Solutions

melbourne
New Contributor III

Ideally one would expect clusters used for DLT pipeline to terminate after the pipeline execution has finished. However, while running in `development` environment, you'll notice it doesn't terminate on its own, whereas in `production` it terminates immediately after the pipeline has finished.

This is to do with `clusterShutdown.delay` value. In development the default value is 2 hours and in production it is 0 seconds. You can set this value in cluster settings on the UI under configuration tab:

 

"pipelines.clusterShutdown.delay": "0s"

 


This setting will shut down the cluster automatically.

Until databricks comes up with a serverless compute for DLT pipelines, I believe run the pipeline at every 15 minutes interval to save real cost, else just keep running it in continuous mode. 

View solution in original post

5 REPLIES 5

melbourne
New Contributor III

Ideally one would expect clusters used for DLT pipeline to terminate after the pipeline execution has finished. However, while running in `development` environment, you'll notice it doesn't terminate on its own, whereas in `production` it terminates immediately after the pipeline has finished.

This is to do with `clusterShutdown.delay` value. In development the default value is 2 hours and in production it is 0 seconds. You can set this value in cluster settings on the UI under configuration tab:

 

"pipelines.clusterShutdown.delay": "0s"

 


This setting will shut down the cluster automatically.

Until databricks comes up with a serverless compute for DLT pipelines, I believe run the pipeline at every 15 minutes interval to save real cost, else just keep running it in continuous mode. 

Hi @melbourne, intuitively I think what you're saying makes sense. I guess I have a general follow-up question. If what you're saying is right, then I agree 100% that anything more frequent than 15 minutes wouldn't really save on costs and should be set in continuous mode... but if that's the case, why even offer anything more frequent than 15 minutes? Why would anyone run a DLT job in Triggered mode every 5 minutes or less? It seems odd to me, and I feel like I'm missing something.

@Kaniz FYI. I'd be curious to get your thoughts on this as well!

Well it’s maybe for future and will be beneficial for serverless clusters 

Kaniz
Community Manager
Community Manager

Hi @ChristianRRL, Delta Live Tables (DLT) Job Clusters are designed to handle different types of workloads and their o....

 

Each DLT pipeline has two associated clusters:

  • The updates cluster processes pipeline updates.
  • The maintenance cluster runs daily maintenance tasks.

The configuration used by these clusters is determined by the clusters attribute specified in your p....

 

For a “Semi-Continuous” or a Continuous Job Cluster, the behavior would depend on the specific configuration of the pipeline. However, it’s important to note that the cluster has at least one active worker at all times until t....

 

In the case of a job that runs every minute, it would not necessarily spin up an entire job cluster every time. The cluster would remain active, and the job would be scheduled on this active cluster. This is more efficient and avoids the overhead of spinning up a new cluster for each job.

 

Please note that this is a high-level explanation and the actual behavior might vary based on the specific configuration and the nature of the tasks being performed. For more detailed information, you may want to refer to the official documentation or resources rela....

 

Kaniz
Community Manager
Community Manager

Hey there! Thanks a bunch for being part of our awesome community! 🎉 

We love having you around and appreciate all your questions. Take a moment to check out the responses – you'll find some great info. Your input is valuable, so pick the best solution for you. And remember, if you ever need more help , we're here for you! 

Keep being awesome! 😊🚀

 

Welcome to Databricks Community: Lets learn, network and celebrate together

Join our fast-growing data practitioner and expert community of 80K+ members, ready to discover, help and collaborate together while making meaningful connections. 

Click here to register and join today! 

Engage in exciting technical discussions, join a group with your peers and meet our Featured Members.