Search scimore.com
ScimoreDB Distributed - ScimoreDB Embedded - ScimoreDB Server - ScimoreDB manager - .Net provider - C++ interface - Courses
ScimoreDB embedded

ScimoreDB Distributed Technologies

ScimoreDB Distributed is a technology which uses shared nothing clustering architecture to provide high availability and high performance for nearly linear scalability.

Distributed Query Optimizer

SQL language is used to interface with ScimoreDB Distributed. This is possible because ScimoreDB has an advance distributed query optimizer, that automatically figures out how to optimally execute SQL queries in the distributed environment. When executing a SQL statement, it is converted to DQL (distributed query language), which is the low-level internal language defining how the query will be executed. The Distributed Optimizer knows how the table's data is partitioned across the DB servers in the cluster. For any given SQL, it can generate DQL which, depending on the query, will execute DQL commands on a single DB server or all servers. If the query is executed on all servers, the optimizer will add merge operators to DQL to maintain: sort order, grouping, aggregations, outer joins, etc..

The DQL optimization process is transparent to user. The user has the option to view optimized DQL queries in the ScimoreDB manager, as well as directly execute DQL queries.

Balanced Network

Each new connection will be automatically assigned to a single DB server, which appears the least loaded at the moment. If a SQL query requires access to all DB servers in a cluster, conquer and divide algorithm is used to maximize performance, where a single server does not interact with all DBs in a distributed cluster.

Storage

ScimoreDB stores data on disk. All disk IO operations are done asynchroniously. This allows utilization of CPU for other queries, while disk IO operation is pending.

Horizontal Data Partitioning

Data within tables is automatically partitioned across all of the DB Servers in a distributed environment.This is done based on a hashing algorithm based on the column set as partition key on the table, and is transparent to the end application.

Replication

If partition key is not set on a table, ScimoreDB will replicate the tables content to all DB servers in the cluster. It uses two-phase commit in order to ensure that data is written to all servers in a cluster upon commiting transacation. Distributed Query Optimizer will balance SELECT queries to read from a single DB server in a round-robin manner.

Failover/Failback

ScimoreDB is a cluster aware application and using third-party software can provide no single point of failure. There are different schemes on how to achieve high availability, such as active-passive, active-active, active-active-active-passive. Each schema has different pro's and con's.

ScimoreDB requirements

  • XP / Vista / Windows Server 2000 / Windows Server 2003 / Windows Server 2008
  • 10 Mb RAM
  • 16 MB disk space