Download Matisse



Client Server

Client applications connect to the server through the network, or through a local transport. The client and server can reside on different systems or in the same device; there is no limit to the number of clients that can communicate with a single server. The various modules and interfaces are described below:

Matisse Server
The Matisse server performs the back-end processing of queries and language binding calls including access to objects and database administration. It interfaces directly with the storage subsystem(s). The Matisse Server is a general purpose object manager, managing a repository of persistent objects.

Database Administration Services.
The database administration module implements an API and a set of administrative functions including backup, disk management, and version collection.

Object Manager.
This module performs basic object operations such as creation, updates, and deletion of objects. It guarantees consistency and bi-directional referential integrity of the objects.

SQL Engine.
The SQL engine implements the SQL standard including stored procedures. The Matisse SQL engine is unique in that it natively operates on objects.

Core DBMS modules.
These modules implement the basic database management features of transaction management, locking, versioning, and checkpointing.

Server Cache.
The Server Cache serves as a buffer in order to achieve performance gains.

Matisse Client Modules
The Matisse client provides a set of interfaces for programmers and 3rd party software tools. Generally, the Matisse database is accessed either by a programming language such as C#, Java, C++ or SQL through a standard ODBC, JDBC or ADO.NET interface.

Matisse provides tools for loading and exporting XML data.
Generally, the XML loader, mt_xml, generates a schema using an XML DTD and then loads the XML documents or records into the database. Data objects can also be exported to XML format.

Language bindings have been written for the most popular languages including C++, Java, C#, Eiffel and the leading scripting languages including Python and PHP.

Matisse supports both ODBC and JDBC interfaces. The client SQL query processor validates the syntax of the query and generates a query plan to be executed on the server. This module is also responsible for generating a SQL projection from the objects selected.

Client cache.
The client serves as a buffer in order to achieve performance gains.


Matisse In-Memory Database is a memory-optimized database that empowers applications with the instant responsiveness and very high throughput required by real-time industries. Matisse In-Memory Database operates on databases that fit entirely in physical memory using standard Matisse APIs. Matisse In-Memory Database exploits this property for breakthrough performance.

Matisse In-Memory Database was designed from the ground up to leverage large memory size on 64-bit commodity hardware, along with the processing scalability provided by multi-core, multi-processor architectures. By managing all data in memory and using algorithms tailored for that environment, Matisse In-Memory Database can operate much more efficiently, and thus offer dramatic improvements in performance. Matisse In-Memory Database uses disks for persistence and recovery rather than as the primary database storage location. Matisse In-Memory Database conforms to the atomicity, consistency, isolation, and durability (ACID) properties of data management systems. Durability is achieved by periodically updating a disk image of the database, called a checkpoint. The database is checkpointed to disk automatically based on user-defined frequency and transaction volume.

The decreasing cost of memory-rich 64-bit computing platform is driving the in-memory database technology's use in simulation, analytics, in trend and pattern discovery, in caching and other systems that demand instantaneous sorting, retrieval and manipulation of massive databases.

Matisse In-Memory shares with Matisse the same set of APIs thus eliminating the developer's learning curve. It also shares the same datafile format, making your application fully compatible in both environments.

An existing Matisse application can be converted to a true real-time application by simply restarting your database with a Matisse In-Memory database server.


Matisse Lite, the embedded version of Matisse DBMS, is a compact library that implements the server-less version of Matisse DBMS. Matisse Lite provides a transactional, multi-user database engine self-contained in a user-application process.

Matisse Lite was designed from the ground up to function at peak in a resource-limited architecture and to integrate seamlessly inside any application process without the need to start up and to shut down separate database processes.

Matisse Lite shares with Matisse the same set of APIs thus eliminating the developer's learning curve. It also shares the same datafile format, making your application fully compatible between both environments.

Matisse Lite is ideally suited for rich gadget applications on electronic devices and hardware appliances, which require zero configuration, no administration and a small footprint.
Matisse Lite also provides a reliable, scalable and fast solution to cache rich information served by application servers in web farms.
Matisse Lite can also be used to build easy-to-deploy Evaluation or Demo Edition of enterprise-class database applications.