Repository navigation
feat(ray-data): add scheduler observability - #2293
Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
Signed-off-by: Praateek <praateekm@gmail.com>
b081b6a to
07f9e69
Compare
| _install_resource_admission_diagnostics(resource_manager_module, resource_policy_module) | ||
| _install_downstream_capacity_diagnostics(downstream_policy_module) | ||
| _install_scheduling_reasons(executor_state_module) | ||
| _install_actor_autoscaling_diagnostics(autoscaler_module) |
Signed-off-by: Praateek <praateekm@gmail.com>
Signed-off-by: Praateek <praateekm@gmail.com>
1. Deadlock prevention (liveness guarantee): when all ops are blocked and no tasks running, Ray Data bypasses backpressure to prevent deadlock -- tasks can dispatch even when scheduling_reason shows block 2. scheduling_reason clarification: no_actor_slot and operator_cannot_accept_input come from operator slot availability (op.can_add_input()), not from any backpressure policy 3. Document execution_resource_fields pattern: each resource group (allocation, usage, remaining_budget) emits _cpu/_gpu/_heap_memory/ _object_store_memory; note GPU pipelines need _gpu/_object_store variants 4. Add missing remaining_budget_heap_memory to ray_data_resource_budget_admission table 5. initial_size defaults to min_size when not specified 6. Add target_max_block_size to tuning knobs (default 128MB); critical for Curator video/embedding pipelines where large per-item payloads drive object store pressure and the pending_output_exceeds_object_store_budget throttle Signed-off-by: Weijia Chen <weijiac@nvidia.com>
Greptile SummaryThe PR adds an opt-in runtime shim for Ray 2.56.1 that records Ray Data resource-admission, downstream-backpressure, scheduling, and actor-autoscaling decisions in Ray session logs.
Confidence Score: 5/5The PR appears safe to merge with no concrete blocking or independently actionable non-blocking issues identified. The version and opt-in guards constrain the private-API shim appropriately, and the investigated hooks preserve Ray’s scheduling, backpressure, and actor-scaling decisions while adding diagnostic logging. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart LR
Env["Diagnostics environment variable"] --> Executor["RayDataExecutor.execute"]
Executor --> Installer["Install Ray 2.56.1 runtime hooks"]
Installer --> Admission["Resource admission hook"]
Installer --> Backpressure["Downstream backpressure hook"]
Installer --> Scheduling["Scheduling-reason hook"]
Installer --> Autoscaling["Actor autoscaling hook"]
Admission --> Logs["Ray Data session log"]
Backpressure --> Logs
Scheduling --> Autoscaling
Autoscaling --> Logs
Reviews (1): Last reviewed commit: "Merge branch 'main' into nmcur-214" | Re-trigger Greptile |
weijiac0619
left a comment
There was a problem hiding this comment.
LGTM! Awesome work on this, thanks!
Adds an opt-in Ray 2.56.1 runtime shim that writes Ray Data scheduling decisions to session logs without requiring a patched wheel.
Tests: 26 Ray Data backend tests passed in Docker.