Product of the Week: Tuxera Reliance Assure
November 08, 2021
Safety- and mission-critical systems fail. But when they do, they have to fail safe and recover quickly. And, they can’t lose the most important part of the application – the data.
Tuxera Reliance Assure is a transactional embedded file system that helps developers streamline compliance with industry standards like ISO 26262 and DO-178C while facilitating robust data integrity in applications with a propensity for power loss and system crashes. It contains a fault-tolerant copy-on-write feature that ensures live data is never overwritten. And Tuxera's Dynamic Transaction Point technology that offers deterministic compile- and run-time control over critical data.
As the Reliance Assure filesystem was built using the MISRA C:2012 coding standard and Automotive SPICE quality management framework, it provides full bi-directional traceability, integrated verification, and code reviews that serve as the foundation for creating and delivering certification artifacts. This documentation can be generated seamlessly through the Design Assurance Package add-on.
As a small footprint offering that can be configured down to as little as 4 KB RAM and 12 KB of code, it works with some of today's leading RTOSs like FreeRTOS, Green Hills INTEGRITY, SafeRTOS, and Microsoft Windows, and storage media such as eMMCs, SD/MMCs, NVRAMs, USB mass storage drives, and SATA or PATA disks.
Tuxera Reliance Assure in Action
Tuxera Reliance Assure is suitable for use in a range of safety-critical applications, whether they leverage a single log file, pre-defined set of files, or require the flexibility to modify the file hierarchy at runtime. The embedded filesystem supports three configuration options – full POSIX, small POSIX, and FSEssentials – where the first two make use of a POSIX-like API that simplifies integration.
The highlights of each configuration can be seen in the image below, but in short:
- Full POSIX configuration includes 512-byte block sizes, support for up to ten tasks and ten open file handles, a minimum of 12 buffers, and a maximum stack depth of 704.
- Small POSIX configuration includes most of the features of the full POSIX configuration, but leaves out rename functionality and drops the minimum buffers to six to minimize RAM.
- FSEssentials configuration uses the FSE API for read/write/truncate on numbered files and transactions. It too supports a 512-byte block size and minimum of 12 buffers.
Of course, Tuxera Reliance Assure's most important feature of all is that it protects application software, data, and other components from loss or corruption and loss while allowing developers to seamlessly manage and control data that is at risk. And one of the keys to maintaining this fail-safe performance is fast mounting times. To achieve this, the filesystem does away with journal replays and file system cleanups that delay the free flow of data after uncontrolled shutdowns like power loss or system crashes. Rather, it mounts directly into a known-good state, which has the added benefit of providing consistent and predictable boot times.
Elsewhere on the operational reliability front, discard mechanisms built into the file system permit the host disks to perform compaction more efficiently. This reduces wear on the flash and extends its lifetime. Built-in cyclic redundancy checks (CRCs) also enhance storage reliability, but engineers can leverage them during the development process too for full metadata diagnostics that allow continuous monitoring and early detection of storage media failures.
On compatible storage media, there's also an atomic sector write capability that guarantees sectors contain completely new values or the original data if an error event does occur at write time. In other words, this feature means metadata will never point to incorrect user data.
Despite all this, the Tuxera Reliance Assure offering still doesn't sacrifice performance compared to native filesystems. The charts below show Tuxera's general-purpose filesystem I/O test (FSIOtest) – included with Reliance Assure – running on an INTEGRITY RTOS, the R-Car H3 Starter Kit, and a SanDisk Extreme 64 GB microSD card. Each filesystem was configured to 4096 byte block sizes in the tests.
As you can see, Assure outpaced the msdosfs by almost an order of magnitude in KB/sec performance in both sequential and random write tests – while also preventing data loss from power interruption, which the msdosfs was not.
Dynamic Transaction Point, mentioned previously, allows developers to tune this performance against data protection strength depending on the needs of the application.
Getting Started with Tuxera Reliance Assure
As stated, the Reliance Assure APIs make integrating the filesystem a breeze, and its source code is well documented to minimize any development hangups. This, of course, is all backed by extensive developer documentation that provides a searchable index of all configurations and library functions.
The filesystem has been tested with the operating systems listed above, and a FUSE version of Linux is also supported. This was performed using various GCC implementations, including Atmel Studio 6.2.
With all that, you're ready to get started. Commercially licensed versions of Reliance Assure can be obtained on a per product, per processor, or product line capacity, and come with a developer's guide, API reference, validation utilities, Design Assurance documents, and a MISRA C:2012 compliance matrix.
All you need from there is a development environment that matches the requirements below. Then reach out to [email protected] for pricing or integration information or check out the resources section below for more information.
Reliance Assure Product Page: www.tuxera.com/products/reliance-edge
Reliance Assure Datasheet: www.tuxera.com/resources/form-tuxera-reliance-assure
Tuxera Blog: www.tuxera.com/blog/tuxera-launches-reliance-assure
Contact: [email protected]