Raima Database Manager (RDM) can be configured to run completely in-memory, or completely on disk or a hybrid of both. An in-memory database is a database that uses main memory (RAM) for data storage instead of disk.
This type of database is significantly faster than conventional databases because it is uses RAM which is faster to retrieve data than a physical disk drive. It reduces the total number of CPU instructions and I/O activity. This is beneficial for applications that require fast response times, resource-limited systems that use small databases or devices that are required to be diskless such as routers or flash drives for permanent storage.
- Performance – faster access to data
- Flexibility – store all or part of your database in-memory and/or on-disk
- Reliability – ensure ACID compliance in diskless mode
- Ease of Use – one additional keyword to your data definition tells your database to reside in-memory; making it trivial to move an on-disk database to in-memory
- Multiple APIs & Drivers – d_API, Objective C API, SQL API, ODBC API, C++ API, ADO.NET Provider, JDBC Driver, ODBC Driver
New Feature:Compile In-Memory vs. On-Disk Benchmarks
Our Database Performance Samples let you test in-memory, on-disk performance and other configurations within your app’s environment. Each sample takes less than 5 minutes.
Raima Database Manager can be divided up so that part of the database resides in main memory while the rest of the database remains on-disk. This is referred to as the hybrid database model. Typically data that is constantly changing and repeatedly accessed is placed in main memory while more consistent and/or aggregated data is stored on disk. In other cases data that is easily recreated like indexes are kept in main memory providing fast lookup performance while the actual data is written to disk.
A key concern is often durability of data when implementing an in-memory database. As main memory is more volatile than persistent disk storage, certain mechanisms need to be in place to ensure ACID compliance. A significant amount of engineering has gone into the Raima database products to provide high speed access to traditional, on-disk databases while ensuring transaction consistency and data integrity.
RDM’s in-memory function uses transaction logs that can be written to disk providing additional rollback and recovery, and fewer lost transactions in the case of a system failure. The in-memory functionality can be used with full ACID transactional integrity support or, where much higher performance is needed and lower DBMS-managed integrity requirements are acceptable, ACID enforcement can be relaxed.
Main memory is more expensive than persistent disk storage, hence an in-memory database needs to have a compact design to utilize available storage more efficiently. RDM is small footprint, cross-platform database designed for distributed architecture in resource-constrained environments that can be configured to run completely in memory.
Traditionally, a database that relies on main memory will provide much faster access to existing data, but may also be more vulnerable to loss if there is a program or computer error. To safeguard against this, RDM asks the operating system to sync a file at key moments, ensuring that the data is safe no matter when a computer may fail.
The sync operation (synchronize to disk) will not return control to the program until the file contents exist on the permanent media. Raima Database Manager is designed around the use of the Transactional File Server (TFS) which manages all database input and output along with the multi-version concurrency control (MVCC) implementation.
In-memory support provides the highest possible database performance. Applications that require instant response times and maximum efficiency will benefit greatly from implementing an in memory database. The same applies to diskless systems and devices. Raima tests shows performance results up to 300% by comparing the times required to do the same database operations on a disk-based database with an in-memory version of the same database.
RDM is today used worldwide in a wide range of data management solutions within in industrial automation systems, military flight control systems, telecom routers & switches, financial trading systems, medical equipment, data backup solutions, consumer electronic devices and more.