What is it
Let’s Party! is a jdbc driver that provides any database with partitioning
capabilities to boost performance. Applications don’t have to be rewritten
to use Let’s Party!, because it works on top of your regular JDBC driver.
This way a table containing 10,000,000 rows can be easily splitted into 10
tables of 1,000,000 rows each, without the need to re-write the client
code accessing the db.
Since there is no need for any changes to the client code you can test
different configurations with minimal effort:
you can increase (decrease) the number of tables thus reducing (increasing)
the number of rows per tables, or you can plug (or unplug) Let's Party! on an existing
project.
How it works
A configuration file describes how a table is partitioned, that is the
columns that are
used to decide on which partition data has to be read/written and how data is partitioned.
When a SQL statement regarding a non-partitioned table is issued, Let's Party! simply
passes it to the real JDBC driver (it acts as a fully transparent filter between the
client and the real driver).
When a SQL statement regarding a partitioned table is issued, Let's Party! changes the
statement in order to access the minimum number of partitioned tables. Please visit
how Let's Party! changes SQL statements to get more
informations.
Please read some very important things you should know before using Let's Party!
before starting.
Why table partitioning?
- If you put your partitions on different hard disks you will gain throughput
- Scans of tables will require less time, because you will access less data -> a little table scan can be much faster than an access by index on a big table
- You can put partitions you use less often on slower hard disks or on the network
- (MySql) You can compress data on partitions you don't want to write to
- You can put partitions on different clusters, for example using C-JDBC (beware: selecting from more than one partition from different clusters will not work because C-JDBC can't do unions between two clusters)
- On future versions there will be the option to remove a column (part of an index) if this has low cardinality and replace it with different partitions