Use XtremCache to reduce load on your storage tier and save Money
Bitly URL: http://bit.ly/1gNyOxA
Tweet this document:
Follow us on Twitter:
I had an eureka moment some time ago that I would like to share with you. It happened when we were doing a performance review of an Oracle Data Warehouse. The client wanted to know if the system was FASTVP friendly and if he could safely deploy it in his FASTVP pool and if so which policy would he need to select for his system in order to not loose any performance on the array side.
We analyzed the storage usage of the system and found out that of all the IO’s strangely enough almost 80% of the reads were done to the same device. This started me thinking. Because if you reuse a lot of the blocks during processes it makes sense to use server side caching to achieve better performance. But attached to that we would also achieve another goal for this customer. Roughly 80% of his reads would not touch his storage array anymore. His Service Level and chargeback model was aimed at the number of IOPS (IO per second) his storage needed to deliver. So instead of having to choose a high performance tier he could easily choose a less performant tier (Less IOPS) because the storage just needed to process less IO’s.
How does this work? We have some software called XtremCache. It is intelligent caching software that leverages server-based flash and write through-cache to accelerate performance. Because getting your data directly from the server side is infinitely faster then having to go to the array and get your blocks from there. We also have server side flash cards XtremSF to make this work. But the beauty of the software is it works on any Flash cards or SSD drives you have in the server. It even supports Oracle RAC configurations where you need to make sure the cache is coherent over instances (see this article for more detail Supporting EMC XtremCache for Oracle Real Application Clusters)
You install this software and it basically sits on top of your HBA. When a request for a block read comes it will look first inside the server side cache if it is there. If it is it will immediately serve this block, otherwise it will get it from the array and then store it in the cache. Here is an example of a cache hit and a cache miss:
When a write comes though it will give it immediately to the storage array. This way your data is always protected and you do not run a risk of data loss:
Does this mean that this is useless when you do a lot of writes? Not really because when a write is done it is immediately send to the cache so if anyone after this wants to read this block it is already in cache.
This works great for Datafile and Temp Tablespaces in Oracle but do not use this for Redo log since this is writing only.
XtremCache will facilitate that a large number of your read requests will never touch your array anymore which gives you the following advantages:
Attached are some white papers with some more details around this technology. As you might think I advised the client to take a good look at this technology to see if this would help him lower his costs.