So, I don't want to bring this discussion too off-topic, but it's very dangerous to categorize SAN cache management/performance management with a broad brush. *Some* SAN array caches are very dumb, *some* are very very smart, and *some* are dumb because they don't need to be smart. So, running down the list: - a low end array absolutely does not have the ability to do advanced cache algorithms, per-node throttling, resource management, etc. You get what you pay for. - A very high-end array from someone like EMC does have all of these things. For example, if a Symmetrix detects that one node in particular is using up enough cache that it's starting to impact service times on other servers, it'll throttle back that one particular box by intentionally delaying I/O acknowledgement, and starting to use something called Delayed Fast Writes. In addition, if you have a very busy LUN/disk object, you can dedicate a set of cache just for that object to help guarantee service times. A Symm will even look at pending writes, and the position of the write heads on the various disks, and will re-order writes on a per-disk basis to make sure that seek time is minimized. - Then, you have something like a NetApp, where its cache management algorithms are somewhere in between, but it doesn't need to be as smart, because on a NetApp every write is sequential, due to their tree-based block allocation method they use under the covers. This is, incidentally, why NetApp is not making as much of a big deal about SSDs yet, because they are smart enough with traditional disks that some of the SSD advantages don't exist for them. Thanks, Matt -----Original Message----- From: oracle-l-bounce@xxxxxxxxxxxxx on behalf of Vishal Gupta Sent: Sun 5/3/2009 4:36 AM To: tanel@xxxxxxxxxx; dofreeman@xxxxxxxxxxx; Oracle-L Subject: RE: Solid State Drives Tanel, I would agree. SAN cache does a pretty good job, even with RAID-5 as we have it in our bank. Since most of the data, most of time is getting written to memory (RAM) in SAN. And it offloaded to disk in the background by SAN. So database gets a success handshake as soon as data is written to SAN cache. And with combination of server RAM (i.e db cache) and SAN cache and RAID-5, reads are also lot faster. As Tanel, suggests idead should be to optimize your SQLs so they do less IO. But even if they cant, a full tablescan might get repeatedly served from SAN cache. Only problem I see with SAN cache is, there is no resource scheduling. Its all shared. So if you have too many system on same SAN cache, then one rouge system can bring down the entire company's systems. I have seen that happening. If there is too much written to SAN cache and writes are coming fast and thick. Then SAN does not get time to offload this dirty cache to disk,and this write pending goes above your set threshold, it starts throttling writes from all the sources. And we had a linux kernel where it eventually made all the SAN connected mount point read-only. OUCH.. Major downtime on all systems. Now linux kernels have been patches so that mount point does not become read-only under such conditions. But SAN administrators really needs the understanding of databases IO, and also needs to be contain busy system to their own front end ports (Fibre channel ports) and their own disk and controllers. But still they don't have the ability provided by SAN to isolate cache for a particular system. Or ability to throttle only selected systems/FC ports. Regards, Vishal Gupta From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Tanel Poder Sent: 01 May 2009 18:22 To: dofreeman@xxxxxxxxxxx; 'Oracle-L' Subject: RE: Solid State Drives Once they get cheap and big then there would be a business case for them for regular shops. But right now, if you want to reduce the time spent waiting for physical reads in your database - one way is buy faster IO subsystem which SSD may give, another way is to just buy more memory for your server and do less physical reads. The same is with writes, consider whether its cheaper to buy/deploy/maintain the SSDs or just to have more write cache in your storage array (and again, if you buy more RAM into your server for caching read data then you can allocate even more of the storage cache for caching writes). So the question should be what's the most cost-effective option for achieving the result - reducing TIME spent doing physical IO. Given the write-caching of large storage arrays already in use in todays enterprises I don't think adding SSDs make sense from cost/performance perspective. Of course when the technology gets cheaper then the potential power savings and lesser drive dying rate will be another factor to consider. So my prediction is that, unless some other major new technology emerges in coming few years, SSDs will replace disk spindles for online "active" data just like (remote) disk spindles have replaced tape backups in some enterprises (btw I'm not saying that I like this approach entirely - tapes have the benefit of being physically disconnected from any servers, in a guarded safe in a bank in another city or so). In addition to backups, the disk spindles will still be used for archived data as well (lots of storage which is rarely accessed), they are faster than tape but cheaper per gigabyte than SSDs. Long term backups are kept on tapes, but some companies will completely throw away their tape systems to cut costs & complexity and keep all backups on disk spindles. After saying all that - currently I don't see much reason for buying SSDs for database solutions which are already deployed on mid/high-end storage arrays. -- Regards, Tanel Poder http://blog.tanelpoder.com <http://blog.tanelpoder.com/> ________________________________ From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Freeman, Donald Sent: 01 May 2009 16:09 To: Oracle-L (oracle-l@xxxxxxxxxxxxx) Subject: Solid State Drives Has anybody given any thought to where we are going as SSD's get cheaper and bigger? We've been going round and round at my shop with discussions about RAID, other disk allocation issues, fights over storage. I mean we seem to spend a lot of time on that issue. I saw that IBM is testing a 4 TB SSD. I was wondering if you'd have to mirror that, What kind of reliability we would be getting. No more RAID discussions? I've heard there is a finite number of times you can write to it. What's the upgrade path here?