Skip to content

Move planning hints from global coordinator state to per-operation#101

Merged
1ntEgr8 merged 1 commit intomainfrom
users/elton/hints-per-operation
Feb 27, 2026
Merged

Move planning hints from global coordinator state to per-operation#101
1ntEgr8 merged 1 commit intomainfrom
users/elton/hints-per-operation

Conversation

@1ntEgr8
Copy link
Copy Markdown
Collaborator

@1ntEgr8 1ntEgr8 commented Feb 27, 2026

Summary

  • Move planning hints from global Coordinator state to per-copy/pull operation
  • Add hints field to SubmitCopyRequest and SubmitPullRequest messages
  • Add RoutingHint with serializable Path and HintStore for hint management
  • Update Client API to accept optional hints per copy/pull call

@1ntEgr8 1ntEgr8 force-pushed the users/elton/pass-run-by-value branch from c35d43b to fefa490 Compare February 27, 2026 02:34
@1ntEgr8 1ntEgr8 force-pushed the users/elton/hints-per-operation branch from 4896fb0 to 43de7e1 Compare February 27, 2026 02:34
@1ntEgr8 1ntEgr8 force-pushed the users/elton/pass-run-by-value branch from fefa490 to 7d5a2d3 Compare February 27, 2026 15:20
@1ntEgr8 1ntEgr8 force-pushed the users/elton/hints-per-operation branch from 43de7e1 to db244f0 Compare February 27, 2026 15:20
@1ntEgr8 1ntEgr8 force-pushed the users/elton/pass-run-by-value branch from 7d5a2d3 to c3574bc Compare February 27, 2026 15:21
@1ntEgr8 1ntEgr8 force-pushed the users/elton/hints-per-operation branch from db244f0 to b285922 Compare February 27, 2026 15:23
@1ntEgr8 1ntEgr8 force-pushed the users/elton/pass-run-by-value branch from c3574bc to 89357f1 Compare February 27, 2026 15:26
@1ntEgr8 1ntEgr8 force-pushed the users/elton/hints-per-operation branch from b285922 to c8c2bb0 Compare February 27, 2026 15:26
@1ntEgr8 1ntEgr8 force-pushed the users/elton/pass-run-by-value branch from 89357f1 to 1d6a072 Compare February 27, 2026 15:49
@1ntEgr8 1ntEgr8 force-pushed the users/elton/hints-per-operation branch from c8c2bb0 to 36c02a2 Compare February 27, 2026 15:49
@1ntEgr8 1ntEgr8 force-pushed the users/elton/pass-run-by-value branch from 1d6a072 to 40c37ee Compare February 27, 2026 15:55
@1ntEgr8 1ntEgr8 force-pushed the users/elton/hints-per-operation branch from 36c02a2 to 5fe3eed Compare February 27, 2026 15:55
@1ntEgr8 1ntEgr8 force-pushed the users/elton/pass-run-by-value branch from 40c37ee to 6db5447 Compare February 27, 2026 15:57
@1ntEgr8 1ntEgr8 force-pushed the users/elton/hints-per-operation branch 3 times, most recently from d47cf0a to 5fe3eed Compare February 27, 2026 16:00
@1ntEgr8 1ntEgr8 force-pushed the users/elton/pass-run-by-value branch 2 times, most recently from 40c37ee to ab3f95b Compare February 27, 2026 16:03
@1ntEgr8 1ntEgr8 force-pushed the users/elton/hints-per-operation branch from 5fe3eed to c1688da Compare February 27, 2026 16:05
@1ntEgr8 1ntEgr8 force-pushed the users/elton/pass-run-by-value branch from ab3f95b to 93f6338 Compare February 27, 2026 16:19
@1ntEgr8 1ntEgr8 force-pushed the users/elton/hints-per-operation branch from c1688da to b8e99db Compare February 27, 2026 16:19
@1ntEgr8 1ntEgr8 force-pushed the users/elton/pass-run-by-value branch from 93f6338 to 3ff07eb Compare February 27, 2026 17:26
@1ntEgr8 1ntEgr8 force-pushed the users/elton/hints-per-operation branch from b8e99db to 892f7f7 Compare February 27, 2026 17:26
@1ntEgr8 1ntEgr8 force-pushed the users/elton/pass-run-by-value branch from 3ff07eb to 87d1e39 Compare February 27, 2026 17:27
@1ntEgr8 1ntEgr8 force-pushed the users/elton/hints-per-operation branch from 892f7f7 to 11980d0 Compare February 27, 2026 17:27
Base automatically changed from users/elton/pass-run-by-value to main February 27, 2026 17:31
@1ntEgr8 1ntEgr8 force-pushed the users/elton/hints-per-operation branch 4 times, most recently from 026a6d3 to cd9634a Compare February 27, 2026 19:08
@1ntEgr8 1ntEgr8 force-pushed the users/elton/hints-per-operation branch from cd9634a to f24fa2c Compare February 27, 2026 20:27
Instead of setting hints globally on the Coordinator (which requires
coordinating hint state across operations), hints are now passed with
each copy/pull submission. This makes the API stateless and allows
different operations to use different routing strategies.

Key changes:
- Add hints parameter to SubmitCopyRequest and SubmitPullRequest
- Add RoutingHint with serializable topology path
- Update Client.copy() and Client.pull() to accept hints
- Remove global add_hint/clear_hints from Coordinator pybind
- Add Topology serialization support for hint transport
- Extract Handler, Executor, Gateway, DispatchManager, and Types from
  monolithic Coordinator into separate files
- DispatchManager encapsulates CopyKey as private implementation detail
- Introduce ShardSubmission struct to reduce SubmitShard parameter count
- Merge operation_hints_ and operation_fingerprints_ into single map
- Add FinalizeAggregation to move post-completion bookkeeping into
  DispatchManager
- Replace CancelPendingIf with CancelPendingByTensors public API
- Assert on unknown copy_op_id in RecordResponse
- Use std::visit for SubmitResult handling instead of std::get_if
@1ntEgr8 1ntEgr8 force-pushed the users/elton/hints-per-operation branch from f24fa2c to 4460768 Compare February 27, 2026 20:57
@1ntEgr8 1ntEgr8 merged commit 8bf70a5 into main Feb 27, 2026
6 of 7 checks passed
@1ntEgr8 1ntEgr8 deleted the users/elton/hints-per-operation branch February 27, 2026 20:59
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.

1 participant