High Developer Flexibility
eXtremeDB Financial Edition’s development features provide maximum flexibility, to optimize for speed, shorten development time and tackle complex capital markets computing challenges.
Choice of languages, indexes and data types. Developers can access eXtremeDB Financial Edition’s most powerful capabilities – including pipelining vector-based statistical functions – from the industry standard SQL database programming language and Python scripting language. Using these languages alongside eXtremeDB Financial Edition’s dynamic database definition language (DDL) capability, developers can implement their ideas quickly, and optimize rapidly by testing changes to code, database tables and indexes.
Application development is supported in C/C++, Java, C# (.NET) and Python. When coding in C or C++, applications can access the database system using a native, navigational API as well as standard SQL/ODBC. eXtremeDB Financial Edition’s SQL implementation also provides a type-3, version 4 JDBC driver for development in Java. Its Java Native Interface (JNI) and C# native interface offer the fastest possible DBMS solutions in these languages, and afford developers the experience of working entirely with “plain old” Java and C# objects.
Available indexes include standard B-trees, KD-trees for multi-dimensional data and Query-by-Example (QBE), Trigram indexes for fuzzy matching, custom indexes and hash indexes.
Data types supported by eXtremeDB Financial Edition include structures, arrays, vectors, sequences and BLOBs. Data can be stored in the same complex form in which it is used in the application, or as normalized relations.
Vector-based statistical functions. The database system provides an extensive library of vector-based statistical functions that execute over sequences of data to perform financial calculations.
Data layout flexibility. eXtremeDB Financial Edition stores time-series data in a columnar fashion, while other data types are stored using a row-based approach. The result is higher performance: database designs can be optimized to maximize CPU cache efficiency and can avoid latency-inducing fetches from main memory.
Pipelining vector-based statistical functions. This programming technique enables multiple vector-based statistical functions to work on a given data sequence (time series) within the CPU cache, without the need to “materialize” interim results in main memory (e.g. as temporary tables). This eliminates the latency caused by back-and-forth transfers between CPU cache and memory. (Download the white paper Pipelining Vector-Based Statistical Functions for In-Memory Analytics.)