eXtremeDB® In-Memory System “eXtremeDB gave us the performance and High performance, small footprint in-memory database flexibility we required to manage the complex system (IMDS) for embedded devices. data in our applications.” -- Genesis Microchip eXtremeDB, the real-time for devices that are eXtremely innovative

Overview The Development Environment

The eXtremeDB In-Memory Database System is McObject's Developers strive to produce readable, maintainable, efficient core product. It is designed for performance, with a strict code in the shortest possible time. eXtremeDB includes memory-based architecture. Data is stored and manipulated several features that boost the developer’s capabilities when exactly in the form used by the application, removing overheads integrating eXtremeDB in demanding real-time applications. of caching and translation. Typical read and write accesses are at the level of a few microseconds, or less. The engine is reentrant, Incorporating third party software often means learning and allowing for multiple execution threads, with transactions adopting an API that does not completely fit an application. supporting the ACID properties for data integrity. eXtremeDB’s native, project-specific API for development in /C++ ensures that each database operation in the API The Runtime Environment reflects the type of data being manipulated (type safety). Optional eXtremeSQL supports the widely used SQL standard Accelerated Transactions. eXtremeDB slashes latency by as well as Open Database Connectivity (ODBC) and Java storing data in main memory, eliminating the need for disk Database Connectivity (JDBC). Native Java and C# lend access, caching and other overhead of disk-based DBMSs. Its ease of working with objects in those languages. transaction managers are optimized for ultra-fast processing. McObject offers full source code, to give an in-depth Tiny Footprint. A streamlined design delivers the maximum in understanding of eXtremeDB within an application. performance and features with a code size of 150K or less! This makes it a powerful enhancement to intelligent devices with eXtremeDB supports complex data types including resource limits that, until now, ruled out the use of a database structures, arrays, vectors and BLOBs. system. eXtremeDB provides extremely efficient indexing for Direct Data Access. By working with data directly in main queries. Rather than storing duplicate data, indexes contain memory, eXtremeDB eliminates the overhead of data only a reference to data, keeping memory requirements to an duplication and transfer inherent in disk-based DBMSs. absolute minimum. Supported indexes include: can be created in shared memory, enabling concurrent access by multiple processes. . Hash indexes for exact match searches . Tree indexes for pattern match, range retrieval and Highly Scalable. Some real-time systems manage large data sorting stores. The 64-bit eXtremeDB edition is proven in terabyte-plus . R-tree indexes for geospatial searches deployments. Advanced memory management, and a Multi- . KD-tree for spatial and Query-By-Example (QBE) Version Concurrency Control (MVCC) transaction manager, . Patricia trie indexes for networking & telecom fully leverage multi-threading on multi-core systems. . Object-identifier references, for direct access . Custom indexes No Data Translation. eXtremeDB stores data in the form used by the application. This eliminates translation tasks, such as For application debugging, the eXtremeDB runtime includes mapping a C data element to a relational representation. progressive error detection and consistency features.

High Reliability. For data integrity, eXtremeDB transactions For development, the eXtremeDB runtime implements many support the ACID properties, ensuring that operations grouped verification traps and consistency checks. Then, when the into transactions will complete together or the database will be application is debugged and consistently passes verification rolled back to the pre-transaction state. tests, developers can employ the optimized eXtremeDB runtime with fewer checks, to restore valuable clock cycles.

Precision Data Management

Additional Features Database Specifications eXtremeDB’s many extras help developers and application end-users Maximum database size, 32-bit: 3 gigabytes get the most from the database. Maximum database size, 64-bit: 18 exabytes

. Custom Collations. Specify the character sorting sequence Maximum classes per database: 32,767 (collation) for text, including collations supporting more than Maximum indexes per database: 32,767 one language. Maximum fields per class: 32,767 . Event Notifications. Notifies an application when something “of interest” in the database changes. Synchronous and Maximum fields per index: 32,767 asynchronous modes. Maximum elements per vector: 32,767 . Remote Procedure Call (RPC) Mechanism. Framework Memory requirements: As little as 100K enables remote processes (i.e. on another network node) to Maximum simultaneous read/update an eXtremeDB database. connections per database: configurable . Security Features. Page-level Cyclic Redundancy Check (CRC) Maximum databases open detects unauthorized changes, while RC4 encryption blocks both simultaneously: configurable tampering and unauthorized access. . Pattern Search. Use wildcards to search tree index entries for single and multiple character matches. Supported Data types

Supported Platforms . 1, 2, 4, 8-byte signed/unsigned integers . float, double . date, time Embedded Platforms: . char (fixed length) . string (variable length) . VxWorks 5.5, 6.x . rect(angle) . VxWorks 653 RTOS (for avionics) . Unicode . INTEGRITY OS . boolean (array of bits) . QNX 6.x . enum . Various Real-Time distributions . fixed-size array . Lynx OS . variable-length vector . RTXC Quadros, RTXC 3.2 . structs (embedded to any depth) . Embedded . autoid (auto-increment) . eCos . user-defined object-id and references . Nucleus . Bare bones boards (no required) The eXtremeDB Product Family Development environments Building on the core In-Memory Database System . gnu toolchain (gcc 2.95 and higher) (IMDS) edition, McObject offers eXtremeDB editions . Tornado (GNU and Diab compilers) to meet specialized needs. . QNX Momentics IDE (C, C++, Embedded C++) . GreenHills Multi . eXtremeDB Fusion combines in-memory and . Microsoft Visual Studio (C/C++, .NET) persistent storage in a single hybrid database . eXtremeDB-64 - 64-bit edition enables Server and Desktop Platforms: processing of very large databases . eXtremeDB High Availability for the highest . Sun Solaris 8, 9 and 10 level of database fault-tolerance . HP-UX 11.x . eXtremeDB Transaction Logging provides . Linux distributions recovery capabilities via a highly configurable . Classic Windows platforms (NT/2000/XP/Vista/7) logging process . eXtremeDB Kernel Mode deploys in OS kernel space, leveraging the kernel’s performance and determinism . eXtremeSQL adds SQL, ODBC and JDBC : For further information, please contact support to eXtremeDB. ARS Software GMBH Starnberger Straße 22 D-82131 Gauting/Munich McObject LLC Phone:+1 425 888 8505 Tel.: +49-89-893413-0 22525 SE 64th Place Fax: +1 425 888 8508 Precision Data Management email: [email protected] Suite 302 [email protected] www.ars2000.com Issaquah, WA 98027 www.mcobject.com