Skip to content

Add idle servable management preview docs - #4523

Open
atobiszei wants to merge 4 commits into
releases/2026/4from
atobisze_idle_docs
Open

Add idle servable management preview docs#4523
atobiszei wants to merge 4 commits into
releases/2026/4from
atobisze_idle_docs

Conversation

@atobiszei

@atobiszei atobiszei commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

@atobiszei atobiszei changed the title Add idle servable management preview Add idle servable management preview docs Sep 8, 2026
@atobiszei
atobiszei requested a lite review from Copilot September 8, 2026 13:22

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The new documentation contains a few correctness/clarity issues (notably around group swap timing/behavior and some link/style consistency) that should be addressed before merging.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Adds documentation for the new Idle Servable Management preview feature and surfaces it across existing docs, including a new metric for graph loaded/idle state.

Changes:

  • Adds a new preview doc page describing idle servable management, grouping, behavior, and metrics.
  • Cross-links the feature from generative use-case prep and model repository docs (classic + graph).
  • Documents the new ovms_graph_loaded metric and exposes the feature in the main features index.
File summaries
File Description
docs/prepare_generative_use_cases.md Adds a note pointing readers to idle servable management and --cache_dir.
docs/models_repository_graph.md Adds a note about unloading/reloading graph groups via idle management and group_name.
docs/models_repository_classic.md Adds a note about unloading/reloading model groups via idle management and group_name.
docs/metrics.md Adds ovms_graph_loaded gauge to the default metrics table.
docs/idle_servable_management.md New preview documentation page for idle servable management.
docs/features.md Adds idle servable management to the features list and overview section.
Review details

Suppressed comments (3)

docs/idle_servable_management.md:25

  • These sentences have a few grammatical issues (missing articles) and are a bit ambiguous; tightening the wording improves readability and reduces the chance of misinterpreting grouping semantics.
A group is unit OVMS loads and unloads. Add `group_name` to classic model configuration or MediaPipe graph configuration. All servables in same group load and unload together. Use groups for servables which must be available together, for example, graph and its dependent models.

Without `group_name`, every classic model and MediaPipe graph is its own group. Group named `permanent` stays loaded and is never unloaded.

OVMS keeps one non-permanent group active. A request for servable from another group waits for current group to finish its requests, then loads requested group. First request after unload includes wake-up latency. 

docs/idle_servable_management.md:30

  • This example is JSON; using a json code fence gives correct syntax highlighting, and capitalizing “JSON” matches common documentation style.
Example config json with grouping


```text

docs/idle_servable_management.md:58

  • The note says not to depend on a bounded switch time, but the implementation currently has a bounded drain wait (30s) and then fails the swap with an error. The docs should mention the timeout/failure behavior to set correct expectations.
> **Important:** Concurrent requests targeting loaded and unloaded groups have no scheduling policy in this preview. While requests run on active group, incoming traffic continues to that group. Do not depend on fair routing or a bounded switch time between groups.
  • Files reviewed: 6/6 changed files
  • Comments generated: 5
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/features.md Outdated
Comment thread docs/idle_servable_management.md
Comment thread docs/models_repository_classic.md Outdated
Comment thread docs/models_repository_graph.md Outdated

In case the graph includes python nodes, there should be included also a python file with the node implementation.

> **Note:** [Idle servable management](idle_servable_management.md) (preview) can unload inactive graph groups and reload them on inference request. Set `group_name` in graph configuration to load and unload related servables together.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is false positive - we have a lot of places where we don;t use that prefix.

Comment thread docs/prepare_generative_use_cases.md
@atobiszei
atobiszei marked this pull request as ready for review September 9, 2026 09:23
Comment thread docs/features.md

[Learn more](online_config_changes.md)

## Idle Servable Management (Preview)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unload inactive model and graph groups, then load them with the next inference request. Reduce and reuse the CPU and GPU memory needed to serve multiple large models.

@rasapala rasapala left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One suggestion for consideration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants