MySQL Fabric – The future of MySQL Sharding?

Over the years I’ve seen a couple of interesting sharding solutions for the shared-nothing storage MySQL architecture, I can honestly say that none were ever worth writing home about. Scalebase provide a fairly robust looking solution however at a very high cost – and the cost of scaling your database shouldn’t have to be astronomical, especially when the database is open-source.

Sharding at the application level or at an even higher level (i.e. varnish-apache-mysql silos handling balanced requests) is a viable solution however it requires considerable development time and requires careful attention to architecture & design. NoSQL stores can provide really good storage for sharding metadata (sharding keys, data distribution & reporting) however once again there are no off-the-shelf tools that can provide this functionality.

A new feature being developed by the guys over at Oracle seems to be the way forward with respect to MySQL sharding. The feature known as MySQL Fabric provides sharding through a very interesting mechanism – the sharding actually happens at the level of the shard aware connector collaborating with the MySQL Fabric node essentially splitting the data both for reads & writes. MySQL Fabric also provides support for high availability groups i.e. replicated node groups (similar to MongoDB replicasets) which can be combined with sharding to provide shard groups.

The technology under development looks very promising and is the only sharding solution for MySQL which provides:

  (1.) A vanilla solution
  (2.) Direct supported from Oracle
  (3.) Logic embedded in the connector & fabric node (i.e. can be run on each app server – no single point of failure)
  (4.) Free as in beer
Sharding has been a major gap for MySQL and it looks like finally we’ll get the database we’ve always wanted… or will we?
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s