The key features and functionality of the solidDB® database product include the hybrid, relational database server with in-memory and disk-based tables, direct linking of applications to bypass performance-limiting network protocols, and various replication capabilities including high availability.
In-memory tables
In-memory tables store all their data in main memory in data-structures which are optimized for main-memory access. The benefit of the in-memory residency is low query latency and high throughput. Depending on the application needs, the in-memory data tables can be configured to be persistent or transient. In addition, flexible logging capabilities let you define the level of transactional durability that is required for persistent tables, including full durability.
For more information, see the solidDB® In-Memory Database User Guide.
Disk-based tables
Disk-based tables are traditional relational database tables, equivalent to those found in other disk-based database products. In addition to in-memory tables, normal disk-based tables can be used in the database too. Typically only a part of the data from disk-based tables is resident in main-memory at any point in time. Queries can span in-memory and disk-based tables. For example, an SQL join operation can join an in-memory table with a disk-based table; the actual location of the table is not apparent to the user.
The disk-based tables, combined with the small footprint and unattended operation capability, make the solidDB® server ideal for embedded systems. Despite the small size, the product supports many advanced features like triggers, events, and stored procedures.
Direct linking with shared memory access (SMA) and linked library access (LLA)
Shared memory access (SMA) and linked library access (LLA) allow applications to link to solidDB® server directly, without the need to communicate through network protocols such as TCP/IP. With SMA, you can link multiple applications while with LLA, you can link one application. By replacing the network connection with local function calls, performance is improved significantly.
For more information, see the solidDB® Shared Memory Access and Linked Library Access User Guide.
Replication technologies
In solidDB® product family, data replication can be implemented with two different technologies, namely, Advanced Replication, and solidDB® High Availability (HotStandby).
Replication can be synchronous or asynchronous. In synchronous replication, the data is durably delivered to the receiving end within the transaction that is executed at the originating end. In asynchronous replication, the data is delivered to the receiving end after the original transaction is committed. Replication can be based on a push or pull operational model. In the push model, it is the originating end that activates the replication. In the pull model, the receiving end takes the initiative.
solidDB® High Availability (HotStandby)
solidDB® High Availability, or simply HA or HotStandby, increases the availability of data. Servers are paired up in such a way that, if one fails, the other can take
over. Data from the primary server is replicated to the secondary server, which is used as a ‘hot standby’ unit. If the primary server is unavailable, for example, because of hardware failure or scheduled maintenance, applications can connect to the secondary server and continue immediately without any loss of committed transactions.
In solidDB® HA, all the data changes in the primary are propagated to the secondary using a push-based replication protocol. The protocol can be set to synchronous (2-Safe) or asynchronous (1-Safe). In principle, the transaction load is served at the primary. Should the primary fail, the secondary takes up the job (executes a failover) and continues to serve the load as the new primary. With the synchronous replication protocol, there is no risk of data loss during the failover.
Transparent Connectivity, a special connectivity mode of solidDB® ODBC and JDBC drivers, offers the applications failover transparency and transparent load balancing between the primary and secondary.
Both relaxed and strict durability can be used with HotStandby. There is also a durability level called adaptive, which uses relaxed durability when both primary and secondary servers are active, and which switches to strict durability when the primary runs alone. With adaptive durability, the transactions are secured against any single failure, at any time.
In comparison to advanced replication, with solidDB® HA, all the data in the database is always replicated. There are a few dynamic controls available, in the form of specialized SQL commands.
For more information, see the solidDB® High Availability User Guide.
Advanced replication between solidDB® servers
Advanced replication technology represents an asynchronous pull-based approach. It allows users to distribute and synchronize, occasionally, data across multiple database servers. Advanced replication uses a master-replica model in which a single node holds the master copy of the data. One or more replica nodes can also have a copy of part or all of the master data. Furthermore, each replica can also have data that is specific to that replica only.
Replication is bidirectional; replica nodes can upload data to the master as well as download from it. If replicas submit conflicting data, the master can reject the data or alter the data before it makes the data available to all replicas. The management of replicated data is based on a flexible publish-subscribe model. The management interface is in the form of proprietary extensions to the SQL language.
The asynchronous approach in advanced replication setups means that the system is inherently flexible. If some nodes are down for any reason, those nodes can resynchronize when they come back up or reconnect to the system. This allows mobile devices, such as PDAs or notebooks, to request updated data, disconnect from the network, and then reconnect later. Users can choose how frequently they want to synchronize data.
For more information, see the solidDB® Advanced Replication User Guide.