A Pluggable Cloud Storage with ScaleDB

This blog post overviews available functionality in ScaleDB, usage scenarios, and potential issues.

This time, we’d like to focus on ScaleDB—a pluggable storage engine for MySQL—deployed in a typical business environment. ScaleDB ensures dynamic scaling of MySQL applications in public and private clouds, as well as on premises. ScaleDB delivers shared-disk clustering in the form of a plug-in storage engine for MySQL. Shared-disk, also known as “shared-everything,” relies on the principle of having a single array of disks—typically a Storage Area Network (SAN) or Network Attached Storage (NAS)—that holds all of the data in that database. Each server or node in the cluster acts on that single collection of data in real time.

In a shared-disk architecture, any node can satisfy any request, because they all have access to all of the data. So, instead of going to a specific node for specific data, shared-disk can simply route the request to the next available node. Since each node can address any database request, the load is inherently balanced across the nodes in the cluster.

 

ScaleDB pros and cons

Pros

ScaleDB’s main features include ACID compliance, high-speed indexing, database virtualization, automatic recovery of failed nodes, cluster-level load balancing, as well as row-level locking, support for foreign keys and referential integrity, highly compressed Indexes, read committed support, etc.

ScaleDB features differentiating factors: the MultiTable index, which provides the functionality of materialized views without the cost of maintaining the views, and a shared-disk architecture, which eliminates the need to partition data.

Dynamic scalability enables adding or removing nodes on the fly, and a master-only cluster eliminates slave replication and promotion.

Cons

There are some challenges that companies encounter when choosing cloud storage products and services:

  • Migrating to other cloud providers can make a problem in the case of shared-disk solutions.
  • One can face the downsides caused by the flexibility of storage products, in case when nodes communicate with each other to coordinate their activity (locking, buffering, and status).
  • Inter-nodal messaging creates some degree of overhead and necessity for a company to balance this overhead against the impact of data/function shipping found in shared-nothing clusters.
  • Some other issues should be also mentioned, such as lack of multi-version concurrency control and GIS index support.

 

Recommended use

ScaleDB is a perfect fit for large web applications. Multiple MySQL servers can share the same physical data without the need to partition the data; servers can be added or removed dynamically according to changing demands. ScaleDB can also hit the targets of web/web 2.0 transactional applications and RDF-schema applications.

 

Further reading


The post was written by Sergey Bushik and Katherine Vasilega.