Reliance Nitro - Embedded File System
High Performance File System for Embedded devices
Datalight Reliance NitroTM is a transactional file system created specifically for embedded devices where power loss may occur, protecting critical system and user data from corruption. It ensures rock-solid data reliability while providing the performance needed to create an optimal user experience. Reliance Nitro works with a broad array of storage media – including flash memory, RAM, hard disk, USB mass storage, SD/MMC, and e•MMC – and virtually any 32-bit operating system. The speed of file and directory access is improved by several orders of magnitude while maintaining complete metadata and file data integrity. The unique combination of tree-based directory architecture, extent based design, and faster atomic transactions, gives a performance benefit for I/O throughput and metadata operations. Dynamic Transaction PointTM technology gives developers unprecedented control over the file system. Reliance Nitro is optimized for use on consumer electronics and industrial devices like smart phones, navigation devices, and ruggedized handheld computers that cannot compromise reliability or performance to deliver a compelling user experience. Reliance Nitro file system is an ideal upgrade from Linux file systems, VxWorks file systems, and Windows Embedded CE file systems
Introducing Reliance Nitro 3.0
How Reliance Nitro Works
Datalight Reliance™ Nitro is a two state file system, comprised of the working state and the committed state. Original data (the committed state) is preserved until the new data (the working state) is written and a transaction point is performed. During operation on the working state, all file system modifications - including changes to directories, files and metadata - are stored on an area of the media that is currently unused and does not contain committed state data. The possibility of corruption is eliminated because the data of the new transaction is written to an unused portion of the media. Writing to an unused portion of the media allows the previous state of the file system to be untouched. Valid data from the previous transaction is always available.
Performance
When testing a file system for performance, it is important to consider data beyond just reads and writes.
Because Reliance Nitro always maintains a “known good state,” it has a mount time advantage particularly after power loss. In situations where there is random I/O penalty such as in Hard Disk Drives and e•MMC this advantage is magnified. Journaling file systems such as ext3 and ext4 will need to perform random reads to build the journal. Since Reliance Nitro always keeps the disk in a known good state there is no need to run integrity checks during the file system boot, even after a disorderly shutdown.
Reliance Nitro demonstrates superior file system metadata handling. When reading and writing smaller files, this file system overhead is far more important than the raw throughput available. In the test below, run on a TI OMAP 3530 Reliance Nitro created 1000 files in 22 seconds, compared to almost five minutes for the native file system solution.
Tree-Based Metadata Management
How Tree-based Metadata Management Works
Trees are used for varying purposes in Reliance Nitro:
- Directory Tree: The purpose of the directory tree is to associate a name with a unique file number within a parent directory. This association is implemented via a tree structure.
- Allocation Tree: The purpose of the allocation tree is to associate allocated blocks with a file as well as to store information about the file itself.
Tree RootNode
Initially, each tree begins with a leaf node known as the RootNode. Once each leaf node becomes full, an intermediate node is added. Intermediate nodes can point to multiple leaf or intermediate
Leaf Node
Leaf nodes are where the data associated with a key is actually stored.
Intermediate Node
Intermediate nodes provide a method for the tree to grow dynamically. The data associated with intermediate node keys contain a logical block number for a leaf node or intermediate node:
Block Size in Bytes |
512 |
1024 |
2048 |
Keys per Intermediate node |
41 |
81 |
169 |
Keys per leaf node |
17 |
35 |
72 |
Tree Depth Number of Keys |
|||
Level 1 |
17 |
35 |
72 |
Level 2 |
697 |
2,940 |
12,168 |
Level 3 |
28,577 |
249,960 |
2,056,392 |
Level 4 |
1,171,657 |
20,744,640 |
347,530,248 |
Advantages of a tree-based design
- For 512 bytes block size:
- On a linear file system (like TFAT), nodes traversed to access file #28,577 = 28577/8 = 3573
- On a tree-based file system like Reliance Nitro, nodes traversed to access file #28,577 = 3
- For all cases where there are more than 17 files on the device, a tree-based file system will perform better than a linear one
Features and Benefits
Feature |
Benefit |
Dynamic Transaction Point technology - Customize the balance between performance and data at risk. All writes are atomic. |
Take Control of Device Reliability |
No CHKDISK utility necessary, even after unexpected power loss. |
Fast Boot Time |
eMMC Support for advanced features like secure delete |
Securely Delete a File |
Multi-threaded architecture reduces latency between multiple file access requests. |
Uninterrupted Media Playback |
A performance-enhancing discard interface is provided for NAND and NOR; other block device drivers are supported (incl. RAM, DOC, SD/MMC, USB). |
Design Flexibility |
Best in class, highly responsive technical support SDKs available for Linux, VxWorks, Windows CE and Windows Mobile RTOS Porting (with POSIX-like functions) for any 32-bit RTOS, including proprietary operating systems.
|
Faster Time to Market Save development costs
|
Reliance-formatted media can be accessed from a Windows desktop system when the Reliance Nitro Windows Driver is installed |
Data Exchangeability |
CRC32 for file data and metadata | Continuous monitoring of data integrity for ultimate reliability |
Product Specifications
Datalight Reliance Nitro™ with Dynamic Transaction PointTM technology is a multi-threaded, fault-tolerant embedded file system, offering control of the performance and data at risk balance. Reliance Nitro embedded file system integrates easily into your system without application modifications. Its unique application-controlled transaction points lets Reliance Nitro users achieve ultimate reliability and performance, responsive to every nuance of your unique use cases. Unlike default solutions, such as FAT-based file systems which are built on the faulty foundation of 1980’s desktop file systems, Datalight Reliance Nitro has been specifically designed for flawless operation on the full range of modern storage technologies, including flash memory.
Pre-ported SDKs
Drop in file system replacement for Linux, VxWorks, WindowsCE, Windows Mobile
Target Configuration
32-bit OS, any CPU, virtually any storage media, 70 KB RAM (typical)
Development System
Windows 32 host; 4 MB of disk space for Reliance; sufficient RAM for development tools
Supported Media
Flash memory, RAM, HDD, Disk-On-Chip, USB Mass Storage, SD/MMC, and eMMC RAM Memory Required 100 KB to 150 KB (nominal)
Media Volume Size
Each partition (or disk) can be scaled from 100 KB to 32 TB (terabytes)
Max File Size/Name Length
Available free space/1,024 UTF-8 bytes (or OS imposed limits)
Get the Reliance Nitro Datasheet
Getting Started
Evaluate
Contact Sales
Reliance Nitro Resources
Whitepapers
Technical Documents