The Mimer SQL Real-Time API provides real-time access using a concept denoted database pointers. Database pointers are application handles that can point to data in a database. Once a database pointer is bound to one or several database values, real-time access is enabled.
Mimer SQL Real-Time consists of three parts, the database server, the database, and the Mimer real-time API as seen in the figure below:
The first part, the actual database, contains all data, both real-time and non real-time data. The database can be modeled the same way as any relational database. When a data element in the database is bound to a real-time database pointer, it is dynamically elevated to become real-time data, thus being swapped into main memory and made available for real-time access.
The second part, the Mimer SQL Real-Time server, contains all the non real-time database server functionality and has the same APIs and features as the standard Mimer SQL database servers. The server can be of any of the Mimer SQL database server types. The Mimer SQL Real-Time server is responsible for all non-real-time database access, database maintenance, database persistence, and to set up real-time connections and database pointers. It uses a standard client/server architecture and can be called from any application, both local and remote.
The third part, the Mimer SQL Real-Time API, contain all the real-time functionality. It is implemented as a library and is linked together with the real-time application. The API contains functions to connect and disconnect to/from the server, create, delete and use database pointers, and to perform flush operations of real-time data to persistent storage.
Since both the Mimer SQL Real-Time Server and the Mimer SQL Real-Time API share the same database, data access syncronization is needed. In Mimer SQL Real-Time Edition, this is automatically managed by the API and Database server, such that predictable blocking of real-time operations are achieved.