What's the difference between RAC and OPS? Instead of using OPS why one should go to the complex structure of RAC?
Oracle 7, 8, and 8i let you cluster multiple machines against the same
datafiles with Oracle Parallel Server, OPS. This gives you good
scalability and high availability. There was a problem with OPS, though.
If one instance modified a data block, and that data block was
requested by another instance, that dirty data block had to be written
to disk first before the second instance could read it. This was known
as "disk pinging" and could hamper performance. Oracle 8.1.6 introduced
a concept known as Cache Fusion. With Cache Fusion, dirty blocks could
be moved along the cluster interconnect to the second instance's buffer
cache. Disk pinging was removed from the equation. Before Cache Fusion,
the only way to avoid disk pinging was to segragate application usage
among the available nodes.
Oracle9i basically changed the name of OPS to Real Application
Clusters (RAC) and added some new features as well. Cache Fusion was
only one of the benefits of RAC over OPS. Another benefit was improved
Transparent Application Failover, where client connections would fail
over to an available node in the cluster should the node they were
connected to go down. While one could say that RAC is more "complex"
that OPS, it is that complexity that adds much more features to the
mix. And Oracle is addressing some of these issues with RAC on Linux
and RAC for 10g.
If given the choice, I would vote for RAC over OPS every time. OPS runs
on software that is either unsupported or will be desupported by the
end of the year. RAC performs much better and is the future direction
of Oracle. Why start with older software?
This was first published in February 2004