Real-time tasks need real-time data
By guest contributor Chris Mureen, COO, McObject
Hard real-time systems are following the same trajectory as embedded and soft real-time systems: They’re more elaborate systems that are being required to do more with more data that’s more complex. Historically, real-time system developers have had to separate database management from hard real-time tasks, do without, or develop their own real-time database management. To the extent that any of these solutions were acceptable, in the landscape of increasingly complex systems and sophisticated data management requirements, they no longer are.
Separating database management from real-time tasks introduces unnecessary complexity and risk, and compromises the quality of the finished product. Real-time tasks must have access to real-time data.
Accordingly, doing without is no longer an acceptable solution, and developing a bespoke real-time database system is unjustifiable. Consequently, real-time system developers implement just enough data management functionality to meet their current needs. Like separating database management, any additional de novo code adds complexity and risk to a project. Implementing ‘just enough’ leaves no room for future growth, and absent deep understanding of database systems’ principles, key capabilities such as concurrency management and adherence to the ACID properties could be left off or improperly implemented.
The ideal solution for real-time database management is the same as for real-time operating systems, as for real-time file systems, as for real-time graphics and HMI, as for real-time protocol stacks, as for real-time data distribution services: A commercial-off-the-shelf (COTS) deterministic real-time database system that is implemented, tested, documented and supported by a trusted partner and eliminates the need to fence off database management from the rest of the real-time system, eliminates bespoke code, includes the full breadth of database management system functionality and therefore reduces project complexity and risk.
These are the motivations that inspired us to create eXtremeDB/rt.
According to Gartner, more than 50% of data will be generated and processed at the edge by 2022. Often, this data will need to be stored locally in the device for refined processing, summarization/aggregation, deferred upload if and when connectivity is sporadic, or both. A real-time database simplifies this data storage as modern implementations can almost be used like filesystem while providing an extra level of classification, effectively simplifying the access logic. Additionally, there is more meta-information that is used in today’s system that benefit from storage solutions beyond the filesystem, for example: complex configuration vectors, Artificial Intelligence (AI) model data, maps, motion information, drug dosage, and many more.
Advancing intelligent systems at the edge, VxWorks is a deterministic, priority-based preemptive RTOS with low latency and minimal jitter. It is built on an upgradable, future-proof architecture to help embedded systems to rapidly respond to changing market requirements and technology advancements. VxWorks is the only RTOS to support C++17, Boost, Rust, Python, pandas, and more, as well as an edge-optimized, OCI-compliant container engine — enabling developers to use the languages, tools, and technologies that they favor most to innovate where it matters most, including real-time database management systems.