Important solidDB Advanced Replication will be deprecated in future releases of solidDB.
solidDB Advanced Replication (previously known as SmartFlow) provides the capability to replicate data across disparate computer nodes in a network to meet the needs of your applications. With Advanced Replication, the data can be as close to the application as required by the latency, performance, or availability requirements. The core of Advanced Replication is asynchronous replication based on the publish/subscribe model. In the solidDB context, the replication type used in Advanced Replication is called synchronization.
The Advanced Replication data synchronization functionality is built into the solidDB server. It uses all the capabilities that solidDB provides, such as transactions and SQL to provide a rich set of data distribution features.
As an example, suppose that you manage an enterprise that has multiple branch offices. You might want to give every branch office or user a local copy of your database so that each user gets the fastest possible response time. But If each office has its own copy of the database, the database can become inconsistent over time, as data is updated in different branches. The Advanced Replication feature provides the flexibility and fast access of providing local copies of the database, while maintaining the data consistency of the data in the distributed system.
Key features
The following sections describe the key features of Advanced Replication.
Master/replica model
In solidDB Advanced Replication, a master database contains the master copy of the data. One or more replica databases contain full or partial copies of the data in the master database. A replica database, like any other database, can contain multiple tables. Tables can contain only replicated data (copied from the master database), only local data (not copied from the master database), or a mix of replicated data and local data.
System-wide information sharing
So that you do not need to provide users with online access to central data management resources, each server in the Advanced Replication system can have a copy of the data that the local users need. In addition, each replica database in an Advanced Replication system can serve a specific purpose. For example, one replica can be dedicated to a decision support or reporting application, while another is dedicated to an online transaction processing application.
Data integrity
In a multi-database system, where updates can occur in multiple databases, maintaining data integrity poses challenges. For example, a technician in the field might update a customer address on a local replica database, while a customer service agent at the main office might update the customer address in the master database. When the replica is reconnected to the network, whose data takes precedence if the data does not match?
With the Advanced Replication transaction management architecture, application developers can build transaction-validation capabilities into the transaction itself. You can write your own application-specific business rules and logic to resolve conflicts if they occur.
Advanced Replication also provides the Intelligent Transaction feature that helps application developers control the consistency of the master database. The Intelligent Transaction feature allows a transaction to validate itself in the master database and adjust its behavior to ensure the validity of the transaction.
High performance and flexibility
You can synchronize data between the master database and replica databases on intervals of your choice by using pull-based replication models. You can also disconnect local copies of the database from the network and then reconnect them later. Each time you reconnect, you can synchronize the databases bidirectionally. You send the latest version of your local data to the master database, and download the latest data from the master database to your local replica database. Replica databases can submit updates to the master database, where the updates are verified according to rules that are set by the application programmers. The verified data is then published and made available to all replica databases.
Each user or office can be given only the data that is relevant to their work. Partitioning the data reduces the bandwidth required to synchronize databases across a network. You can also use partitioning to increase data security by limiting access but without requiring all data to be stored in a single secure location.
Application developers can also tailor the synchronization process to maximize performance. For example, large amounts of data can be transferred over the network when the available bandwidth is optimal. Similarly, you can specify that only high-priority transactions that reflect urgent data are propagated during busy times.