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.
|