Rama 0.22.0 released, including new instant migrations feature

47 views
Skip to first unread message

Nathan Marz

unread,
Sep 30, 2024, 2:50:54 PM9/30/24
to rama-user
Instructions for downloading are on this page. The big new feature in this release is "instant migrations", which we've written about in this blog post.

Changes:
- New "instant PState migrations" feature: PState schemas can now be changed on module update, with the changes taking effect instantly. While Rama migrates the contents on disk, it applies the supplied transformation functions on-read. https://redplanetlabs.com/docs/~/clj-defining-modules.html#_pstate_migrations
- Foreign proxies now self-terminate if they have too many errors within a window. A special `UngracefulTerminationDiff` is delivered to callback when this happens, and `ProxyState` has a new method to get its status (active, terminated, terminated ungracefully)
- Enable partitioners to be used in top-level `deframaop` / `deframafn`.
- Add `pobject-task-global`, `this-module-pobject-task-global`, and `declared-object-task-global` for fetching task globals dynamically. This is useful alongside usage of partitioners in `deframaop` / `deframafn`.
- Add `<<with-substitutions` helper to make it easier to use task globals in `deframaop` / `deframafn`
- Add configurable timeouts for foreign operations through configs `foreign.depot.operation.timeout.millis` and `foreign.pstate.operation.timeout.millis`
- Enable JVM options for deploy to be customized with `RAMA_CLI_JVM_OPTS` environment variable
- Display Rama version of each worker and supervisor in the Cluster UI
- Add buttons to Cluster UI to navigate to previous/next time windows
- Add new "source-segments-as-data" function to Clojure API, helpful for making Clojure macros that make Rama segmacros
- Send compiler and runtime exceptions to `tap>` as objects of the form `{:error <exception>}`
- Fix slow memory leak in IPC that could cause IPCs running for many hours to have performance problems
- Fix ClassNotFoundException resulting from excluding anonymous functions in path callsites from AOT
Reply all
Reply to author
Forward
0 new messages