MLflow setup and basics in MLOps - Time & Space Complexity
When setting up MLflow and running basic tracking, it's important to understand how the time to log experiments grows as you add more runs or parameters.
We want to know how the system handles more data and if it slows down as usage increases.
Analyze the time complexity of the following MLflow tracking code snippet.
import mlflow
mlflow.set_tracking_uri("http://localhost:5000")
with mlflow.start_run():
mlflow.log_param("param1", 5)
mlflow.log_metric("accuracy", 0.9)
mlflow.log_artifact("model.pkl")
This code sets up MLflow tracking and logs parameters, metrics, and artifacts for one run.
Look at what repeats when logging multiple runs or parameters.
- Primary operation: Logging parameters, metrics, and artifacts for each run.
- How many times: Once per parameter, metric, or artifact logged; once per run started.
As you add more runs and log more data, the total logging operations increase roughly in proportion.
| Input Size (n runs) | Approx. Operations |
|---|---|
| 10 | About 10 times the logging calls |
| 100 | About 100 times the logging calls |
| 1000 | About 1000 times the logging calls |
Pattern observation: The work grows linearly as you add more runs or log more items.
Time Complexity: O(n)
This means the time to log data grows directly in proportion to how many runs or items you log.
[X] Wrong: "Logging more runs will only take a little more time, almost constant."
[OK] Correct: Each run and each logged item adds work, so time grows steadily, not fixed.
Understanding how logging scales helps you design experiments and systems that stay responsive as data grows.
"What if we batch log parameters and metrics instead of logging them one by one? How would the time complexity change?"