How about we actually stop the insanity that promulgates the need for the insanely sized data centers? Use smart caching, java applets and just send business logic via the connection instead of the bloated insanity of html. Instead of shoe-horning an intentionally stateless 'square peg' protocol into the 'round hole' actually go with something rational. Then your data servers only need to deal with business logic and you farm out more of your processing requirements to clients. (aka the rational approach). I despair when I see what applets (irrespective of the language - just the general concept) could have provided us and where we are now in 2012.
(P.S. I can spell, honest! It's just UK engrish)
(a.) volatile memory is cheap for the amount needed for only the cache search (all it has to store is maybe 16 bytes per sector which is tiny). The ram cache is a trivial amount of the cost compared to the flash memory which is where your sectors are being stored.
(b.) re-read what I've listed above - I'm not suggesting you remove the OS tier of disk caching.
(c.) a fully associative algorithm is trivial in complexity in contrast to their 'adaptive' algorithms. A CS101 undergrad could implement a reasonable implementation in a hour. This is trivial stuff.
The OS is awful at write-back as if the power fails you've lost state. The benefit of a hybrid drive is that the flash is non-volatile. Writing to the flash ram is cheap. Writing to the disk is expensive. You get the best of both worlds with a flash based write-back cache.
The benefit of flash is it's cheaper than RAM so you can have more of it whilst being far faster than mechanical. Having a 32 or 64 GB flash hybrid drive provides sufficient cache to only rarely need to write back to the disk for most user operations whilst not forcing a 'system' and 'data drive'. As far as the system is concerned, it's just presented as one very fast 2 TB drive (or whatever).
The only time the system will slow down is when you begin to strip the cache which is perfectly reasonable as it means you've exhausted the flash capacity. For 99.999% of usage situations, this will never occur and it will feel just like a very very quick 2 TB flash drive.
With hard drive access times in the very low milliseconds, it has me baffled why a fully associative cache can't be implemented with write-back.
This strikes me as pretty much the ideal solution. Surely the hardware is fast enough these days to support such a system?
Yes I know the cache hit search becomes the bottleneck, but we're talking hundreds of microseconds here! Use volatile memory for the LRU indexes / search and it would be damn quick for hits. Ensure that the sector tag is still kept for each line (sector) in the flash and on reboot the volatile memory rebuilds its coherency.
I've looked at the listing, and it's right! -- Joel Halpern