h a l f b a k e r y
non-lame halfbakery tagline
add, search, annotate, link, view, overview, recent, by name, random
news, help, about, links, report a problem
or get an account
Redundant Platter Data
Allow a hard drive to be configured at a fraction of its storage capacity to minimize seek times
A mechanical hard drive is still a lot cheaper than an SSD,
and often performance is more important than size.
Proposed is a method of configuring a hard drive. (The
circuitry on the drive would probably need to support this
natively). A mechanical hard drive takes time to seek,
transfer data. In the proposed idea, the hard
drive would be configured to delivery striped data from
multiple heads simultaneously to increase throughput.
(This is likely the case in the present technology.) The
capacity would be cut in half or quartered to delivery data
redundantly along paths spanning only 180 degrees or 90
degrees of the 360 degree track, making a 7200 rpm drive
deliver the seek time of a 14400 rpm or 28800 rpm drive.
(Writes would be a lot slower as a result, but this would be
good for read-heavy environments.) The cylinders would
likewise be redundant or even truncated to minimize
||Random read performance may be improved
particularly if you staggered the tracks across the
and the drive were smart enough to choose the
path taking into account both the time to move the
and the time to rotate the platter. But write
performance would be abysmal. You'd be performing
or 4 physical writes to each platter for each logical
to the drive. I also suspect that sustained read
performance would suffer, since you'd be seeking 2 or
times as often. [-]
||Anyway, a technique already exists for achieving
the same goal. It's called "short stroking", where you
partition the drive so it only uses, say, 10% of its
capacity. The data is then written in a narrow band
each platter, so the total "stroke" of the heads is
reduced considerably. Since the heads don't have to
nearly as far as they normally would, your average
time is lowered considerably.
||The big NAS and SAN devices already do something similar, just not at the single drive level.
Basically, the stripe the data over several physical drives, so that there are 10 heads working, rather than just one. This increases read and write performance, as every file is striped this way. Not much improvement in seek times, but much much faster when actually reading and writing. And you don't lose any of the disks' capacity.
||Right, [Carmi], it's called RAID and it's hardly a new
technology. What you're describing is a RAID 0 (or
some other flavor that involves striping), and while
it's useful to improve bandwidth, the idea here is to
reduce latency, i.e. seek times. If anything, RAID
striping will increase seek times, because the entire
read/write operation has to wait for the last head to
reach the data it needs.
||It all comes down to the type of data you're
accessing. If you're constantly making a lot of small
changes to a database, your average seek time is
going to be a critical factor in determining
performance. On the other hand, if you're streaming
large video files, seek time is basically irrelevant, and
bandwidth is going to be key. I've seen reports that
the low-RPM "green" drives perform as well or better
in a RAID 0 configuration than the higher end 7200 or
10K RPM drives.