Vertical vs. Horizontal scalability
Oracle tips by Burleson
Best practices for scaling
Oracle VLDB systems
For large Oracle databases, we
often see multiple database servers being utilized, either the "server blade"
approach of Oracle 10g Grid (horizontal scalability or "scale out"), the
vertical scalability approach "scale up" where large servers are used, and a
combination of both vertical and horizontal scalability solutions.
This is called "horizontal
scaling", or the "scale out" approach, whereby small server blades are genned-in
to an Oracle RAC cluster over a high-speed interconnect. Horizontal
scaling requires Real Application Clusters and also provides the benefit of
guaranteed continuous availability.
Vertical scaling for
We also see the "scale up"
approach (the vertically scalable architecture) whereby server resources (CPU,
RAM, Disk) can be added into a single, monolithic server. Examples include
the HP Superdome (64 CPU), the Unisys ES7000 (32 Processors) The Sun Sun Fire
and the IBM X Series.
Vertical scaling has several
benefits over horizontal scaling for Oracle databases:
- RAC is not required
- Machine resources
(especially CPU) are instantly available for sharing
- A single-server requires
less overhead and management
The Sun architecture has broken
the Oracle data warehouse
TPC-H World record using a vertical scalable architecture.
"Running on a single Sun
Fire? 25K server with 72 UltraSPARC IV+ 1.5 GHz processors and the Solaris?
10 Operating System (OS), Oracle Database 10g Release 2 with Automatic
Storage Management achieved a record-breaking performance of 105,430.9.
Oracle Database 10g Release
2 repeatedly demonstrates its superior fit in demanding data warehouse
environments, " said Richard Sarwal, vice president of Server Performance,
Oracle. "The addition of this benchmark helps to prove that no matter how
much our customers' data warehouses grow, the Oracle Database will continue
to deliver the best, most consistent database performance."
Combining horizontal scalability and vertical scalability
So, which is better for
high-availability databases using Oracle Real Application Clusters (RAC)?
In the real world, savvy
corporations combine vertical scalability and horizontal scalability. They
start with a large vertical architecture server, adding resources as-needed.
If continuous availability is also required, they may have a mirrored server
using long-distance RAC or Oracle Streams.
When the single server is
approaching capacity, they the "scale out" with the horizontal scalability,
employing RAC and adding additional servers, each with a vertical scaling
"For large databases, vertically-scalable architectures can provide
higher levels of scalability than large numbers of horizontally-scalable
systems with distributed databases, and vertically-scalable servers are
often easier and less expensive to manage."
If you like Oracle tuning, you may enjoy the new book "Oracle
Tuning: The Definitive Reference", over 900 pages
of BC's favorite tuning tips & scripts.
You can buy it direct from the publisher for 30%-off and get
instant access to the code depot of Oracle tuning scripts.