Databases Reference
In-Depth Information
The MySQL compatibility layer through the storage engine doesn't offer 100% of
MySQL's features, but it is rich enough to support applications such as Joomla!, Word-
Press, and Drupal out of the box. The use case for the MySQL storage engine is to make
GenieDB available alongside an ACID storage engine such as InnoDB. GenieDB is not
an ACID database.
We have not worked with GenieDB ourselves, nor have we seen any production
deployments.
Akiban
Akiban ( http://www.akiban.com ) is probably best described as a query accelerator. It
stores data physically to match query patterns, making it possible to perform joins
across tables with much lower cost. Although similar to denormalization, the data
layout is not redundant, so it is not the same thing as precomputing joins and storing
the results. Instead, tuples from the joined tables are interleaved with one another, so
they can be scanned in join order sequentially. This requires the administrator to iden-
tify the query patterns that would benefit from the so-called “table grouping” technique
and design table groups optimized for the queries. The currently suggested system
architecture is to configure Akiban to replicate from your MySQL master, and use it to
serve queries that would otherwise be slow to execute. The speedup factor is claimed
to be one to two orders of magnitude. However, we have neither seen production de-
ployments nor conducted laboratory evaluations. 11
Scaling Back
One of the simpler ways to deal with an increasing data size and workload is to archive
and purge unneeded data. Depending on your workload and data characteristics, you
might be able to realize significant gains from archiving and purging data you don't
need. This doesn't replace other scaling strategies, but it can be part of a short-term
strategy to buy time and should probably be part of a long-term plan to cope with large
data volumes.
Here are some things to think about when designing archiving and purging strategies:
Impact on the application
A well-designed archiving strategy can move data away from a heavily loaded OLTP
server without impacting transaction processing noticeably. The key is to make it
efficient to find the rows to remove, and to remove them in small chunks. You'll
usually need to balance the number of rows you archive at once with the size of a
transaction to find a good compromise between lock contention and transactional
overhead. You should design your archive jobs to yield to transactional processing
jobs when necessary.
11. We might be cheating a bit by including Akiban in the list of clustered databases, because it's not really
clustered. However, it's similar to some of the other NewSQL databases in some ways.
 
Search WWH ::




Custom Search