Architecture

ScaleDB provides an open source API which can be found here. License type: GPL V2.

ScaleDB provides a clustered, shared-disk storage engine. The shared-disk architecture enables multiple nodes to share the same physical data, eliminating the need to partition your data.

The diagram below shows a cluster with multiple nodes in a cluster. Each node runs the ScaleDB storage engine in conjunction with a DBMS like MySQL. The ScaleDB Cluster Manager then orchestrates the interaction of these nodes.

read more

This architecture provides:

  • Dynamic Scalability: Additional nodes can be added to the cluster without the need to repartition your data.
  • High-Availability: There is no single point of failure. If a node fails the remaining nodes gracefully take-over uncommitted transactions. If the Cluster Manager fails, one of the database nodes takes over the Cluster Manager role. The data on disk is mirrored to protect against disk failure.
  • Cluster-Level Load Balancing: Since each node can address any database request in a master-only model, the load can be balanced across the entire cluster.
  • Lower Total Cost of Ownership (TCO): The load-balanced master-only architecture eliminates the complex process of data partitioning and the synchronization between masters and slaves. This significantly reduces total cost of ownership.

The following diagram describes the various modules of the ScaleDB architecture:

read more

For Each Node:

  1. ScaleDB API – Exposes the ScaleDB functions to DBMS and applications that leverage ScaleDB.
  2. Transaction Manager – Ensures that the transactions are safe, ensuring completion or rolling-back the uncommitted transaction in case of failure.
  3. Index Manager – This leverages our Multi-Table Indexing engine to facilitate rapid access to data.
  4. Data Manager – Coordinates reading and writing of data to files.
  5. Buffer Manager – Manages the machines local cache on each node to improve efficiency and performance. It coordinates with the Global Buffer Manager on the Cluster Manager to ensure that each node is aware of changes made by other nodes.
  6. Log Manager – Maintains the local log, which is used for rolling back uncommitted transactions and also for failure recovery.
  7. Lock Manager – Manages local lock management and coordinates with global locking. This insures, among other things, that no two nodes are changing the same information at the same time.
  8. Recovery Manager – Coordinates with the Global Recovery Manager to ensure that upon failure of the node, it can be recovered gracefully.
  9. Storage Manager – This coordinates the flushing of the data to disk.

For Each Centralized Cluster Manager:

  1. Global Buffer Manager – Orchestrates the interactions of the various local Buffer Managers on each node in the cluster.
  2. Global Lock Manager – Ensures that the various nodes in the cluster are orchestrated in their efforts to establish and release locks the data. ScaleDB implements row-level locking.
  3. Global Recovery Manager – Orchestrates the recovery process in case of a node failure such that the data integrity is maintained throughout and after the recovery process.