Trigger-based retraining (schedule, drift, performance) in MLOps - Time & Space Complexity
Start learning this pattern below
Jump into concepts and practice - no test required
When retraining machine learning models based on triggers like schedule, data drift, or performance, it's important to know how the time to decide and run retraining grows as data or checks increase.
We want to understand how the retraining process scales with more data and more frequent checks.
Analyze the time complexity of the following retraining trigger check.
for batch in data_batches:
drift_score = calculate_drift(batch)
performance = evaluate_model(batch)
if drift_score > drift_threshold or performance < perf_threshold:
retrain_model()
break
wait_until_next_schedule()
This code checks each batch for drift and performance, triggers retraining if needed, or waits for the next scheduled check.
Look at what repeats as input grows.
- Primary operation: Looping over data batches to calculate drift and evaluate performance.
- How many times: Once per batch until retraining triggers or all batches checked.
As the number of data batches grows, the checks increase linearly.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | About 10 drift and performance checks |
| 100 | About 100 checks |
| 1000 | Up to 1000 checks |
Pattern observation: The number of operations grows directly with the number of batches checked.
Time Complexity: O(n)
This means the time to decide on retraining grows in a straight line with the number of data batches checked.
[X] Wrong: "Retraining checks happen instantly no matter how much data there is."
[OK] Correct: Each batch requires separate checks, so more batches mean more time spent before deciding.
Understanding how retraining triggers scale helps you explain system responsiveness and efficiency in real projects.
What if we added parallel processing to check batches simultaneously? How would the time complexity change?
Practice
Solution
Step 1: Understand trigger-based retraining concept
Trigger-based retraining means models update automatically when certain conditions happen, like data changes or performance drops.Step 2: Compare options to concept
Only Automatically update models when data or performance changes describes automatic updates based on triggers, matching the concept.Final Answer:
Automatically update models when data or performance changes -> Option AQuick Check:
Trigger-based retraining = automatic updates [OK]
- Confusing manual retraining with trigger-based retraining
- Thinking triggers only store data
- Assuming triggers visualize data
training_data?Solution
Step 1: Recall correct SQL trigger syntax
Standard SQL triggers use CREATE TRIGGER, specify timing (AFTER), event (INSERT), table, and procedure to execute.Step 2: Match syntax to options
CREATE TRIGGER retrain_trigger AFTER INSERT ON training_data FOR EACH ROW EXECUTE PROCEDURE start_retraining(); matches correct syntax: CREATE TRIGGER retrain_trigger AFTER INSERT ON training_data FOR EACH ROW EXECUTE PROCEDURE start_retraining();Final Answer:
CREATE TRIGGER retrain_trigger AFTER INSERT ON training_data FOR EACH ROW EXECUTE PROCEDURE start_retraining(); -> Option DQuick Check:
Correct trigger syntax = CREATE TRIGGER retrain_trigger AFTER INSERT ON training_data FOR EACH ROW EXECUTE PROCEDURE start_retraining(); [OK]
- Using CALL instead of EXECUTE PROCEDURE
- Wrong order of keywords
- Missing FOR EACH ROW clause
CREATE OR REPLACE FUNCTION check_drift() RETURNS trigger AS $$
BEGIN
IF NEW.error_rate > 0.1 THEN
PERFORM start_retraining();
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;What happens when a new row with
error_rate = 0.15 is inserted?Solution
Step 1: Analyze trigger function logic
The function checks if NEW.error_rate > 0.1; if true, it calls start_retraining().Step 2: Apply condition to given data
Since error_rate is 0.15, which is greater than 0.1, the retraining procedure is called.Final Answer:
The retraining procedure is called because error_rate > 0.1 -> Option AQuick Check:
error_rate 0.15 > 0.1 triggers retraining [OK]
- Thinking triggers don't run on INSERT
- Assuming syntax error without checking code
- Believing row insertion fails
CREATE TRIGGER retrain_on_drop AFTER UPDATE ON model_metrics FOR EACH ROW WHEN (NEW.accuracy < OLD.accuracy) EXECUTE PROCEDURE start_retraining();
But retraining never starts. What is the likely problem?
Solution
Step 1: Understand WHEN clause support
Not all SQL databases support the WHEN clause in triggers; some require condition checks inside the function.Step 2: Identify why retraining doesn't start
If the database ignores the WHEN clause, the condition is never checked, so retraining never triggers.Final Answer:
The WHEN clause is not supported in all SQL dialects -> Option BQuick Check:
WHEN clause support varies by SQL dialect [OK]
- Assuming triggers can't run AFTER UPDATE
- Confusing functions and procedures
- Thinking trigger names cause failure
Solution
Step 1: Understand combined condition requirement
The retraining should happen only if both drift and accuracy conditions are met together.Step 2: Evaluate options for combined logic
Create a trigger that calls a procedure checking both drift and accuracy before retraining uses a single trigger calling a procedure that checks both conditions before retraining, ensuring both must be true.Step 3: Why other options fail
Create two separate triggers: one for drift and one for accuracy, each retraining independently retrains independently on each condition, not requiring both. Schedule retraining daily regardless of drift or accuracy ignores conditions. Manually retrain the model when you notice performance issues is manual, not trigger-based.Final Answer:
Create a trigger that calls a procedure checking both drift and accuracy before retraining -> Option CQuick Check:
Combined condition needs single trigger with logic [OK]
- Using separate triggers causing unnecessary retraining
- Ignoring condition checks in triggers
- Relying on manual retraining only
