Prefer package-ready peers when planning Skippy splits - #471
Merged
Conversation
Validation * Validation tier: Tier 3 - shared Skippy planning/runtime behavior; changes topology scoring inputs and the runtime planner adapter. * git diff --check origin/main...HEAD: PASS * cargo fmt --all -- --check: PASS * cargo test -p skippy-topology --lib package_aware: PASS, 5 passed * cargo test -p skippy-topology --lib: PASS, 26 passed * LLAMA_STAGE_BUILD_DIR=/Users/Funtland/Downloads/mesh-llm/.deps/llama.cpp/build-stage-abi-metal cargo test -p mesh-llm-host-runtime inference::skippy::topology --lib: PASS, 3 passed * LLAMA_STAGE_BUILD_DIR=/Users/Funtland/Downloads/mesh-llm/.deps/llama.cpp/build-stage-abi-metal cargo check -p mesh-llm-host-runtime: PASS * LLAMA_STAGE_BUILD_DIR=/Users/Funtland/Downloads/mesh-llm/.deps/llama.cpp/build-stage-abi-metal cargo check -p mesh-llm: PASS * Ledger: not applicable - not required for selected validation tier/change family. * Version: not applicable - not required for selected validation tier/change family. * Not run: multi-node Skippy split smoke - not required for this local PR-ready planning slice; topology decisions and runtime adapter mapping are covered by local tests. Rollback * git revert HEAD
i386
self-requested a review
May 8, 2026 21:42
Collaborator
|
@IvGolovach incredibly cool. Reviewing. |
Collaborator
|
Finding
Open question Should the live |
i386
requested changes
May 8, 2026
i386
left a comment
Collaborator
There was a problem hiding this comment.
After these are addressed, please merge! 👍
Validation * Validation tier: Tier 2R — post-review narrow runtime correction for the Skippy split planner path. * cargo fmt --all: PASS * cargo fmt --all -- --check: PASS * git diff --check: PASS * git diff --cached --check: PASS * LLAMA_STAGE_BUILD_DIR=/Users/Funtland/Downloads/mesh-llm/.deps/llama.cpp/build-stage-abi-metal cargo check -p mesh-llm-host-runtime: PASS * LLAMA_STAGE_BUILD_DIR=/Users/Funtland/Downloads/mesh-llm/.deps/llama.cpp/build-stage-abi-metal cargo test -p mesh-llm-host-runtime split_topology_planner_prefers_cached_participant_in_runtime_path --lib: PASS * LLAMA_STAGE_BUILD_DIR=/Users/Funtland/Downloads/mesh-llm/.deps/llama.cpp/build-stage-abi-metal cargo test -p mesh-llm-host-runtime split_inventory_package_signal --lib: PASS * LLAMA_STAGE_BUILD_DIR=/Users/Funtland/Downloads/mesh-llm/.deps/llama.cpp/build-stage-abi-metal cargo test -p mesh-llm-host-runtime split_participant_signature --lib: PASS * LLAMA_STAGE_BUILD_DIR=/Users/Funtland/Downloads/mesh-llm/.deps/llama.cpp/build-stage-abi-metal cargo test -p mesh-llm-host-runtime split_topology_planner --lib: PASS * LLAMA_STAGE_BUILD_DIR=/Users/Funtland/Downloads/mesh-llm/.deps/llama.cpp/build-stage-abi-metal cargo test -p mesh-llm-host-runtime remote_load_request_uses_package_identity_and_layer_mode --lib: PASS * LLAMA_STAGE_BUILD_DIR=/Users/Funtland/Downloads/mesh-llm/.deps/llama.cpp/build-stage-abi-metal cargo test -p mesh-llm-host-runtime topology_adapter --lib: PASS * cargo test -p skippy-topology --lib: PASS * Ledger: not applicable — not required for selected validation tier/change family. * Version: not applicable — not required for selected validation tier/change family. * Not run: full local workspace test suite — not required for selected validation tier; mandatory PR CI will validate the final pushed SHA. Rollback * git revert HEAD
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Skippy split planning can now account for layer-package readiness before assigning contiguous layer ranges. When peers have comparable capacity, the planner prefers nodes that already have the needed package bytes, penalizes missing or non-transferable artifacts, treats RTT as a cost instead of a hard exclusion, and preserves the existing weighted behavior when no package signals are available.
Why
Recent Skippy package work makes layer artifacts a first-class part of distributed serving. Capacity-only planning can still choose a topology that looks balanced but causes avoidable package movement, startup delay, or a failed placement when a peer cannot fetch missing artifacts.
This keeps the existing capacity balancing model, but gives the planner enough optional locality and transfer signals to choose a more realistic split topology for package-backed Skippy runs.
Diff scope
NodePlacementSignaltoskippy-topologyfor optional cache-locality, missing-artifact, RTT, transfer-support, and availability inputs.plan_package_aware_contiguouswhile keepingplan_weighted_contiguousas the no-signal compatibility path.StagePlanwith defaulted package-readiness metadata for cached bytes, missing bytes, and RTT.Protocol / compatibility
No mesh protocol, gossip, protobuf, ALPN, or CLI contract changes are introduced.
The new
StagePlanfields are additive and defaulted for deserialization. Existing callers ofplan_weighted_contiguouscontinue to get the previous behavior. When no package placement signals are provided, the package-aware planner intentionally matches the existing weighted planner output.Branch integrity
main8d12c0be26fb3af4ed309fde6df65acfabff0162git rev-list --left-right --count origin/main...HEAD:0 18d12c0be26fb3af4ed309fde6df65acfabff0162origin/mainis an ancestor ofHEAD; no divergence.Commit integrity
1c0c85b1c4e749cd7a06cce8b0485bcfc6c68137 Add package-aware Skippy topology planningDiff hygiene
git diff --check origin/main...HEAD: PASS, no output.Validation
Validation mode: Mode 3 - shared Skippy planning/runtime behavior. This changes topology scoring inputs and the runtime planner adapter, so local proof covers both the planner crate and the host-runtime adapter.
Not run: multi-node Skippy split smoke. This local PR-ready slice is covered by planner and runtime-adapter tests; required GitHub CI should still be treated as the final merge gate after the PR is opened.
CI context confirmation
Pending - GitHub Actions cannot run until the PR is opened. No workflow files or CI context names changed.
Runtime safety
crates/skippy-topology/src/lib.rs,crates/mesh-llm-host-runtime/src/inference/skippy/topology.rs, andcrates/mesh-llm-host-runtime/src/runtime/local.rs.Documentation integrity
Not applicable - no README, runbook, command, or user-facing CLI behavior changed.
Migration notes
Not applicable - no database or persisted-state migration changed.
Rollback plan
Rollback: revert this PR.
DB downgrade: not applicable.
Data repair: not applicable.
Operational caveats: rollback restores capacity-only Skippy topology planning.
Known residual risks