RDM Embedded
From Wikipedia, the free encyclopedia
RDM Embedded | |
---|---|
Developed by | Birdstep Technology, Inc |
Latest release | 8.0 |
OS | Cross-platform |
Genre | DBMS |
License | Commercial license |
Website | Raima Database Manager |
RDM Embedded is a high performing ACID-compliant embedded database management library designed for both disk based and in-memory embedded systems and applications. RDM Embedded can run purely in main memory (also known as an in-memory database, or IMDB), purely on disk, or in mixed mode storing parts of the dataset in-memory and parts on-disk. RDM Embedded has a proven track record first released in 1984 counting over 25 000 000 installations in all kinds of embedded systems and applications.
Contents
|
[edit] History
Raima Corporation, established in Washington USA in 1982, saw a need for a high performance, zero administration embedded database and started working on the db_Vista product. db_Vista was first released in1984, and as of 1988 db_Vista had made it’s third major release. db_Vista was later renamed to Raima Database Manager or RDM for short. As the product grew in popularity so did the client server architecture which Raima answered with the release of Velocis, a Client/Server version of RDM, in 1993. Velocis was later renamed RDM Server. As Raima grew in popularity they saw themselves acquired by Centura Software Corporation in 1999. Centura software drove the decision of launching an open source version of the RDM Embedded, called db.*, in 2000. Under Linux the db.* product got named db.linux. In 2001 Birdstep Technology ASA, a Norwegian based company, acquired the Raima assets and has since made 4 major releases of RDM Embedded.
[edit] Uses
RDM Embedded is used in all kinds of embedded systems and applications. The product is used in aerospace and defense applications such as military flight simulators, flight planning, and airborne warning systems; in telematics and automotive application like in-car navigation systems and infotainment systems; in banking and financial applications for real-time stock trading systems; in business automation systems for computer backup systems and sources control systems; in consumer electronics applications like mobile handsets, set-top boxes, and personal navigation devices; in datacom and telecommunication applications such as network routers and switches and base-stations; in government systems for firefighting and traffic control applications; in industrial automation applications like power management, and steel mill production facilities; in medical devices such as blood and chemical analyzing equipment and patient management applications; and in security systems such as key pads and key management products.
[edit] Product Features
[edit] Data Models
[edit] Network Data Model
The network data model manages relationships between data objects through list of pointers called sets. The network model is defined to allow very flexible relationships between objects making it perfect to structuring complex data relationships. If you think of a hierarchical structure with parent-child relationships, the network model allows for the same structure except there is no limitation on the number of parents a child has nor how many children a certain parent has between objects. This allows for extremely efficient modeling of data graphs and data hierarchies.
[edit] Relational Data Model
The relational data model manages relationships between data objects through value matching, and usually primary key/foreign keys. Relationships are limited to include two record types compared to the network model where no limitation is imposed.
[edit] Mixed Mode Operation
RDM Embedded allows for mixing both the network model and relational model in the same database definition giving the application vendor full flexibility.
[edit] Disk Based Storage
RDM Embedded provides access to database structured defined as being disk resident. All access to disk resident structures, this being data or data index information, will be accessed through an in-memory data cache maintained separately for each connection to the database. The data caches are then synchronized through the lock manager, discussed in the Multi-User Support section, to propagate any data changes to other caches.
[edit] In-Memory Storage
RDM Embedded in-memory capability allows the application to define database as main memory resident only, for diskless applications.
[edit] Mixed Disk Based and In-Memory Storage
An application can define a database with mixed disk based or main memory resident data structures. The RDM Embedded engine’s data definition language supports mixing and matching any two of the storage devices for any of it’s data structures creating an extremely flexible and high performing database.
[edit] Transactions
For data integrity, RDM Embedded supports the ACID transaction model ensuring a set of data changes either being executed or non being executed resulting in a database always being in a consistent state. The ACID properties also protect from any software or hardware failure making sure the database image is always in a readable and non-corrupt state. In addition RDM Embedded let’s the application control this property, allowing the application to relax some of the properties to increase performance. One such property is letting the application decide if the transaction happens in-memory or is disk resident. In-memory will be faster, but has the drawback of being lost if one encounters a failure.
[edit] Multi-User Support
RDM Embedded can have multiple threads and processes attached to a single database locally or over a network. The access to the database is serialized, through what we call our lock manager, that is either a shared memory segment or an external process accessible through TCP/IP. The lock manager not only controls the access to data objects in the database but is also responsible for notifying connections to ensure synchronization of any cached database objects that may have changed.
[edit] APIs
[edit] Native C API
RDM Embedded’s native C API comprises over 150 library functions for all database operations. Timestamps, concurrence control, transaction control, database configuration, data navigation, and data changes are all supported through this API.
[edit] Native Java API
RDM Embedded’s native Java API comprises 10 Java classes wrapping the underlying Native C API to Java through JNI technology.
[edit] XML API
An XML import/export API is made available to import and export both data and schema information to and from RDM Embedded databases. The API is made public to facilitate data interoperability towards other technology based on industry standards.
[edit] Mirroring API
RDM Embedded defines both C and Java API’s facilitating asynchronous and synchronous database mirroring. Fault tolerant applications that require High- Availability use this API to ensure an identical slave copy of the database for application failover.
[edit] Replication API
RDM Embedded defines a C replication API to setup of asynchronous replication over a TCP/IP based network for master slave replication. Single master/multi slave replication of both in-memory and disk based databases is supported.
[edit] SQL API
RDM Embedded supports a subset of the SQL-89 standard over a SAG CLI C API.
[edit] Development Tools
[edit] Language Support
RDM Embedded has support for C and C++ application in addition to Java and XML applications based on the above described API’s.
[edit] Indexes
RDM Embedded supports both sparse and regular B-tree based indexes. The index’s can contain a single or multiple segments. In addition RDM Embedded support for optional indexes where the application controls the index population.
[edit] Data Types
RDM Embedded has support for the following native data types:
- signed and unsigned int16
- signed and unsigned int32
- signed and unsigned int64
- char
- w_char_t (Unicode)
- varchar (Variable Length)
- varwchar (Variable Length)
- float
- double
- DB_ADDR (Internal database address)
- BLOB (binary large objects)
In addition the RDM Embedded has native support for struct’s and multi-dimensional arrays based on the above list of base types.
[edit] SDK Utilities
RDM Embedded comes with a complete set of SDK utilities:
- dal - Database Access Language
This utility is used for interactive or batch manipulation of an RDM Embedded database. - datdump - Dump Data File
The datdump utility produces a formatted dump of the contents of an RDM Embedded data file. In addition to the data field contents, datdump also displays all of the information in the record header, including the record ID, database address, record lock bit setting, stored optional keys, timestamp values, set pointers and member pointers. - dbcheck - Database Consistency Check
This utility checks the consistency of all database files in a RDM Embedded database. - dbclrlb - Lock Bit Clear
The utility clears any set lock bits in the specified RDM Embedded data files. - dbedit - Database Editor
Low-level database editor, to change and/or repair any RDM Embedded database. - dbexp - Database Export
To export a RDM Database in CSV or XML file. - dbimp - Database Import
To import data from a CSV or XML file to a RDM Database. - dbrev - Database Revise Tool
To migrate an existing database to a new schema. - dchain - Delete Chain Sort
The utility sorts the deleted record slots on the delete chains of the listed data files. - ddlp - Database Definition Language Processor
Compiles a Native RDM Embedded database schema. - initdb - Database Initialization Utility
Initializes data and key files associated with a RDM Embedded database. - instlm - Install Lock Manager
Install the lock manager. - keybuild - Key File Build
Rebuilds all keys for a RDM Embedded Database. - keydump - Key File Dump
Displays a formatted dump of kay files in a RDM Embedded database. - keypack - Key File Packing
Re-organizes the RDM Embedded key’s to reduce B-Tree overhead. - lm - Lock Manager
The external TCP/IP based RDM Embedded lock manager. - lmclear - Clear Lock Manager Session
Shutdown, clear locks, or get status in the RDM Embedded lock manager. - lmping - Lock Manager Ping
Pings to see if the RDM Embedded lock manager is running. - lsql - Interactive SQL Command Executer
Allows user to interactively execute RDM Embedded SQL statements - prdbd - Dictionary Print Utility
Displays the content of a RDM Embedded dictionary file. - sddlp - SQL Database Definition Language Processor
Compiles a RDM Embedded SQL database schema. - console - Lock Manager Remote Console
Monitores the functioning of a RDM Embedded lock manager. - ida - Interactive Database Access Utility
Menu driver application to retrieve, enter, modify, or delete any information or set relationships stored in an RDM Embedded database
[edit] High Availability
For applications that require high availability RDM Embedded is designed with two replication capabilities to ensure an identical slave copy of a master database for application failover.
[edit] Data Replication
RDM Embedded implements an asynchronous single master multi slave replication API for TCP/IP (or other transport) based replication.
[edit] Data Mirroring
RDM Embedded implements a synchronous or asynchronous single master multi slave data mirroring API for local data replication.
[edit] Transaction Logging
RDM Embedded implements a fully ACID compliant transaction logging system with automatic recovery capability. Transaction can be configured by the application to run on-disk or in-memory and has other ACID property relaxing functionality to increase performance.
[edit] Supported Platforms
RDM Embedded is highly portable and available both on object code and source code format. RDM Embedded is currently supported on all major 32- and 64- bit enterprise and RTOS operating systems.
[edit] RDM Embedded Applications
A few RDM Embedded Application. Please visit Birdstep’s customer list for additional information.
- Boeing - AWACS
- General Dynamics – MHP (Marine Helicopter Project)
- Hertz - Neverlost
- IBM – Rational ClearCase
- Xerox - DocuPrint
- Symatec - Backup EXEC
- Sun - SyMON
- DirectTV – Advanced Program Guide on Set-top boxes.
- Magellan – MapSend, all handheld and marine navigation systems.
- Cisco – Cisco Network Registrar (CNR)
- Alcatel-Lucent – Lambda Extreme & Wavestar
- Nortel Networks - SS7
- 3Com – NBX
- Juniper Networks – JUNOS
- Wonderware – InBatch
- Beckman Coulter – UniCel DxC 600 & DxC 800 Synchron Clinical
[edit] External links
[edit] Articles
|