Releases: Derecho-Project/cascade
Release v1.0.1
Cascade 1.0.1 Release Notes
Release Date 5/9/2024
Introduction
We’re excited to announce the release of Cascade 1.0.1. This version involves a series of minor bugfixes and is compatible with derecho v2.4.0
Highlighted Features
- We now support Github Action to verify the building of the project - PR #69
- The time-logger utility is removed. We now rely on libwsong::perf for time-logger capability. This enables latency analysis across layers: Derecho, Cascade, as well as the application. - PR #68
- Stable get is now accelerated with a per-key backward version chain.
- Introduced
CASCADE_INSTALL_PREFIX
to control the installation location. - Introduced Cascade/Derecho compatibility table in README.md.
Bugfixes
Known Issues
[Python UDL limitation] Due to the global interpreter lock, Python UDLs have to run in single-thread mode, which is controlled by the “user_defined_logic_stateful_list” option in dfgs.json. The Python UDLs on a single Cascade server run in time-sharing multiplexing mode. We are working on a new feature to allow the UDLs to run in a separate address space to allow parallelism of Python UDLs.
[Dynamic loading] Currently, Cascade uses a configuration file (udl_dlls.cfg) to load the UDLs at the start of each process. Actually, the internal mechanism does support the dynamic loading/unloading of UDLs. We are working on an application packaging feature that allows dynamic loading/unloading of the applications.
Release v1.0.0
Cascade 1.0.0 Release Notes
Release Date 1/27/2024
Introduction
We’re excited to announce the release of Cascade 1.0.0, the first release of our AI/ML hosting platform. This version focuses on the core functionality as the starting point of many planned features as well as performance enhancements.
Highlighted Features
-
[Language Support] We currently formally support the development of applications using C/C++ and Python. C# support is experimental. Java support contains only incomplete K/V APIs and Java UDL supports are to be added later.
-
[Sample Applications] Sample applications can be found in the “src/application” folder. There are two subfolders included: test and standalone. The applications in the test folder will be built along with Cascade, while those in the standalone folder will not. The latter works better as the framework for standalone applications assuming Cascade SDK has been installed (by ‘make install’) Please refer to them to learn how to write your own Cascade applications.
-
[Timestamp and version] Each object in Cascade has a timestamp and a version number to identify its position in history. The version number consistently and monotonically grows among replicas (in a shard). The timestamp is at microsecond granularity and grows in the same way. Please note that the timestamp is assigned by the Cascade service. If the order of application timestamps, for example, those read from the sensor, embedded, and not visible to Cascade service, is required, the application needs to send them in such an order to the same Cascade node.
Known Issues
-
[Python UDL limitation] Due to the global interpreter lock, Python UDLs have to run in single-thread mode, which is controlled by the “user_defined_logic_stateful_list” option in dfgs.json. The Python UDLs on a single Cascade server run in time-sharing multiplexing mode. We are working on a new feature to allow the UDLs to run in a separate address space to allow parallelism of Python UDLs.
-
[Dynamic loading] Currently, Cascade uses a configuration file (udl_dlls.cfg) to load the UDLs at the start of each process. Actually, the internal mechanism does support the dynamic loading/unloading of UDLs. We are working on an application packaging feature that allows dynamic loading/unloading of the applications.