Skip to content

Release v1.0.0

Compare
Choose a tag to compare
@songweijia songweijia released this 27 Jan 20:15
· 40 commits to master since this release

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.