| 2/18/2004
-- Oracle just released the most recent incarnation of their flagship database product,
Oracle 10g, as well as its middleware companion, Application Server 10g, to support
grid computing. Judging by their marketing you would think that we have entered
the world of "The Matrix" and the machines will solve all of our problems
while we sleep comfortably in our pods. Just like Keanu Reeves’ character in "The
Matrix," if we wake up we find that reality is somewhat different than the
blissful dream, although it can come quite close. Maybe the machine won after
all?
The Grid in Perspective
I sometimes feel like I’ve been doing this too long because all that once as
old is new again. In the mid-'80s the network was the computer in the slogans
of some of Silicon Valley’s finest minds. The thinking then was that big iron
was expensive so everyone was better off getting a bunch of low-cost PCs and
plop them on users’ desks so that they can do their work without having to worry
about one big machine causing everyone to stop working. If one machine in the
network failed others could still work -- unless, of course, that machine was
the file and print server they all shared. Even then, using a low-cost Intel-
or Alpha-based Windows NT or Netware server was preferable to a very big and
expensive mainframe or Unix-based server because hardware costs were lower.
Along came the '90s, and the trend became to use diskless Windows terminals
connecting to a large Intel-based terminal server. Oracle even had a brief foray
into the Network Computer, which did not fly. The reason for the switch was
management of individual PCs was proving to be expensive. Other worries, such
as loss of intellectual property and the introduction and proliferation of viruses,
made if viable to centrally control users’ access to data and applications.
That is not to say that the network was dead, since you needed to communicate
with the terminal server. However, not everyone needed a PC. Furthermore, PCs
were still expensive as protection from all manner of evil that proliferates
on the Internet required time and money.
Now we enter the age of the grid. Grid computing, at first glance, appears
to be going back to the '80s and the notion of the network being the computer.
Actually, it is taking that big piece of iron that became the stalwart and backbone
of ERP systems and other key business software in the 1990s and making it cheaper.
The logic, and it is hard to fault, goes along the lines of “Why should I pay
$100,000 for a big Unix box from a major vendor when I can get the same processing
power from 10 $2,500 Linux-based servers? Besides, if one of the 10 goes down
I can always have the others pick up the workload.” So the grid incorporates
all of the buzzwords that we have heard over the last few years -- fault tolerance,
clustering, load balancing, etc. -- and makes them reality, and at a lower price
to boot (at least in theory).
O.K., so if it sounds so great, what’s the problem with it? The answer: Nothing
really, provided the software is there to support it. Oracle 10g is one piece
of software that is designed to support it, but it is not revolutionary. In
fact, Oracle supported elements of grid computing in Oracle 9i, before the term
grid became fashionable.
From RAC to Grid
Oracle has gone through a few iterations of allowing databases to run on several
computers sharing a common disk array, of which grid computing is the most recent
wave. From Oracle Parallel Server, which let two or more instances on different
computers share a single database on a common hard disk, to Real Application
Clusters (RAC) in Oracle 9i, to Oracle 10g and its expansion on the features
of RAC to support grid computing. In fact, the best thing that Oracle has done
in Oracle 10g is to make the concept of a cluster of low-cost nodes seamless
across the database and application server/middle tier components. Furthermore,
management tools have been improved or introduced to make it easy to move processing
power where it is needed based upon workload requirements.
So what then is the grid if all we are seeing is just a evolution of existing
technologies improved to take advantage of existing hardware? The answer is
simple: a vision of computing similar to the system of power lines or phone
lines. In other words, Oracle has realized, like most of us should, that users
have expectations of computers and the systems they run similar to that of the
phone company or power company – we have an equivalent to the expectation of
dial tone. The gird is the computing industry’s answer to the frustration felt
by users when things don’t work, or don’t work as well as they should. Users
expect to be able to logon and check their email each morning or access the
corporate ERP system and its data without having to worry that it won’t be there.
We need to deliver.
So what has Oracle done in Oracle 10g to support gird computing and to bring
us closer to achieving a viable answer to the expectation of dial tone of our
user?
Oracle 10g Features to Support Grid Computing
In future columns I am going to tackle the new features of Oracle 10g (both
database and Application Server) in a fair bit of detail, but let's present
the five things that I found in my testing of the products that struck me as
being or particular benefit or a large-scale change from previous versions of
Oracle.
1. Optimizer Consolidation
For many years Oracle has supported both a rule-based optimizer and a cost-based
one. The default configuration was to use the rule-based optimizer if statistics
(costs) were not available for tables, indexes and columns. There was no default
automated facility to calculate statistics for objects and it was incumbent
on the DBA to ensure that statistics were calculated as needed. In many cases,
gathering statistics was not done in production environments and performance
problems resulted.
In Oracle 10g there is no longer a rule-based optimizer. Only the cost-based
optimizer remains. To get over the problem of DBAs having to manually create
stats, the database has been extended to capture workload statistics and dynamically
adjust statistics for objects to maintain good performance. The DBA still has
the option to create stored outlines which will ensure a specific execution
plan for a query. Instead of having to figure out whether or not stats for a
table or index are needed, the DBA can now worry about other things, like performance
monitoring.
2. Automated Database Diagnostic Monitor (ADDM)
In order for the database optimizer to deal with the need for up-to-date statistics
on tables, indexes, partitions and other objects, Oracle 10g has created a data
warehouse for the database so that workload information is stored within Oracle.
ADDM is a new tool that is considered a “performance expert in the box” allowing
a DBA to more easily modify Oracle parameters or determine where application
code needs to be looked at to solve performance problems. It is far superior
to Oracle Expert in previous releases of Oracle Enterprise Manager and this
is largely due to the statistics now kept in the database.
ADDM does not replace a DBA and the understanding of a database that one requires
to truly deal with performance tuning, but rather is a good tool to allow the
DBA to identity and solve problems quicker.
3. Automated Storage Management (ASM)
In the old days we had raw disk partitions and their ability to provide better
disk performance. Then we started using the operating system’s file systems
to store Oracle data files because backing up raw partitions was tedious. In
Oracle 10g, ASM allows you to make use of raw disk partitions to store Oracle
data files with much easier management and backups then before. Oracle can now
control raw disks or SAN volumes and provide as good performance as third-party
volume management tools. With improvements in RMAN, backups of ASM-based data
is relatively easy.
One of the nicest features of ASM is that it works with low-cost IDE or Serial
ATA disks for smaller shops. The ability to dynamically add or remove disks
and have the data dynamically striped across the pool of available disks is
quite handy and can also help in improving performance.
4. Cross-Platform Transportable Tablespaces
Starting in Oracle 8i, we had the ability to transport a tablespace and its
contents created in one database to another database. This meant that data that
existed in one location could be easily moved to another location with reasonable
certainty that everything would be in both place. The only catch was that if
you wanted to move a tablespace from an Oracle database on Solaris to an Oracle
database on HP-UX, you could not use transportable tablespaces but had to rely
on the good old Import/Export process or another method.
In Oracle 10g it is possible to transport a tablespace between different platforms.
There is still a catch in that both databases must be Oracle 10g. That may be
a short-term problem since we will all have to move up to 10g eventually.
5. Management Tools
One of the nicest improvements from the perspective of a DBA is the ability
to manage all facets of the grid-based Oracle infrastructure --storage, database,
and application server -- from a central Web-based interface. Oracle Enterprise
Manager is largely a series of Web-based applets that work together to easily
allow a DBA to add or remove components and distribute computing power as needed
to meet workload demands. By not requiring fat clients to get the useful management
features to do our jobs effectively, Oracle has made the move to 10g a more
attractive proposition.
Do They Do Windows?
Now, not everything is as rosy as it could be. The focus of the development
of Oracle 10g, from what I can see, is largely on Unix-based systems with Linux
being on the forefront. Oracle 10g on a Windows platform still seems to be a
bit of a lesser priority for Oracle, though it is trying. I suspect that we
may always see friction between a Microsoft-based product (Windows) and Oracle-based
product like 10g for some time to come. It is not in Microsoft’s interest to
make Oracle run well on Windows (don’t they have a competing database on that
platform?) nor is it in Oracle’s best interests to have Windows be one of its
best performing platforms. Larry and Bill still have reservations about each
other -- and I’m being diplomatic!
More To Come….
The best new features of Oracle 10g require more space than an overview column
can provide. In the next few months I’ll deal with some of the more interesting
aspects of Oracle 10g in detail, so let me know what you want to see -- otherwise
I’ll have to pick the topic. 
|