EXtremeDB

From Wikipedia, the free encyclopedia

The correct title of this article is eXtremeDB. The initial letter is shown capitalized due to technical restrictions.
eXtremeDB
Developer: McObject
Latest release: 3.0 / February 14, 2006
Preview release: 3.1 / April 3, 2007
OS: Cross-platform
Use: DBMS
License: Commercial license
Website: http://www.mcobject.com

eXtremeDB is an ACID-compliant embedded database management system (DBMS) designed for embedded systems and applications with real-time performance requirements. eXtremeDB is a main memory database (also known as an in-memory database system, or IMDS), a type of database system that eliminates disk access by storing data in main memory and sending changes to the system’s hard disk (if there is one) only when specified by the application. In contrast, traditional ‘on-disk’ DBMSs, which comprise the great majority of database systems, cache frequently requested data in memory for faster access, but automatically write data updates, insertions, and deletes through to the hard disk.

Contents

[edit] Uses

eXtremeDB is integrated within the embedded software in hardware devices including consumer electronics (such as set-top boxes, MP3 players and mobile phone handsets); network routers, load balancing, and security appliances; telecommunications switches; on-board automotive systems including vehicle telematics; military and aerospace applications; and industrial automation. eXtremeDB is also used in non-embedded applications that are inherently real-time, such as securities trading systems.

[edit] Product features

[edit] In-memory data storage

eXtremeDB provides direct access to data, which is stored entirely in memory. This eliminates disk reads and writes from the data management process, and removes the need for complex software logic such as database caching functions. With this simplified design, eXtremeDB provides a code “footprint” as small as 50K, and typical database read and write accesses at the level of a few microseconds, or less.

[edit] Transactions

For data integrity, eXtremeDB transactions support the ACID properties, ensuring that operations grouped into transactions will complete together or the database will be rolled back to a pre-transaction state.

[edit] APIs

[edit] Native API

eXtremeDB's native application programming interface (API) includes a standard function library for basic database operations, as well as data manipulation functions that are generated when the database scheme is compiled, and which derives from the application’s data model. Database functions therefore reflect the purpose and schema for which the database is being used. The native API is type-safe – the developer's C/C++ compiler will catch data typing and assignment errors when the application is built.

[edit] SQL

eXtremeDB offers a SQL API, called eXtremeSQL, which implements much of the ANSI SQL-89 specification. eXtremeSQL includes eXtremeDB-specific extensions including support for structures, arrays and vectors, as well as query optimizations based on specific eXtremeDB capabilities.

[edit] XML

eXtremeDB provides XML Extensions to facilitate simple schema evolution and the exchange of data between the eXtremeDB embedded database and external systems.

[edit] Developer tools

Typical eXtremeDB users are software developers creating applications in the C and C++ languages, who embed eXtremeDB’s data management functions in their application code, with the goal of maximum run-time efficiency. eXtremeDB features for coding in these languages include:

  • Support for virtually all data types, including structures, arrays, vectors and binary large objects (BLOBs)
  • Querying methods include hash indexes for exact match searches
  • Tree indexes that support queries for pattern match, range retrieval and sorting
  • “Voluntary” indexes for program control over index population
  • Autoid for system-defined object identifiers
  • Indexes that contain only a reference to data, rather than storing duplicate data, in order to minimize memory requirements
  • Synchronous/asynchronous event notifications
  • Object history

[edit] High Availability

For software applications that require high availability, eXtremeDB High Availability (HA) Edition is designed to ensure that changes to a master database and identical standby databases succeed or fail together, and enables deployment of multiple fully synchronized eXtremeDB-HA databases within the same hardware device or across multiple, widely distributed systems. A predictable response time is created via the HA protocol's “time cognizance” – if a master or replica database fails to respond within a pre-set limit, it is automatically decommissioned and replaced in its role by a responding eXtremeDB-HA database instance.

[edit] Transaction Logging

The eXtremeDB Transaction Logging Edition provides additional recovery capabilities. When transaction logging is active and enabled, all updates to data objects are logged to a set of files on disk, or on a network device. If the memory content is damaged or destroyed, the exact state of the database is restored by an automatic roll forward procedure.

[edit] 64-Bit Database

eXtremeDB-64 increases maximum database size by adding support for 64-bit micro-processors and operating systems. Compared to traditional 32-bit processors, 64-bit technology approximately doubles the amount of data a CPU can handle per clock cycle, and increases the amount of memory a system can address from approximately 3GB to more than one terabyte (1000GB).

[edit] Supported Platforms

eXtremeDB is highly portable and source code is available. eXtremeDB can also run in the absence of an operating system. Platforms supported by McObject include:

[edit] eXtremeDB-based Applications

JVC - Alneo line of digital audio players

F5 Networks -- BIG-IP Internet traffic optimization devices.

Certeon -- S Series Acceleration Appliance

Siemens – Mobile phone handset

Tyco Thermal Controls - DigiTrace heat tracing and control system

Academy of Electrical Power (China) - phasor measurement unit

[edit] Articles

Graves, Steve. Examining Main Memory Databases, iApplianceWeb, January, 2002

Gorine, Andrei. Programming guide manages networked digital TV, EE Times, December 2, 2002

Gorine, Andrei. Embedded Database Design for High Availability, Embedded Systems Europe, September, 2003

Gorine, Andrei. Building durability into data management for real-time systems, Boards & Solutions, September, 2004

Graves, Steve. Developing Effective, Reliable Aerospace Equipment: The Data Management Challenge, Embedded Systems Engineering, February, 2005

Gorine, Andrei and Knizhnik, Konstantin. Memory Management & Embedded Databases, Dr. Dobb’s Journal, December, 2005

Graves, Steve. MP3 Players: the Music Database Gets Database Software, Embedded Systems Engineering, February 2006

[edit] External links


Topics in database management systems (DBMS)view  talk  edit )

Concepts
Database • Database model • Relational database • Relational model • Relational algebra • Primary key, Foreign key, Surrogate key, Superkey, Candidate key • Database normalization • Referential integrity • Relational DBMS • Distributed DBMS • ACID

Objects
Trigger • View • Table • Cursor • Log • Transaction • Index • Stored procedure • Partition

Topics in SQL
Select • Insert • Update • Merge • Delete • Join • Union • Create • Drop

Implementations of database management systems

Types of implementations
Relational • Flat file • Deductive • Dimensional • Hierarchical • Object oriented • Temporal • XML data stores

Components
Query language • Query optimizer • Query plan • ODBC • JDBC

Database products

Apache Derby • Berkeley DB • Caché • DB2 • db4o • DBase • eXtremeDB • Filemaker Pro • Firebird • Greenplum • H2 • Helix • Informix • Ingres • InterBase • Linter • Microsoft Access • Microsoft SQL Server • Mimer SQL • MonetDB • MySQL • Objectivity/DB • OpenLink Virtuoso • OpenOffice.org Base • Oracle • Oracle Rdb • Paradox • Perst • PostgreSQL • SQLite • Sybase IQ • Sybase • Teradata • UniVerse • Visual FoxPro


Other: Object-oriented (comparison) • relational (comparison)