ScaleDB

ScaleDB is a database virtualization
and clustering infrastructure that transforms MySQL or MariaDB into a cluster of servers operating over shared data. Scaling is achieved by adding nodes to the cluster, eliminating the need for partitioning or sharding.

ScaleDB transforms a single MySQL instance into an elastic cluster for the cloud. ScaleDB uses a shared-data architecture, enabling all database nodes in the cluster to query/update the same physical database. The shared-data architecture is also used by Oracle RAC and Oracle Exadata.
ScaleDB uses an efficient indexing technology based on a Patricia trie. ScaleDB technology transforms the Patricia Trie into a balanced structure
indexing algorithm.
Aims
ScaleDB virtualizes MySQL or MariaDB, turning them into clustered databases, providing increased performance, elastic scalability and resilience.
Implementation
ScaleDB has 3 components - database engine, storage nodes and a cluster manager.
MySQL or MariaDB connect to the ScaleDB database engine via the MySQL storage engine API. The storage nodes provide a storage layer for the shared data, which is available to all of the database instances in the cluster. Like Oracle Exadata the I/O processes are distributed among the multiple storage nodes, delivering performance improvement via I/O parallelization. The cluster manager provides distributed locking functionality to ensure data consistency.
ScaleDB is designed so that there is no single point of failure. If a database node fails, its uncommitted transactions are rolled back and processing continues with the surviving database nodes of the cluster. If a storage node fails, the system continues to operate using the data on a mirrored node. If the cluster manager fails, a standby cluster manager kicks in to manage the cluster.
Uses
ScaleDB is primarily used in public and private cloud environments where the MySQL needs to scale across multiple physical or virtual servers. It is also used to deliver high-availability.
MySQL virtualization
MySQL applications address ScaleDB via a proxy such as HA Proxy or MySQL Proxy, which then transparently distributes the database requests to the various database nodes in a ScaleDB cluster. While leveraging multiple physical or virtual database nodes, the application addresses ScaleDB as a single logical database or virtual database. ScaleDB also virtualizes the components of the typical database engine, such that the compute is abstracted from the data. This enables both layers to scale independently. If the database is CPU-bound, additional database nodes can be added to the cluster. If the database is I/O-bound, additional storage nodes can be added to the cluster. ScaleDB turns the RAM of the storage nodes into a pool of shared memory that is available to all of the nodes, thereby reducing disk I/O and scaling performance. In this way, ScaleDB virtualizes the various components of MySQL, while providing a single logical database view to the application tier.
Cloud and database as a service
Public clouds provide virtual instances in fixed configurations. ScaleDB enables multiple database instances to operate as a single logical database. This eliminates the need to partition or shard the data. ScaleDB also enables clusters to be shared in a multi-tenant configuration, thereby enabling public cloud providers to deliver Database-as-a-Service (DBaaS).
Role in big data
ScaleDB plays an important role in the Big Data movement in MySQL.
 
< Prev   Next >