# Ray 2.2.0 — Ray-2.2.0 - Product: Ray (https://whatsnew.fyi/product/ray) - Vendor: Anyscale - Date: 2022-12-13 - Version: 2.2.0 - Original notes: https://github.com/ray-project/ray/releases/tag/ray-2.2.0 - Permalink: https://whatsnew.fyi/product/ray/releases/2.2.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** — Ray Jobs API is now generally available for submitting locally developed applications to a remote Ray Cluster - **changed** — Ray Dashboard now shows CPU flame graphs of Ray workers and new metrics for memory usage - **changed** — Out-Of-Memory (OOM) Monitor is now enabled by default - **changed** — Ray Data dynamic block splitting is now enabled by default to address out-of-memory and performance issues with large files - **added** — Add NumPy first path for Torch and TensorFlow Predictors in Ray AIR - **fixed** — Fix MLflow database integrity error in Ray AIR - **fixed** — Fix ResourceChangingScheduler dropping PlacementGroupFactory args in Ray AIR - **fixed** — Fix bug passing 'raise' to FailureConfig in Ray AIR - **fixed** — Fix reserved CPU warning if no CPUs are used in Ray AIR - **deprecated** — Deprecate Wandb mixin in Ray AIR - **deprecated** — Deprecate Checkpoint.to_object_ref and Checkpoint.from_object_ref in Ray AIR - **added** — Add select_columns() to select a subset of columns in Ray Data - **added** — Add write_tfrecords() to write TFRecord files in Ray Data - **added** — Support MongoDB data source in Ray Data - **added** — Add from_torch() to create dataset from Torch dataset in Ray Data - **added** — Add from_tf() to create dataset from TensorFlow dataset in Ray Data - **added** — Allow to set batch_size in BatchMapper in Ray Data - **added** — Support read/write from/to local node file system in Ray Data - **fixed** — Fix iter_batches() to not return empty batch in Ray Data - **added** — Add MosaicTrainer in Ray Train #### Release Highlights Ray 2.2 is a stability-focused release, featuring stability improvements across many Ray components. * [Ray Jobs API](https://docs.ray.io/en/releases-2.2.0/cluster/running-applications/job-submission/index.html#ray-jobs-api) is now GA. The Ray Jobs API allows you to submit locally developed applications to a remote Ray Cluster for execution. It simplifies the experience of packaging, deploying, and managing a Ray application. * [Ray Dashboard](https://docs.ray.io/en/releases-2.2.0/ray-core/ray-dashboard.html#ray-dashboard) has received a number of improvements, such as the ability to see cpu flame graphs of your Ray workers and new metrics for memory usage. * The [Out-Of-Memory (OOM) Monitor](https://docs.ray.io/en/releases-2.2.0/ray-core/scheduling/ray-oom-prevention.html) is now enabled by default. This will increase the stability of memory-intensive applications on top of Ray. * [Ray Data] we’ve heard numerous users report that when files are too large, Ray Data can have out-of-memory or performance issues. In this release, we’re enabling [dynamic block splitting](https://docs.ray.io/en/releases-2.2.0/data/dataset-internals.html#execution-memory) by default, which will address the above issues by avoiding holding too much data in memory. #### Ray Libraries ##### Ray AIR 🎉 New Features: * Add a NumPy first path for Torch and TensorFlow Predictors (#28917) 💫Enhancements: * Suppress "NumPy array is not writable" error in torch conversion (#29808) * Add node rank and local world size info to session (#29919) 🔨 Fixes: * Fix MLflow database integrity error (#29794) * Fix ResourceChangingScheduler dropping PlacementGroupFactory args (#30304) * Fix bug passing 'raise' to FailureConfig (#30814) * Fix reserved CPU warning if no CPUs are used (#30598) 📖Documentation: * Fix examples and docs to specify batch_format in BatchMapper (#30438) 🏗 Architecture refactoring: * Deprecate Wandb mixin (#29828) * Deprecate Checkpoint.to_object_ref and Checkpoint.from_object_ref (#30365) ##### Ray Data Processing 🎉 New Features: * Support all PyArrow versions released by Apache Arrow (#29993, #29999) * Add `select_columns()` to select a subset of columns (#29081) * Add `write_tfrecords()` to write TFRecord files (#29448) * Support MongoDB data source (#28550) * Enable dynamic block splitting by default (#30284) * Add `from_torch()` to create dataset from Torch dataset (#29588) * Add `from_tf()` to create dataset from TensorFlow dataset (#29591) * Allow to set `batch_size` in `BatchMapper` (#29193) * Support read/write from/to local node file system (#29565) 💫Enhancements: * Add `include_paths` in `read_images()` to return image file path (#30007) * Print out Dataset statistics automatically after execution (#29876) * Cast tensor extension type to opaque object dtype in `to_pandas()` and `to_dask()` (#29417) * Encode number of dimensions in variable-shaped tensor extension type (#29281) * Fuse AllToAllStage and OneToOneStage with compatible remote args (#29561) * Change `read_tfrecords()` output from Pandas to Arrow format (#30390) * Handle all Ray errors in task compute strategy (#30696) * Allow nested Chain preprocessors (#29706) * Warn user if missing columns and support `str` exclude in `Concatenator` (#29443) * Raise ValueError if preprocessor column doesn't exist (#29643) 🔨 Fixes: * Support custom resource with remote args for `random_shuffle()` (#29276) * Support custom resource with remote args for `random_shuffle_each_window()` (#29482) * Add PublicAPI annotation to preprocessors (#29434) * Tensor extension column concatenation fixes (#29479) * Fix `iter_batches()` to not return empty batch (#29638) * Change `map_batches()` to fetch input blocks on-demand (#29289) * Change `take_all()` to not accept limit argument (#29746) * Convert between block and batch correctly for `map_groups()` (#30172) * Fix `stats()` call causing Dataset _[Truncated at 4000 characters — full notes: https://github.com/ray-project/ray/releases/tag/ray-2.2.0]_