2 Commits
Author SHA1 Message Date
Chris LuandGitHub 03388c4beb placement: let callers reject candidates placement cannot judge (#10581)
Replica placement rules and "this node already holds the volume" are
constraints the picker has no way to model. The predicate receives the
candidate's rack and data center, because the constraints needing them are
exactly the ones a bare node cannot express.

Claude-Session: https://claude.ai/code/session_01Ks16jnt4S7gdDk8cheQ3xu
2026-08-05 00:18:22 -07:00
Chris LuandGitHub aceab0802e placement: move the target picker out of the shell package (#10580)
weed/shell is the CLI command layer: every file there registers a command in
init(). Importing it for placement drags that whole surface, and its
registration side effects, into callers that run no CLI.

The picker now depends only on master_pb and storage/types, with a node type
of its own -- smaller than the balancer's Node, which also carries the volumes
it holds, and placement never needs those.

Claude-Session: https://claude.ai/code/session_01Ks16jnt4S7gdDk8cheQ3xu
2026-08-05 00:12:04 -07:00