Flexible data model, flexible storage management, flexible index management -- mixed with high performance.


Data Model

The database data model must be flexible enough to handle various application data models.  Most database products pick a simple and rigid data model (e.g. no schema, fixed schema), but the problem with that approach is that all application data must be forced into that rigid data model.  Our approach is to employ multiple data models that work together to support all of the different types of data that are needed by an application.

Index Management

Modern applications require many different types of indexes:  Primary and secondary, scalar and composite type, single and multiple dimension (including geographic), value and text indexes.  The real key to supporting many index types is to employ a flexible interface that allows new indexes to be plugged in (not programmed in).

Storage Management

We believe that a combination of in-memory (DRAM) and stable-memory (SSD) is the right direction for future high performance database systems.  The in-memory data is the primary copy, not the "cached copy", as is the case for most other database system.

Real Database Systems need Real Database Foundations


One of the lessons learned in classical relational database system creation is that certain aspects of the system cannot be faked.  There's no substitution for a real recovery mechanism, a real concurrency mechanism, a real security infrastructure, a real authorization mechanism, versatile storage management, versatile index management and an extensible type system.