diff --git a/docs/upgrade-guides/2-13-0-to-2-14-0.md b/docs/upgrade-guides/2-13-0-to-2-14-0.md new file mode 100644 index 0000000..59dfeac --- /dev/null +++ b/docs/upgrade-guides/2-13-0-to-2-14-0.md @@ -0,0 +1,19 @@ +# 2.13.0 to 2.14.0 + +No special instructions are **necessary** to upgrade to `v2.14.0`. The following sections describe newly available Aerie configurations, which are optional. + +## In-Memory Checkpoint Simulation + +Aerie 2.14.0 includes an experimental [In-Memory Checkpoint Simulation](https://github.com/NASA-AMMOS/aerie/pull/1323) feature which is intended to improve the performance of the **scheduler** by setting "simulation checkpoints" from which the simulation engine can restart, rather than always re-running the entire simulation. This improved performance comes at the cost of memory usage, which may be quite significant for larger models/plans, so it is disabled by default. If you don't want to use this feature, no changes to your deployment or models are necessary. + +**To use this feature in your Aerie deployment, you must:** + +1. Modify the `MAX_NB_CACHED_SIMULATION_ENGINES` environment variable for the Aerie Scheduler Worker to be larger than `1`. The higher this value is, the more checkpoints may be set, resulting in increased performance at the cost of higher memory usage. If the number is too high, you may encounter out-of-memory errors on larger models and plans. +2. Implement a `duplicate()` method on any custom tasks that are used by your model. The `duplicate()` method is called when a checkpoint is created, and should return a duplicate/"deep copy" of the task, which can be stepped independently of the original task. This is required because the checkpoint creates a duplicate copy of the entire simulation engine, including its tasks. For more information, see the [documentation for this method](https://github.com/NASA-AMMOS/aerie/blob/2b8a5945fdb51c724768d55abc84ea9cab86338c/merlin-sdk/src/main/java/gov/nasa/jpl/aerie/merlin/protocol/model/Task.java#L37). + +An example implementation of a `duplicate()` method on a task can be found in Aerie's `ReplayingTask` class, [located here](https://github.com/NASA-AMMOS/aerie/blob/develop/merlin-framework/src/main/java/gov/nasa/jpl/aerie/merlin/framework/ReplayingTask.java#L75). + +## Configuring Sequence Expansion Workers + +[PR #1476](https://github.com/NASA-AMMOS/aerie/pull/1476) exposes a new environment variable in the sequencing server that can be used to limit the maximum number of workers the server uses for sequence expansion. This is set to a default value of `8` if not provided, but can be increased to improve performance of sequence expansion at the cost of additional memory usage. + diff --git a/sidebars.js b/sidebars.js index 40844af..1da5688 100644 --- a/sidebars.js +++ b/sidebars.js @@ -331,6 +331,7 @@ const sidebars = { }, ], upgradeGuides: [ + 'upgrade-guides/2-13-0-to-2-14-0', 'upgrade-guides/2-11-0-to-2-11-1', 'upgrade-guides/2-12-0-to-2-13-0', 'upgrade-guides/2-11-0-to-2-12-0',