eXtremeDB combines on-disk and in-memory data storage in a single embedded database system. Developers can optimize applications for speed and persistence, and prioritize between performance, cost, power, and space-conserving storage options.
eXtremeDB for HPC is a specialized database system for capital market and IoT Big Data applications. It combines all of the capabilities of other eXtremeDB editions, and adds additional ones such as support for column-based handling of time series data and a library of over 100 vector-based functions for statistical analysis of columns of time series data.
The unique eXtremeDB Active Replication Fabric intelligently queues data during intended or unintended network outages for later synchronization, virtually eliminating IoT connectivity issues.
McObject began when its founders — senior executives and technologists in the database software and embedded systems industries — identified a new need for a real-time embedded database in what used to be considered primarily hardware devices. This led to the company’s founding in 2001 and the launch of the eXtremeDB In-Memory Database System (IMDS) product family, the first embedded DBMS created specifically for real-time embedded systems.
eXtremeDB database offers multiple indexes, including the following:
B-Trees for common sorting and searches, insertions, and deletions R-Trees for geospatial indexing (common in GPS/navigation systems) Hash tables for quickly locating a single unique index entry Patricia trie index, which speeds searches in networking and telephony applications Trigram indexes are ideal for text searches when the exact spelling of the target object is not precisely known. It finds objects which match the maximum number of three-character strings in the entered search terms, i.e., near matches. “Custom indexes” or b-trees that allow the application to define the collating sequence of entries; this is useful in implementing soundex algorithm searches, for example KD-Trees or k-dimensional trees, for spatial and pattern-matching tasks and in applications where query predicates contain various combinations of object fields (for example, to construct Query-By-Example, or QBE features)
Database pages are stored in a compressed format and decompressed when accessed by the application. This can maximize available storage space, which could be important for an in-memory database, or even a persistent database stored on a relatively small SSD. Run-length encoding (RLE) compression is applied to time series data (i.e. fields defined as the ‘sequence’ data type). In McObject’s tests, activating this feature reduced storage space requirements by 75% and increased speed in reading the database by 21%. Compression and RLE are separate features that can be used individually. Data can also be compressed between server and device in eXtremeDB’s Active Replication Fabric for IoT networks. Operating in low-bandwidth networks requires techniques to compress the network traffic. To solve this problem for all network components of eXtremeDB at once, the compression is implemented at the system abstraction layer (SAL).
eXtremeDB offers a multi-version concurrency control (MVCC) optimistic transaction manager and an alternative “pessimistic” MURSIW (MUltiple Reader, Single Writer) transaction manager.
Lua, Python or C++ based stored procedures run in the context of the SQL server and therefore minimizes client-server inter-process communication and attendant network overhead, and fully utilizes the multi-core nature of modern hardware.
eXtremeDB enables the developer to combine both database paradigms – in-memory and on-disk – in a single database instance. Specifying one set of data as transient (managed in memory), while choosing persistent storage for other record types, requires a simple database schema declaration.