Skip to content

rafaelgallani/tilt-live-update-serialized

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tilt's Live Update serialization reproduction

This repository demonstrates that Tilt's live updates execute serially (one service at a time) even when max_parallel_updates is set to a high value. Docker builds respect this setting and run in parallel, while live updates do not.

The issue

When a shared file (like common/shared.py) changes, all 80 services need to sync the update. Despite setting max_parallel_updates=100, the live updates happen one at a time, taking significantly longer than necessary - it gets worse if you have to run something when restarting or if it takes more in your case to do so.

Expected behavior: Live updates should run in parallel (up to max_parallel_updates concurrent updates).

Actual behavior: Live updates run serially, one service completes before the next starts.

Prerequisites

Steps

# 1. Clone this repository
git clone <repo-url>
cd tilt-liveupdate-serial-repro

# 2. Create a k3d cluster
./scripts/test.sh setup

# 3. Start Tilt (in one terminal)
./scripts/test.sh start

# 4. Wait for all 80 services to be green in the Tilt UI...

# 5. Trigger a live update
./scripts/test.sh trigger

# 6. Observe the Tilt UI
- Services will update ONE AT A TIME instead of in parallel
- You can check that by the "Pending" status across the services - while if it were a full docker build it'd be "Updating"
- It might be fast enough so that you can't notice it, but: 
    - If you are running a setup that takes a small while for them to be updated, then it might be more easily visible in that case
    - Additionally, you can just increase the number of services, then, at some point, you'll be able to check this behavior

What to Observe

After running trigger, watch the Tilt UI:

  • Services will show "pending" or "updating" status
  • Only ONE service updates at a time

Cleanup

./scripts/test.sh cleanup

About

example repo to reproduce serialized live updates happening on tilt

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors