# Ray 2.58.0 — Ray-2.58.0 - Product: Ray (https://whatsnew.fyi/product/ray) - Vendor: Anyscale - Date: 2026-08-23 - Version: 2.58.0 - Original notes: https://github.com/ray-project/ray/releases/tag/ray-2.58.0 - Permalink: https://whatsnew.fyi/product/ray/releases/2.58.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Add Dataset.with_columns for multi-column expression projection - **added** — Add write_delta for Delta Lake with catalog support - **added** — Add Torch inference API - **added** — Promote hash shuffle v2 to a selectable shuffle strategy with aggregation support, vectorized aggregation, and block splitting during aggregation - **added** — Add ignore_missing_paths and skip_paths to read_parquet on DatasourceV2 - **added** — Add delta_timestamps (temporal windows) to read_lerobot - **added** — Collect cluster usage metrics by sampling in background threads during execution - **added** — Tolerate actor deaths during init via DataContext.max_consecutive_actor_init_deaths - **added** — Expose RAY_DATA_HASH_SHUFFLE_MAP_TASK_TARGET_INPUT_BYTES in DataContext - **added** — Add configurable status code and Retry-After header for backpressure rejections - **added** — Add dependency-ordered shutdown for deployments - **added** — Add an optional tie-break key to best-fit node scheduling - **added** — Scale ingress request router replicas per proxy node - **added** — Ray Train integrates with TorchTPU backend - **added** — Add a public preemption API and a controller PreemptingState - **added** — Add data ingest metrics to the Train dashboard - **added** — Add experimental Ray Sandbox which runs task and actor code under gVisor and can run Docker-built images directly - **added** — Add SubslicePlacementGroup for gang scheduling on TPU subslices and single-host TPU support in SlicePlacementGroup - **fixed** — Fix an RCE where read_lance or nested pickle objects could execute arbitrary code - **deprecated** — Deprecate ray_remote_args_fn and Dataset.zip #### Highlights * **Ray Serve LLM:** In this release we've completed KV cache and token aware request routing, which was previewed in 2.57. Tokenization now happens in-process on the `LLMRouter` ingress replica, the routing decision is made there, tokens are transmitted out-of-band so the engine does not re-tokenize, KV lifecycle events are broadcast to every ingress replica (\#64642, \#64920, \#64949, \#65010, \#65095). KV cache and token aware routing is also aware of CPU KV caches, so offloaded KV cache blocks count toward a replica's cache hit (\#65063). * **Ray Core:** We enabled the capability to offload task events from. With `RAY_enable_task_events_to_dashboard_head` on, the task event buffer is replaced by the ray event recorder, events are exported from the aggregator agent to a task events head that keeps an in-memory store, and the state APIs and `ray.timeline` read from it (\#64835, \#65028, \#65123, \#65160, \#65218). Enabling the feature removes task event ingestion and serving from the GCS hot path. * **Ray Data:** We’ve added Databricks integrations for writing to DeltaLake, with Catalog support. We’ve also shipped a new shuffle v2 backend, featuring improved performance for joins and aggregations. * **Sandboxing:** We've also added experimental Ray Sandbox, which runs task and actor code under gVisor and can run Docker-built images directly (\#64964, \#65570). * **TPU Support:** Ray Train adds support for TorchTPU backend (\#64796), and Ray Core adds `SubslicePlacementGroup` for gang scheduling on TPU subslices, single-host TPU support in `SlicePlacementGroup`, and resource accounting for `tpu7x` and multi-core chips (\#64578, \#64079, \#64058). This lets TPU slices and subslices be reserved and trained on without external gang-scheduling glue. #### Ray Data ###### 🎉 New Features * Add `Dataset.with_columns` for multi-column expression projection (\#63858) * Add `write_delta` for Delta Lake, with catalog support (\#64923, \#65079) * Add Torch inference API (\#65157) * Promote hash shuffle v2 to a selectable shuffle strategy, with aggregation support, vectorized aggregation, and block splitting during aggregation (\#64953, \#64652, \#64956, \#65329, \#64897) * Add `ignore_missing_paths` and `skip_paths` to `read_parquet` on DatasourceV2 (\#65118) * Add `delta_timestamps` (temporal windows) to `read_lerobot` (\#64877) * Collect cluster usage metrics by sampling in background threads during execution (\#64686) * Tolerate actor deaths during init via `DataContext.max_consecutive_actor_init_deaths` (\#64846) * Expose `RAY_DATA_HASH_SHUFFLE_MAP_TASK_TARGET_INPUT_BYTES` in `DataContext` (\#65103) ###### 💫 Enhancements * Generate sortable, collision-resistant dataset IDs (\#65075) * Push `Limit` into `ReadFiles` when it sits directly on it, and extract `FileIndexer.list_file_infos` (\#65167, \#65168) * Use `BlockRefCounter` for object store memory estimation and remove `BlockRefCounter.clear()` (\#64456, \#64521) * Fail execution if no operator makes progress within a timeout, instead of hanging (\#65349) * Improve `BatchIterator` and `iter_torch_batches`, and allow a custom `collate_fn` with a custom device (\#64994, \#64967) * Skip downstream-capacity backpressure for eligible materializers (\#64844) * Shard exact download partitioning (\#64066) * Bump the `sort_reduce` memory multiplier to 3x and stop using `estimated_input_blocks` as the shuffle partition count (\#65176, \#65296, \#65335) * Disable cluster autoscaling when `PlacementGroupSchedulingStrategy` is in use (\#64417) * Propagate the operator name to shuffle tasks (\#64802) * Rename `reports_custom_op_stats` to `should_report_custom_op_stats` across all `MapTransformFn` variants (\#64461, \#64515) * Rename `allocated` to `reserved` and add type aliases in the autoscaling coordinator (\#64997, \#65096) * Deprecate `ray_remote_args_fn` and `Dataset.zip` (\#64963, \ _[Truncated at 4000 characters — full notes: https://github.com/ray-project/ray/releases/tag/ray-2.58.0]_