View Source

h1. HSCALE - Horizontal Scaling for MySQL

HSCALE is a plugin written for [MySQL Proxy|http://forge.mysql.com/wiki/MySQL_Proxy] which allows you to transparently split up tables into multiple tables called _partitions_. In later versions you will be able to put each partition on a different MySQL server.

{note:title=Download the current version NOW!}
[Version 0.2 released on 2008-05-06|http://sourceforge.net/project/platformdownload.php?group_id=223792].
To get started read on [Configuration] and [Running]. The current development status can be found [here|Development]. Report any issues to our [JIRA Issue Tracker|http://jira.hscale.org].
{note}

Find more information on MySQL Proxy and HSCALE and the reasons why here: [Presentation Slides: Introduction to HSCALE|http://pero.blogs.aprilmayjune.org/files/2008/04/introduction_to_hscale.pdf]

h3. News and Blog Posts

{rss:url=http://pero.blogs.aprilmayjune.org/category/hscale/feed}

h3. Application Based Partitioning / "Sharding"

Application based partitioning means that your split up your data _logically_ and rewrite your application to select the right piece of data (i.e. _partition_) at any given time. [More on application based partitioning|http://pero.blogs.aprilmayjune.org/2008/03/26/mysql-partitioning-on-application-side]. Read [some more about what could be done with HSCALE|http://pero.blogs.aprilmayjune.org/2008/03/29/progress-on-mysql-proxy-partitioning/].

HSCALE helps in application based partitioning. Using the MySQL Proxy it sits between your application and the database server. Whenever an sql statement is sent to the server HSCALE analyzes it to find out whether a partitioned table is used. It then tries to find out which partition the sql statement should go to.

h3. What About Partitioning Inside MySQL 5.1 and Higher?

Partitioning provided by the [MySQL server|http://dev.mysql.com/doc/refman/5.1/en/partitioning.html] is a whole different thing. In the most simply way: It manages how your data is stored internally. You still have a 1,5 billion row table with almost all the disadvantages: you cannot alter the table easily and you cannot put different partitions on different MySQL servers.