Databases Reference
In-Depth Information
how likely the controller is to fail, but the vendors say that their controllers should be
as good as network cards or RAID controllers in general, and this seems likely to be
true. In other words, the mean time between failures (MTBF) for these devices is likely
to be similar to the motherboard, so using RAID with the devices would just add a lot
of cost without much benefit.
There are several vendors making PCIe flash cards. The most popular brands among
MySQL users are Fusion-io and Virident, but vendors such as Texas Memory Systems,
STEC, and OCZ also have offerings. Both SLC and MLC cards are available.
Other Types of Solid-State Storage
In addition to SSDs and PCIe devices, there are other options from companies such as
Violin Memory, SandForce, and Texas Memory Systems. These companies provide
large boxes full of flash memory that are essentially flash SANs, with tens of terabytes
of storage. They're used mostly for large-scale data center storage consolidation.
They're very expensive and very high-performance. We know of some people who use
them, and we have measured their performance in some cases. They provide very decent
latency despite the network round-trip time—for example, less than four milliseconds
of latency over NFS.
These aren't really a good fit for the general MySQL market, though. They're more
targeted towards other databases, such as Oracle, which can use them for shared-
storage clustering. MySQL can't take advantage of such powerful storage at such a large
scale, in general, as it doesn't typically run well with databases in the tens of terabytes—
MySQL's answer to such a large database is to shard and scale out horizontally in a
shared-nothing architecture.
Specialized solutions might be able to use these large storage devices, though—
Infobright might be a candidate, for example. ScaleDB can be deployed in a shared-
storage architecture, but we haven't seen it in production, so we don't know how well
it might work.
When Should You Use Flash?
The most obvious use case for solid-state storage is any workload that has a lot of
random I/O. Random I/O is usually caused by the data being larger than the server's
memory. With standard hard drives, you're limited by rotation speed and seek latency.
Flash devices can ease the pain significantly.
Of course, sometimes you can simply buy more RAM so the random workload will fit
into memory, and the I/O goes away. But when you can't buy enough RAM, flash can
help. Another problem that you can't always solve with RAM is that of a high-through-
put write workload. Adding memory will help reduce the write workload that reaches
the disks, because more memory creates more opportunities to buffer and combine
writes. This allows you to convert a random write workload into a more sequential one.
 
Search WWH ::




Custom Search