A Better Way to Know Exadata Smart Flash Cache -- Well Explained

Now a days, All server are coming with two types of storage devices, Hard disk and Flash Cache. Hard disk are traditional devices to store data and are cheaper than Flash Cache. Flash Cash is very fast (ten thousands I/O per second) storage medium as compared to Hard disk (Hundred I/O Per second) but expensive as well.

Flash Cache lies in between RAM and Hard disk in the server. The main purpose of flash cache is to store frequently accessed data, So that whenever there is call for same data, these data blocks are available in Flash Cache which is very fast in access and are supplied from it. So finally avoid disk reads and increase speed of processing. This feature is basically an OS and Hardware feature.

What is Exadata Smart Flash Cache ?

Now, Exadata use Flash Cache more intelligently for utilization of storing Oracle Database, This feature is called as Exadata Smart Flash Cache. Exadata Smart Flash Cache understand different type of Database I/O and take cache decision according to I/O type. If an I/O operation is meant to be in Flash Cache it will go otherwise it will go to Hard Disk. In Conclusion, Exadata Smart Flash Cache is an intelligent Flash Cache which works according to I/O types.

Following I/O operations are stored in Smart Flash Cache.

1. Frequently Access data and Index blocks.
2. Control files reads and writes.
3. File Header read and writes.

Following I/O operations are not stored in Smart Flash Cache.

1. I/O operations for data block mirror copies.
2. Backup related I/O.
3. Data pump I/O.
4. Full Table scan.

To achieve, This intelligence each I/O is tagged with a metadata about I/O type, Exadata Flash Cache use this information to make decision about keeping database block into flash cache or not.

For Example: DBA is taking an expdp backup, in traditional storage server with flash cache all db blocks are loaded into flash cache and can be a performance bottleneck in the system even we know that, we are not going to use these blocks in future.

But in Exadata Smart Flash Cache, Exadata Storage Server knows that these data blocks should not go into flash cache and makes a big difference in database performance. There are two types of Database operation performed DB read or DB write. So let's see

How Exadata Smart Flash Cache works for Database Read and Write Operations ?

Here we will discussion Database read and write operations with different -2 scenarios

1. Database Write Operations: Suppose DBA issue an insert statement which is going to write data in data file at hard disk. In Exadata CellSRV is the service which perform read and write operations. Here is the sequence of steps:

1. DB request for data write.
2. CellSRV will write block into hard disk.
3. Sent an Acknowledgement to Database Node.
4. Place a copy of data block into smart flash case as well.

To optimize next read operation in Exadata. Now, next read request for same block will only go to flash cache and will give a boost in performance by avoiding disk read operation.

2. Database Read Operation: There could be two situations for Database read operations.
A. Data Block is Cached into Flash Cache: In this case DBA will get fast response, because the block will be read from flash cache so no hard disk read I/O. Here are the steps:

1. Database sent a read request.
2. Data block is already in Smart Flash Cache.
3.This will supply data block to database node.

This whole process has skip data block reading from hard disk so boost the performance.

 B. Data Block is not Cached into Flash Cache: In this case, when Database Administrator issue a select query to read some data and data is not present in Smart flash cache. Below are the action sequence:

1. DB request for Data block.
2. CellSRV will read blocks from Hard Disk.
3. CellSRV provide block to database node.
4. CellSRV place a copy of block into Exadata Smart Flash Cache.

Now next time when ever same block request will come from DBA the situation will be like 2A.

How to Change Objects Behavior for Smart Flash Cache ?

Database Administrator can influence Objects default behavior i.e. To keep them in Flash Cache or not by setting an object parameter "Cell_Flash_Cache". Which has three values DEFAULT, KEEP and NONE.

Default: This shows Exadata Smart Flash Cache is used normally. DBA can use below command to set CELL_FLASH_CACHE as DEFAULT.


Keep: Using CELL_FLASH_CACHE as KEEP means Exadata will try to keep this object more aggressively in to Flash Cache.


None: Setting CELL_FLASH_CACHE as NONE by Remote DBA for an object shows Flash Cache will not use at all for this object.


DBA can consider these option for Database Objects according to their importance. like a frequent accessed partition of a table can reside into Smart Flash Cache with help of keep parameter.

Each I/O operation supplied to Cell server can have one of the cache hints, which decide this I/O should be cached or not. This process is managed by Exadata Cell Software So,Remote DBA has no role or intervention into this process.

Cache: This hint indicated I/O will be cached in Flash Cache e.g. I/O for an Index lookup.
Nocache: Shows I/O operation will not cache in Exadata Smart Flash Cache like RMAN Backup I/O.
Evict: This means I/O should be removed from Flash Cache like ASM Re balance operation.

 Please share if this post help you to understand Exadata Smart Flash Cache in a better way.


  1. Yup, it's a great article regards Exadata flash cache. I really appreciate

  2. well explained bro

    i got interest in learning exadata by reading this article ....
    please provide more and more articles which are useful for real time (if possible with practicals)
    Thanks & Regards
    srinivasa reddy

  3. If the table is partitioned, shouldn't each partition be 'kept' in the cache separately ? What would the syntax be for that ?

  4. Very good info to start exploring exadata....

  5. Good One..helped me to understand smart flash cache...Thanks For Sharing....looking for many more..

  6. small and to the point article. Thanks!