ScimoreDB Distributed Replication
ScimoreDB Distributed supports 2 types of data replication: Full copy of rows on all servers, or distribute rows to each server according hash value of partition columns. The combination of the replication with partitioning is supported to benefit the overall performance (the OLAP queries scenario for example).
Full replication
Full replication is a process when all database tables’ data is the same copy on all database servers. This approach is similar to the replication service provided by the popular MySQL database company. Except, any server is the master and slave at the same time. ScimoreDB approach solves performance limitations when single database server must do all work to ensure that modified data is up-to date on all slaves. Replication is ACID aware, so, for example, once data update operation is committed – it is performed on all ScimoreDB Distributed database servers.
Row partitioning
In this replication scenario, each row is partitioned depending on the hash value of the partition column. Partition column is set in CREATE TABLE statement by declaring PARTITION keyword in column's definition section. When data manipulation i.e. UPDATE operation is performed, the update command will be done only on the database server which has the specific row(s) to be updated. The SELECT statement also will query, based on the search criteria's and the partitioning schema, the servers that possibly have matching rows. Otherwise it will asks all servers for their local results, and combine sub-results into the results of the query. Using this type of replication, allows you to utilize memory, disk and CPU on all servers in distributed environment, since each server will use the resources to access/modify it's rows.