120 likes | 183 Views
Cache Fusion Making Shared Storage Perform for Vanilla Systems. David.Brower@oracle.com RAC Architecture. Hard data partitions Reroute query fragments 2pc Different QP than SMP Move query to data . No required partitions Query processed one site DLM Disk ‘ping’ Move data to query.
E N D
Cache FusionMaking Shared Storage Performfor Vanilla Systems David.Brower@oracle.com RAC Architecture
Hard data partitions Reroute query fragments 2pc Different QP than SMP Move query to data No required partitions Query processed one site DLM Disk ‘ping’ Move data to query Shared Nothing Shared Storage A marketing slide follows
Cache Fusion Shared Cache Oracle9i Real Application Clusters --Scalability and High Availability Shared Cache Architecture using Cache Fusion ipc • Change nodes online • Change disks w/o re-partitioning • Scales all applications out of the box san • Shared storage without • the disk ping cost • Standard h/w – SAN • and fast IPC
What is Cache Fusion? • Coherency strategy for cluster database cache • Current block sent across interconnect • Integrates DLM & cache “GCM” • Less I/O (compared to disk ping) • Less latency to get block
99 Fusion on contended block – initial state Dirty Log record GCM master GCM shadow 2: x-? D: ? x-? Req X 100 100 Cache hole Dirty current Node 2 Node 1
100 99 Fusion on contended block - request Function call 2: x-? D: ? x-? Req X 100
100 99 Fusion on contended block - ping Ping (“bast”) message 2: x-? D: ? x-? Req X 100
100 99 Fusion on contended block – log wait Group committed log write, usually already done before ping 2: x-? D: ? x-? Req X 100
99 Fusion on contended block – ship block “consign” message in the block shipped by remote DMA 2: x-? pi-100 X-100 100 100 “Past Image”
101 99 Fusion on contended block – adoption “adopt” terminates request, sets master state. 2: pi-100 1: x-100 D: ? pi-100 X-100 101 100 Modification to version 101 while adopt is in flight.
Conveniently, there is no time to discuss • How we write blocks and get rid of the PIs • All the failure scenarios
3648 4000 3500 3000 2500 1900 # of users 2000 1500 1026 1000 500 0 Single Node Two Nodes Four Nodes Does it work?