EXtremeDB

Last updated
eXtremeDB
Developer(s) McObject LLC.
Stable release
8.2 / 2021;3 years ago (2021)
Operating system Cross-platform
Type DBMS
License Commercial license
Website www.mcobject.com

eXtremeDB is a high-performance, low-latency, ACID-compliant embedded database management system using an in-memory database system (IMDS) architecture and designed to be linked into C/C++ based programs. It runs on Windows, Linux, and other real-time and embedded operating systems.

Contents

History

eXtremeDB was introduced in 2001 by McObject LLC, targeting embedded systems running in resource-constrained environments (i.e. with limited random-access memory and relatively low-powered central processing units). eXtreme DB has a small code size, only about 150KB. It has native C language application programming interface and available source code. eXtremeDB has a high degree of portability to support the varied processors and operating systems used in embedded systems. Early deployments by customers included integration in digital TV set-top boxes, manufacturing and industrial control systems, and telecom/networking devices. eXtremeDB emerged to manage what industry analysts, and McObject, portray as significant growth in the amount of data managed on such devices. [1] [2] [3]

Later editions targeted the high-performance non-embedded software market, including capital markets applications and real-time caching for Web-based applications, including social networks and e-commerce. [4]

Product features

Core eXtremeDB engine

eXtremeDB supports the following features across its product family. [5]

Application programming interfaces

Database indexes

Concurrency mechanisms

eXtremeDB supports multiple concurrent users, offering ACID-compliant transactions (as defined by Jim Gray [6] ) using either of two transaction managers: a multiple-reader, single writer (MURSIW) locking mechanism, or multiversion concurrency control (MVCC) transaction manager (optimistic non-locking model). [7] [8]

Supported data types

eXtremeDB can work with virtually all C language data types including complex types including structures, arrays, vectors, and BLOBs. Unicode is supported.

Security

Optional features

Distributed database management abilities

The eXtremeDB high availability edition supports both synchronous (2-safe) and asynchronous (1-safe) database replication, with automatic failover. [9] eXtremeDB Cluster edition provides for shared-nothing database clustering. eXtremeDB also supports distributed query processing, in which the database is partitioned horizontally and the DBMS distributes query processing across multiple servers, CPUs, and CPU cores. [10] eXtremeDB supports heterogeneous client platforms (e.g. a mix of Windows, Linux, and RTOSs) with its clustering and high availability features. A single partitioned database can include shards running on hardware and OS platforms.

Hybrid storage

The eXtremeDB Fusion edition provides the option of persistent storage (disk or flash) for specific tables, via a database schema notation. [11]

Transaction logging

The eXtremeDB Transaction Logging edition records changes made to the database and uses this log to recover in the event of device or system failure. This edition includes eXtremeDB Data Relay technology that replicates selected changes to external systems such as enterprise applications and database systems.

SQL ODBC/JDBC

The eXtremeSQL edition provides SQL ODBC support in eXtremeDB and a version 4, level 4 JDBC driver. [12] [13]

Kernel mode deployment

The eXtremeDB Kernel Mode edition deploys the database system within an operating system kernel, to provide database functions to kernel-based applications logic. [14]

Features for managing market data

The eXtremeDB Financial Edition provides features for managing market data (tick data). [15] A “sequences” data type supports columnar data layout and enables eXtremeDB to offer the benefits of a column-oriented database in handling time series data. The Financial Edition also provides a library of vector-based statistical functions to analyze data in sequences, and a performance monitor.

Benchmarks

McObject published reports on benchmark tests employing eXtremeDB. Main-Memory vs. RAM-Disk Databases: a Linux-Based Benchmark examined IMDS performance versus that of a traditional on-disk DBMS deployed on a RAM disk, on identical application tasks. The benchmark’s stated goal was to test the thesis that an IMDS streamlined architecture delivers a performance benefit beyond that provided by memory-based storage. [16] Another benchmark, the Terabyte-Plus In-Memory Database System (IMDS) Benchmark, documented IMDS scalability and performance in the size range of large enterprise application (versus embedded systems) databases. For the test, engineers created a 1.17 terabyte, 15.54 billion row database with eXtremeDB on a 160-core SGI Altix 4700 system running SUSE Linux Enterprise Server 9. [17]

In November, 2012 a marketing report was published for Dell servers with Mellanox InfiniBand. [18]

In late 2014, two more audited benchmark reports were dedicated to eXtremeDB Financial Edition. The first, dated October 29, evaluated McObject's DBMS performance on IBM POWER8 hardware, while the second, on November 18, detailed its application in cloud computing. In 2016, an additional report was conducted to gauge the capabilities of the eXtremeDB Financial Edition. [19]

See also

Related Research Articles

<span class="mw-page-title-main">Database</span> Organized collection of data in computing

In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and analyze the data. The DBMS additionally encompasses the core facilities provided to administer the database. The sum total of the database, the DBMS and the associated applications can be referred to as a database system. Often the term "database" is also used loosely to refer to any of the DBMS, the database system or an application associated with the database.

<span class="mw-page-title-main">Informix</span> Database management software product family

Informix is a product family within IBM's Information Management division that is centered on several relational database management system (RDBMS) and multi-model database offerings. The Informix products were originally developed by Informix Corporation, whose Informix Software subsidiary was acquired by IBM in 2001.

<span class="mw-page-title-main">IBM Db2</span> Relational model database server

Db2 is a family of data management products, including database servers, developed by IBM. It initially supported the relational model, but was extended to support object–relational features and non-relational structures like JSON and XML. The brand name was originally styled as DB2 until 2017, when it changed to its present form.

In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An application written using ODBC can be ported to other platforms, both on the client and server side, with few changes to the data access code.

Btrieve is a transactional database software product. It is based on Indexed Sequential Access Method (ISAM), which is a way of storing data for fast retrieval. There have been several versions of the product for DOS, Linux, older versions of Microsoft Windows, 32-bit IBM OS/2 and for Novell NetWare.

Oracle TimesTen In-Memory Database is an in-memory, relational database management system with persistence and high availability. Originally designed and implemented at Hewlett-Packard labs in Palo Alto, California, TimesTen spun out into a separate startup in 1996 and was acquired by Oracle Corporation in 2005.

InterSystems Caché is a commercial operational database management system from InterSystems, used to develop software applications for healthcare management, banking and financial services, government, and other sectors. Customer software can use the database with object and SQL code. Caché also allows developers to directly manipulate its underlying data structures: hierarchical arrays known as M technology.

OLE DB is an API designed by Microsoft that allows accessing data from a variety of sources in a uniform manner. The API provides a set of interfaces implemented using the Component Object Model (COM); it is otherwise unrelated to OLE. Microsoft originally intended OLE DB as a higher-level replacement for, and successor to, ODBC, extending its feature set to support a wider variety of non-relational databases, such as object databases and spreadsheets that do not necessarily implement.

<span class="mw-page-title-main">Microsoft Data Access Components</span> Framework

Microsoft Data Access Components is a framework of interrelated Microsoft technologies that allows programmers a uniform and comprehensive way of developing applications that can access almost any data store. Its components include: ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC). There have been several deprecated components as well, such as the Jet Database Engine, MSDASQL, and Remote Data Services (RDS). Some components have also become obsolete, such as the former Data Access Objects API and Remote Data Objects.

Borland Database Engine (BDE) is the Windows-based core database engine and connectivity software behind Borland Delphi, C++Builder, IntraBuilder, Paradox for Windows, and Visual dBASE for Windows.

<span class="mw-page-title-main">Virtuoso Universal Server</span> Computer software

Virtuoso Universal Server is a middleware and database engine hybrid that combines the functionality of a traditional relational database management system (RDBMS), object–relational database (ORDBMS), virtual database, RDF, XML, free-text, web application server and file server functionality in a single system. Rather than have dedicated servers for each of the aforementioned functionality realms, Virtuoso is a "universal server"; it enables a single multithreaded server process that implements multiple protocols. The free and open source edition of Virtuoso Universal Server is also known as OpenLink Virtuoso. The software has been developed by OpenLink Software with Kingsley Uyi Idehen and Orri Erling as the chief software architects.

Microsoft SQL Server Compact is a discontinued relational database produced by Microsoft for applications that run on mobile devices and desktops. Prior to the introduction of the desktop platform, it was known as SQL Server for Windows CE and SQL Server Mobile Edition.

Microsoft SQL Server is a proprietary relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which may run either on the same computer or on another computer across a network. Microsoft markets at least a dozen different editions of Microsoft SQL Server, aimed at different audiences and for workloads ranging from small single-machine applications to large Internet-facing applications with many concurrent users.

An embedded database system is a database management system (DBMS) which is tightly integrated with an application software; it is embedded in the application. It is a broad technology category that includes:

Polyhedra is a family of relational database management systems offered by ENEA AB, a Swedish company. The original version of Polyhedra was an in-memory database management system which could be used in high availability configurations; in 2006 Polyhedra Flash DBMS was introduced to allow databases to be stored in flash memory. All versions employ the client–server model to ensure the data are protected from misbehaving application software, and they use the same SQL, ODBC and type-4 JDBC interfaces. Polyhedra is targeted primarily for embedded use by Original Equipment Manufacturers (OEMs), and big-name customers include Ericsson, ABB, Emerson, Lockheed Martin, United Utilities and Siemens AG.

<span class="mw-page-title-main">Exasol</span> German database management software company

Exasol is an analytics database management software company. Its product is called Exasol, an in-memory, column-oriented, relational database management system

Empress Embedded Database is a relational database management system that has been embedded into applications, including medical systems, network routers, nuclear power plant monitors, satellite management systems. Empress is an ACID compliant relational database management system (RDBMS) with two-phase commit and several transaction isolation levels for real-time embedded applications. It supports both persistent and in-memory storage of data and works with text, binary, multimedia, as well as traditional data.

Java Database Connectivity (JDBC) is an application programming interface (API) for the Java programming language which defines how a client may access a database. It is a Java-based data access technology used for Java database connectivity. It is part of the Java Standard Edition platform, from Oracle Corporation. It provides methods to query and update data in a database, and is oriented toward relational databases. A JDBC-to-ODBC bridge enables connections to any ODBC-accessible data source in the Java virtual machine (JVM) host environment.

<span class="mw-page-title-main">Actian Zen</span>

Actian Zen is an ACID-compliant, zero-DBA, embedded, nano-footprint, multi-model, Multi-Platform database management system (DBMS). It was originally developed by Pervasive Software, which was acquired by Actian Corporation in 2013.

The following outline is provided as an overview of and topical guide to MySQL:

References

  1. Cold, hard data that’s deep, eeProductCenter (EE Times)2/28/05
  2. "Remember the KISS principle? | Forrester Blogs". Archived from the original on 2013-10-29. Retrieved 2012-01-26.{{cite web}}: CS1 maint: bot: original URL status unknown (link) Forrester Research, 11/13/2009
  3. Re-inventing embedded database technology for embedded systems and intelligent devices. McObject white paper hosted on Scribd.com, 2009
  4. McObject’s New Business Looks Anything Like Embedded, Embedded Software Blog, VDC Research, 6/30/2010
  5. Key eXtremeDB Features, http://www.mcobject.com
  6. Gray, Jim, and Reuter, Andreas (1993), Distributed Transaction Processing: Concepts and Techniques, Morgan Kaufmann, ISBN   1-55860-190-2
  7. McObject updates eXtremeDB real-time database system, Dr. Dobb’s Journal, 11/9/2009
  8. Gerhard Weikum; Gottfried Vossen (2002). "5 Multiversion Concurrency Control". Transactional Information Systems. Morgan Kaufmann. pp. 211–213. ISBN   1-55860-508-8
  9. Database serves five-nines embedded systems, eWeek, 3/12/2003
  10. "In-memory database released in clustering version". Archived from the original on 2012-09-03. Retrieved 2012-01-26., LinuxDevices.com, 7/20/2011
  11. McObject releases eXtremeDB Fusion embedded database, Electronic Product News, 5/3/2007 Archived 2013-01-22 at archive.today
  12. McObject adds ODBC API to eXtremeDB, EE Times, 8/8/2007[ dead link ]
  13. "In-memory DBMS boosts Java". Archived from the original on 2012-09-09. Retrieved 2012-01-26., SQL, and HA abilities. LinuxDevices.com, 11/16/2011[ dead link ]
  14. Kernel mode gets data faster. Embedded Computing Design, 4/3/2008[ dead link ]
  15. "eXtremeDB Financial Edition homepage" . Retrieved 26 December 2012.
  16. Examining Main Memory Databases Archived 2012-03-10 at the Wayback Machine , iApplianceWeb, 1/4/2002
  17. Terabyte-Plus In-Memory Database Benchmark, http://www.mcobject.com
  18. "Securities Technology Analysis Center Web site". Archived from the original on 3 February 2013. Retrieved 26 December 2012.
  19. "STAC Report: eXtremeDB & IBM at scale under STAC-M3". STAC web site. May 9, 2016. Retrieved March 17, 2017.