The solidDB server processes the data requests submitted through solidDB SQL. The server stores data and retrieves it from the database.
Tasking system
The tasking system is a framework to abstract threads to a concept task. Tasking system implements concurrent execution of the tasks also in single threaded systems.
Server services
The server services component contains services and utilities to use components on the lower levels.
SQL interpreter and optimizer
The SQL interpreter and optimizer is responsible of SQL-clause parsing and optimization. The solidDB server uses SQL syntax that is based on the ANSI X3H2 and IEC/ISO 9075 SQL standards. The SQL-89 Level 2 standard is fully supported and SQL-92 Entry Level. Many features of full SQL-92, SQL-99, and SQL-2003 standards are also supported.
solidDB contains a cost-based optimizer, which ensures that even complex queries can be run efficiently. The optimizer automatically maintains information about table sizes, the number of rows in tables, the available indexes, and the statistical distribution of the index values.
Triggers and procedures
The triggers and procedures component contains a mechanism for parsing and executing SQL-based stored triggers and procedures:
▪ A trigger activates stored procedure code, which the solidDB server automatically executes when a user attempts to change the data in a table.
▪ Stored procedures are simple programs, or procedures, that are executed in the solidDB server. You can create procedures that contain several SQL statements or whole transactions, and execute them with a single call statement. In addition to SQL statements, 3GL type control structures can be used enabling procedural control. In this way complex, data-bound transactions can be run on the server itself, thus reducing network traffic.
Logging and checkpointing
The logging and checkpointing component is responsible for maintaining persistency of transactions by write-ahead logging, consistency, and recoverability of the database by checkpointing. Various durability options are available. Reading the transaction log file as it is being written by the server is possible and is done with a special SQL-based interface called Logreader API.
Recovery
The recovery component is responsible for recovery from transaction log and database checkpoints.
Replicator
The replicator component provides support for the Advanced Replication feature. The Advanced Replication feature is used for asynchronous, pull-based replication between a master database and replica databases. A master database contains the master copy of the data. One or more replica databases contain full or partial copies of the data. A replica database, like any other database, can contain multiple tables. Some of those tables can contain only replicated data (copied from the master), some can contain local-only data (not copied from the master), and some can contain a mix of replicated data and local-only data. Replicas can submit updates to the master server, which then verifies the updates according to rules set by the application programmers. The verified data is then published and made available to all replicas.
HotStandby
The HotStandby (HSB) component enables a secondary server (a hot standby server) to run in parallel with the primary server and keep an up-to-date copy of the data in the primary server.
Estimator
The estimator component provides cost-based estimates for single table access based on projections and constraints. It executes a low-level execution plan generation by using index selection and index range calculations.
Table services
The table services module contains interfaces for single-table access, data type support, transaction management interface, and table and index caches.
Disk-based engine (DBE)
The disk-based engine component handles the storage of disk-based tables (D-tables).
Main-memory engine (MME)
The main-memory engine component handles the storage of in-memory tables (M‑tables) and indexes.
Transaction manager
The transaction manager component contains commit and rollback implementation and concurrency conflict checking and resolution.
System services
The system services component contains operating system abstraction layer, memory management, thread management, mutexing, and file I/O services.