RDM Embedded
Encyclopedia
|
| Tutorials | Encyclopedia | Dictionary | Directory |
|
RDM Embedded
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. HistoryRaima 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 its 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. UsesRDM 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. Product FeaturesData ModelsNetwork Data ModelThe 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. Relational Data ModelThe 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. Mixed Mode OperationRDM Embedded allows for mixing both the network model and relational model in the same database definition giving the application vendor full flexibility. Disk Based StorageRDM 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. In-Memory StorageRDM Embedded in-memory capability allows the application to define database as main memory resident only, for diskless applications. Mixed Disk Based and In-Memory StorageAn 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. TransactionsFor 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. Multi-User SupportRDM 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. APIsNative C APIRDM 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. Native Java APIRDM Embedded?s native Java API comprises 10 Java classes wrapping the underlying Native C API to Java through JNI technology. XML APIAn 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. Mirroring APIRDM 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. Replication APIRDM 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. SQL APIRDM Embedded supports a subset of the SQL-89 standard over a SAG CLI C API. Development ToolsLanguage SupportRDM Embedded has support for C and C++ application in addition to Java and XML applications based on the above described API?s. IndexesRDM 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. Data TypesRDM Embedded has support for the following native data types:
In addition the RDM Embedded has native support for struct?s and multi-dimensional arrays based on the above list of base types. SDK UtilitiesRDM Embedded comes with a complete set of SDK utilities:
High AvailabilityFor 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. Data ReplicationRDM Embedded implements an asynchronous single master multi slave replication API for TCP/IP (or other transport) based replication. Data MirroringRDM Embedded implements a synchronous or asynchronous single master multi slave data mirroring API for local data replication. Transaction LoggingRDM 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. Supported PlatformsRDM 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. RDM Embedded ApplicationsA few RDM Embedded Application. Please visit Birdstep?s customer list for additional information.
External linksArticlesSource: Wikipedia | The above article is available under the GNU FDL. | Edit this article
|
|
top
©2008-2009 TutorGig.com. All Rights Reserved. Privacy Statement