Good read by EMC's CTO on disk caching: http://chucksblog.emc.com/chucks_blo...ching-101.html
Not necessarily workstation relevant, but interesting non the less...
Quote:
The distinction is important -- volatile cache can safely be used for reads, but (generally speaking) shouldn't be used for writes. When an application writes data and gets an acknowledgment, it assumes that the data is safely stored and can be re-accessed when needed.
Quote:
Ostensibly enough, a given hunk of data sitting in read cache is a huge performance win -- the *second* time you accessed it. Not surprisingly, it does absolutely nothing for you the *first* time you read it.
Quote:
Part of the "heatedness" of the debate has to do with enterprise flash drives. Today, they do an excellent job at random read profiles -- there's no disk heads and virtually no latency. And, of course, they can be written to. Physical disk drives do poorly with random read profiles, large read caches only marginally better.
The exception, of course, is if you've got the bucks to create a ginormous read cache, and pull almost all the significant data into memory. Don't snicker -- there are a few use cases where this sort of approach makes sense.
Quote:
However, in the real world, this pure sustained sequential write pattern tends to be the exception, rather than the rule. Most write patterns tend to be both bursty and relatively random. And large write caches help with both.
Write bursts (think database updates or busy file systems) tend to be easily soaked up by write cache. The application is essentially writing to memory, rather than storage media, and you see an eye-opening performance increase as a result.
In addition, random write patterns can be "coalesced" into more sequential patterns that can be written to disk in a more optimal fashion, greatly improving the performance of the back end.
Quote:
If my workload was primarily re-reading the same data over and over again with infrequent updates (and these do exist), I would strongly consider a design that had cheap SATA and the potential for large read caches.
If I was concerned about random read performance (much more common), I'd be far more interested in something that supported enterprise flash for part of the workload.
And if I had a part of my workloads involved bursty updates to data, I'd seriously consider an array with non-volatile write cache.
Surprisingly, most customers have a mix of all three -- which is reflected in the way EMC builds its storage array products.