Cache Fusion Explained Simply
Cache Fusion Explained Simply (Oracle RAC)
In Oracle Real Application Clusters (RAC), multiple database instances run on different servers (nodes) but access the same database stored on shared storage (ASM or shared disk). This architecture provides high availability, scalability, and load balancing.
But this raises a big question:
If multiple instances are accessing the same data blocks, how does Oracle maintain consistency and performance?
The answer is Cache Fusion.
Cache Fusion is one of the core technologies that makes Oracle RAC possible and efficient. In this blog, we’ll explain Cache Fusion in simple language, step by step, with examples.
What Is Cache Fusion?
Cache Fusion is a mechanism in Oracle RAC that allows data blocks to be transferred directly between the memory (buffer cache) of different RAC instances over a high-speed interconnect, instead of writing and reading blocks from disk.
In short:
- Data blocks move from memory to memory
- Disk I/O is avoided
- Faster performance
- Consistent data across all instances
Why Cache Fusion Is Needed in RAC
In a single-instance database:
- Only one instance accesses the database
- No conflict for data blocks
In Oracle RAC:
- Multiple instances access the same data files
- One instance may modify a block while another wants to read it
Without Cache Fusion:
- Instances would constantly read/write blocks to disk
- Performance would be very poor
Cache Fusion solves this by sharing blocks through memory.
Key Components Involved in Cache Fusion
1. Buffer Cache
Each RAC instance has its own buffer cache in SGA.
2. Global Cache Service (GCS)
- Manages data block consistency across instances
- Tracks which instance owns which block
3. Global Enqueue Service (GES)
- Manages locks and enqueues
- Ensures serialization of access
4. Private Interconnect
- High-speed network between RAC nodes
- Used for Cache Fusion traffic
Simple Example to Understand Cache Fusion
Scenario:
- Two RAC nodes: Node1 and Node2
- Table:
EMP
Step 1: Block in Node1
- Node1 reads a data block from disk
- Block is now in Node1 buffer cache
Step 2: Node2 Requests Same Block
- Node2 needs the same block
- Instead of reading from disk…
Step 3: Cache Fusion Happens
- GCS identifies Node1 has the block
- Block is transferred from Node1 memory to Node2 memory via interconnect
Disk I/O avoided
Faster response
This is Cache Fusion.
Types of Cache Fusion Access
1. Read-to-Read (Shared Block)
- Both instances only want to read the block
- Block is shared in Shared (S) mode
- No conflict
2. Read-to-Write (Block Upgrade)
- One instance wants to modify the block
- Block ownership changes
- Other instances release the block
3. Write-to-Read
- One instance modified the block
- Another instance wants to read it
- Latest version is sent via Cache Fusion
Block States in Cache Fusion
A block can be in different modes:
| Mode | Meaning |
|---|---|
| Null (N) | No access |
| Shared (S) | Read-only access |
| Exclusive (X) | Read & write access |
GCS manages these states to maintain consistency.
What Happens If Interconnect Fails?
- RAC detects interconnect issues
- May switch to another interconnect (if configured)
- If communication fails completely, affected instance is evicted
This protects data integrity.
Cache Fusion vs Disk-Based Sharing (Old Systems)
| Feature | Cache Fusion | Disk-Based |
|---|---|---|
| Data Transfer | Memory-to-memory | Disk |
| Performance | Very fast | Slow |
| Disk I/O | Minimal | High |
| Scalability | Excellent | Limited |
Performance Impact of Cache Fusion
Advantages:
- Reduced disk I/O
- Faster query response
- Better scalability
- Efficient workload distribution
Possible Issues:
- High interconnect traffic
- Poor application design (hot blocks)
Proper indexing and instance affinity help avoid issues.
Cache Fusion-Related Wait Events
Some common wait events:
gc cr requestgc current requestgc buffer busy
These waits indicate global cache activity, not always a problem.
Best Practices for Cache Fusion
- Use fast private interconnect (10Gb or more)
- Avoid hot blocks
- Use instance affinity for OLTP
- Monitor GC waits regularly
- Proper schema and index design
Cache Fusion in One Line
Cache Fusion allows Oracle RAC instances to share data blocks through memory instead of disk, ensuring high performance and data consistency.
Conclusion
Cache Fusion is the heart of Oracle RAC. Without it, RAC would not be scalable or performant. By enabling memory-to-memory block transfer, Oracle ensures that multiple instances can work together efficiently while maintaining data integrity.
If you understand Cache Fusion well, you understand Oracle RAC internals.
Learnomate Technologies provides structured learning and hands-on guidance on Oracle RAC and database technologies, helping learners master critical concepts like Cache Fusion with confidence.





