Bird
Raised Fist0
GCPcloud~5 mins

Preemptible and Spot VMs in GCP - Time & Space Complexity

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Time Complexity: Preemptible and Spot VMs
O(n)
Understanding Time Complexity

We want to understand how the time to run workloads on Preemptible and Spot VMs changes as we increase the number of tasks.

Specifically, how does the chance of VM interruptions affect the total time to complete all tasks?

Scenario Under Consideration

Analyze the time complexity of launching multiple Preemptible or Spot VMs to run tasks.

// Pseudocode for launching N Preemptible VMs
for i in 1 to N:
  create VM instance with preemptible flag
  run task on VM
  if VM is preempted:
    restart task on new VM
  else:
    complete task

This sequence runs N tasks on VMs that can be stopped anytime, requiring restarts.

Identify Repeating Operations

Look at what happens repeatedly when running tasks on Preemptible or Spot VMs.

  • Primary operation: Creating VM instances and running tasks.
  • How many times: At least N times, but possibly more if VMs are preempted and tasks restart.
How Execution Grows With Input

As the number of tasks (N) grows, the number of VM creations grows at least linearly.

Input Size (n)Approx. VM Creations
1010 to 15 (some restarts)
100100 to 150 (more restarts possible)
10001000 to 1500 or more (many restarts)

Pattern observation: The total VM creations grow roughly linearly with tasks, but preemptions add extra restarts increasing total operations.

Final Time Complexity

Time Complexity: O(n)

This means the total time and VM operations grow roughly in direct proportion to the number of tasks, with some extra overhead from restarts.

Common Mistake

[X] Wrong: "Preemptible VMs always finish tasks without interruption, so time grows exactly with task count."

[OK] Correct: Preemptible and Spot VMs can stop anytime, causing tasks to restart and increasing total operations beyond just the task count.

Interview Connect

Understanding how interruptions affect workload time shows you can plan for real cloud behavior, a key skill for designing reliable systems.

Self-Check

"What if we switched from Preemptible VMs to regular VMs without interruptions? How would the time complexity change?"

Practice

(1/5)
1. What is the main advantage of using Preemptible or Spot VMs in Google Cloud?
easy
A. They offer unlimited storage capacity
B. They provide guaranteed uptime for critical applications
C. They cost less but can be stopped at any time
D. They automatically scale without user input

Solution

  1. Step 1: Understand the cost and availability trade-off

    Preemptible and Spot VMs are cheaper because Google can stop them anytime to reclaim resources.
  2. Step 2: Identify the main benefit

    The main benefit is cost savings with the risk of interruption, not guaranteed uptime or unlimited storage.
  3. Final Answer:

    They cost less but can be stopped at any time -> Option C
  4. Quick Check:

    Cost savings with interruptions = D [OK]
Hint: Cheaper VMs can be stopped anytime, so cost saving is main benefit [OK]
Common Mistakes:
  • Thinking they guarantee uptime
  • Assuming they scale automatically
  • Confusing with storage features
2. Which of the following is the correct way to specify a Spot VM in a Google Cloud VM creation command?
easy
A. gcloud compute instances create my-vm --spot
B. gcloud compute instances create my-vm --interruptible
C. gcloud compute instances create my-vm --preemptible
D. gcloud compute instances create my-vm --ephemeral

Solution

  1. Step 1: Recall the flag for Spot VMs

    Spot VMs use the flag --spot in the gcloud command.
  2. Step 2: Differentiate from Preemptible flag

    --preemptible is for older Preemptible VMs, --spot is the newer recommended option.
  3. Final Answer:

    gcloud compute instances create my-vm --spot -> Option A
  4. Quick Check:

    Spot VM flag = --spot [OK]
Hint: Spot VMs use --spot flag, not --preemptible [OK]
Common Mistakes:
  • Using --preemptible for Spot VMs
  • Confusing --interruptible as a flag
  • Using unrelated flags like --ephemeral
3. Consider this snippet of a VM creation command:
gcloud compute instances create test-vm --zone=us-central1-a --spot --machine-type=e2-medium
What will happen if Google Cloud needs the resources back?
medium
A. The VM will automatically migrate to another zone
B. The VM will continue running without interruption
C. The VM will be stopped immediately without warning
D. The VM will receive a 30-second warning before stopping

Solution

  1. Step 1: Understand Spot VM behavior on resource reclamation

    Spot VMs are interruptible but Google Cloud sends a 30-second warning before stopping them.
  2. Step 2: Eliminate other options

    Immediate stop without warning is incorrect; automatic migration does not happen for Spot VMs; uninterrupted running contradicts the interruptible nature.
  3. Final Answer:

    The VM will receive a 30-second warning before stopping -> Option D
  4. Quick Check:

    Spot VMs get 30-second warning before stop = A [OK]
Hint: Spot VMs get 30-second warning before stopping [OK]
Common Mistakes:
  • Assuming immediate stop without warning
  • Thinking Spot VMs migrate automatically
  • Believing Spot VMs never stop
4. You created a VM with the command:
gcloud compute instances create my-vm --preemptible --zone=us-east1-b
But you want to switch to Spot VM instead. What is the correct fix?
medium
A. Add --spot flag without removing --preemptible
B. Replace --preemptible with --spot in the command
C. Change the zone to a Spot-only zone
D. Use --interruptible flag instead of --preemptible

Solution

  1. Step 1: Identify the correct flag for Spot VMs

    Spot VMs require the --spot flag, not --preemptible.
  2. Step 2: Correct the command by replacing flags

    Remove --preemptible and add --spot to switch VM type.
  3. Final Answer:

    Replace --preemptible with --spot in the command -> Option B
  4. Quick Check:

    Switching VM type requires flag replacement = B [OK]
Hint: Remove --preemptible, add --spot to switch VM type [OK]
Common Mistakes:
  • Adding --spot without removing --preemptible
  • Changing zone expecting Spot-only zones
  • Using non-existent --interruptible flag
5. You want to run a batch job that can tolerate interruptions and save costs. Which approach best uses Spot VMs to handle sudden stops and restarts?
hard
A. Design the job to save progress frequently and restart automatically on VM preemption
B. Use Spot VMs without any checkpointing or restart logic
C. Run the job on standard VMs to avoid interruptions
D. Use Spot VMs but disable automatic restarts

Solution

  1. Step 1: Understand Spot VM interruption nature

    Spot VMs can stop anytime, so jobs must handle interruptions gracefully.
  2. Step 2: Choose a strategy to handle interruptions

    Saving progress frequently and restarting automatically ensures job completion despite stops.
  3. Step 3: Eliminate unsafe options

    Running without checkpointing risks data loss; standard VMs cost more; disabling restarts loses fault tolerance.
  4. Final Answer:

    Design the job to save progress frequently and restart automatically on VM preemption -> Option A
  5. Quick Check:

    Checkpointing + auto-restart = reliable Spot VM use [OK]
Hint: Checkpoint progress and auto-restart for Spot VM jobs [OK]
Common Mistakes:
  • Ignoring checkpointing and restart logic
  • Choosing standard VMs for cost savings
  • Disabling automatic restarts on Spot VMs