Are there any hard drives that exist that have multiple independent read/write heads on the same hard drive platter? Correct me if I'm wrong, but I would expect that doing this would solve a lot of disk contention problems in a situation where multiple things are being read/written in parallel. Particularly in the case of database servers and the like. If this has not been done, why not? Is it too expensive? Is it inefficient? Is it too technically difficult? Is it unnecessary?
It would improve latency by reducing head movements required (by having head set responsible for a specific band of the platter surface or by intelligently moving them for the given workload). It may also reduce the average amount of time the heads wait for the right bit of data to move past once they are in position (if the best positioned head was moved into place for each request). There might also be an in throughput for some use cases if the controller logic were bright enough to see the use pattern and keep the heads in the right general places.
But I don't think it will happen due to expense and complexity:
- You have to find room for the extra mechanical parts within the drive case (if you have ever opened a drive you'll see who difficult this could be - it would need a massive miniaturisation effort or a reduction in physical platter sizes).
- The extra intelligence required in the controller firmware in order to make any good use of the extra heads generally (without risking reducing performance in some use cases) would result in significant extra complexity, increasing the chance of bugs.
- Even with all the mechanical and programming effort the result would not match other much cheaper solutions that reduce latency and increase throughput. Specifically the use of solid state technologies and/or pairing (or tripling, and so on) individual drives in RAID0 arrays, so the idea would be very unlikely to be commercially viable.
- The extra mechanical complexity, as well as making the drives harder to manufacture, would make the them much more prone to failure.
Another similar idea that I've seen discussed is having the heads serving each platter surface move independently, but this is also impractical due to mechanical complexity.
The actual alternative to this is really SSD (Solid State Disk) drives which doesn't have a head or a platter. These are becoming more and more popular and cheaper by the week. I have done quite a bit of work with these drives and they are impressive to say the least.
There's a good article about this question in the PC Guide. Connor Peripherals used to make such a drive. Apparently the main obstacles were marketing.
Database servers generally have some form of RAID the extra mechanical complexity required is not worth the gain, when you can use cheaper devices for the same effect.
I do remember a CDROM drive that could read data from 7 points at the same time - iirc this was not random, but sequential, allowing the device to read parts of the same file at the same time. It was not so the drive was faster, but quieter (it could spin slower for similar transfer rates).
I've been tossing around an idea of how one set of arms could be dedicated to the top surface of the platter, while a second set could be exclusively for the other side. This would essentially make a mini RAID 0 or RAID 1 array within the drive, and would be a decent alternative to a single hard drive with multiple spindles (http://www.google.com/patents/US20060044663) as it would save energy (As only one motor would be required) but would have the same performance benefits of the previously mentioned 'multi-spindle' drive.
Finding room in the enclosure for a second voice coil and set of arms, however, would prove difficult as David mentioned previously. However, a smaller voice coil could solve the issue; the platter could simply be moved to the geometric center of the drive as viewed from the top or bottom and the voice coils could be positioned in opposing corners. A small enough voice coil may already exist, but a smaller coil COULD be too weak to accurately move the arms, which introduces a new problem... I'm sure it could be done, though; look how much smaller computers in general have gotten over the years, after all.
A better geometry for multiple independent read/write heads should be a hollow cylinder plate geometry instead of actual round platters. You can put much more heads inside, heads movement will be more precise allowing a higher bits per inch density. Allowing more room at drive height and putting multiple hollow cylinders with different radius one inside the other byte space density can be increased dramatically. A one pentabyte monster per one 10 centimeter height/10 centimeter wide and 10 cylinders inside can be manufactured with actual technology. And in that space you can pack many independent rw heads.