Code lines with blurred blue background

Raima Database Manager™ (RDM)

High-Performance Embedded Database Technology

Raima Database Manager (RDM)™ is an embedded, cross-platform, small-footprint, in-memory database developed for the IoT and the edge market. It is fast and persistent, optimized for performance and reliability (see our performance testing benchmarks). RDM can be used through a call from it's extensive suite of API's including the C/C++ cursor, Java JDBC, and C# ADO.NET. It also supports the use of standard third-party tools through the ODBC driver manager.

Try RDM now

An optimized in-memory implementation allows for faster transactions and results to support enterprises that need the utmost speed and performance.

Fully supports real-time system performance.  RDM has been designed to meet the zero-administration requirements of an embedded application.

Database file format

Small Footprint

RDM needs only 50k of RAM and minimal CPU speeds to fully operate. With more power in the system, RDM will fully utilize it all to perform even faster but that is not required.

ACID transactions guarantees that when changes to a database record are made, that data is correct and no data is lost.

AES encryption from 128 bit to 256 bit meets market demand for cybersecurity support and gives Raima clients peace-of-mind.

Through the use of SymmetricDS, Raima can store data on the edge and easily replicate any of that data to the cloud.

Full featured and enhanced SQL support including SQL PL, Stored Procedures and Triggers.

B-Tree, Hash, R-/R+ Tree, and AVL indexes are fully supported by RDM and available for users.

Automatic encoding and compression uses 25% less disk space on average.

Snapshot isolation allows concurrent reads to the database when write transactions are occurring. RDM takes a frozen image of the current state of the system and that information can be read from without stopping writes.

Develop once, deploy anywhere.  Mix and match operating systems without little endian or big endian compatibility issues. The file format allows direct copy/paste or movement from one device or platform onto another regardless of byte order or architecture differences.

Arrow Icon

Multi-Core Scalability

Maintain performance as demands on the system increase by adding further resources. Possible through SMP and thread support, plus the capability of scaling on more than one server.

Flexible Licensing Options

Raima has always made the RDM source code available at a reasonable cost. Raima and its experienced developers are proud of this code and don’t mind if you take a peek, or even step through it in your own debugging system. Source code comes complete with project files necessary for you to build it yourself.
Since RDM can be freely downloaded and licensed for application development at a very low entry fee until it is ready to deploy, and with source code availability, there is very little cost difference between Raima’s commercial licensing and Open Source with support or for commercial use.


RDM Core - This introductory package is typically used in applications designed for edge IoT devices, where performance and footprint are of great importance.  Experience direct access to a comprehensive and easy-to-use low-level cursor C API for ultimate control while also providing a C++ API for object-oriented programming.


RDM Enterprise - This package is perfectly designed for application developers who are familiar with SQL and want to decrease development time.  It is Raima’s complete product package with the full set of features and functionality. The enterprise package is designed for multiple industry standard APIs to connect to third-party tools for purposes such as replication, reporting, analysis, and administration.

Architecture – A Deeper Dive


RDM’s runtime environment is composed as two powerful but well-defined modules:

  1. The Runtime Library – This re-entrant linkable library becomes part of your executable program. It maintains a cache of database objects as it responds to function calls from your program.
  2. The Transactional File Server – This tight, multi-user server interacts with one or more Runtime Libraries concurrently. It manages access to database files. The TFS responds to runtime requests to read objects, to lock objects, or to apply transactional changes.

Runtime Library

As a re-entrant library, RDM fully supports multi-threaded applications. Each thread may open a database and operate on it concurrently with the others.

As a linkable library, RDM operates on data kept in a heap-based cache. Its robust APIs give you full visibility and control over the data. SQL is available through a C-based API, but also accessible through 3rd party tools. Other APIs allow fine-tuning of database operations using a cursor view or an object-oriented view.

Transactional File Server

At its core, the TFS is a library of functions. These functions are called by the runtime library. If the TFS is running in a separate process, its functions are called as RPCs (Remote Procedure Calls) using TCP/IP between computers and shared memory within the same computer.

However, the TFS functions may be linked directly into your application also. This has significant performance benefits and simplicity in operation. It’s faster because the Remote Procedure Calls become Local Procedure Calls (in-process). It’s simpler because everything is running within your program and there is no separate process to start first.


Yes, the Runtime Library and TFS are powerful and well-defined, but they can be configured in several ways. The figures below show just a few.

Multi-Thread Single Computer
Single-Thread (exclusive access)
Single-Thread In-Memory

Multi-Computer Configuration - Amazingly Fast

When multiple computers are involved, they communicate through TCP/IP. If the runtime and TFS are on the same computer, shared memory is used to speed it up.

Multi-Thread Single Computer

Multi-Thread Single Computer Configuration - Even Faster

But when the runtime and TFS are in the same process, the inter-process communication is avoided, resulting in even more speed.

Multi-threaded applications are great for handling multiple windows on a screen, each with independent contents.

Single-Thread (exclusive access)

Single-Thread (exclusive access) - Faster than that!

Simpler, single-user applications have an advantage because there is no concurrent access to the database, hence no locking or waiting.

Single-Thread In-Memory

Single-Thread, In-Memory Database - The Absolute Fastest

Now, load the database from disk into memory and you have database management with all the stops pulled.

The RDM in-memory database option allows for volatile (it goes away when the application stops) and persistent (loaded from disk and saved to disk) databases.

It’s faster because there is no disk latency for reading and no waiting for disk writes during a transaction commit.

These are vulnerable to data loss if the application terminates without saving the data. Sometimes it’s a risk worth taking!


Try RDM for free

Raima Database Manager (RDM)™ at a glance

Functions RDM CoreRDM Enterprise
AES Encryption 128,192, 256 bits
ACID Compliance
Embedded / Real-time Application
Administrative Utilities
Platform Independence
Developer Environment Integration
Automatic Compression
Disk Storage
In-Memory Storage
Support for Dynamic Schema Modifications
Referential Integrity
Two-Phase Commit
Snapshots/Multiversion Concurrency Control(MVCC)
AVL, B-Tree, Hash, R-Tree Indexes
Geospatial Datatypes
3rd Party Utilities
3rd Party Replication
Interfaces and Programming LanguagesRDM CoreRDM Enterprise
Dynamic DDL
d_navigational API
Modern Cursor API
SQL Standard
SQL Arrays
SQL Unions
SQL Inner and Outer Joins
SQL Scrollable Cursors
SQL Triggers
SQL Stored Procedures
ODBC 3.9
JDBC 4.2
Supported Platforms/Operating SystemsRDM CoreRDM Enterprise
Microsoft Windows
Apple MacOS
Apple iOS
WindRiver VxWorks
WindRiver VxWorks RTP
WindRiver Linux
Green Hills Integrity
Embedded Linux
QNX Neutrino

Ready to get started?