
The release of Oracle8i (or 8.1, if we dispense with the marketing terms) marks Oracle's biggest plunge into the world of the Internet. The standard RDBMS product has been supplemented with a variety of new features to allow it to integrate tightly with users of the Internet in addition to providing it with a significant boost in uptime through the online maintenance options. Combined, these changes make Oracle a powerful tool for deploying flexible Internet-based applications to millions of potential users.
Luckily, although the Internet has millions of potential users, only a small subset of these users access Internet applications at any one time. This means that the capacity requirements for Internet application are not as large as they may initially appear, although they are frequently very high.
This chapter will explain how Oracle fits into the Internet and e-commerce world and what this might mean for the evolution of the Oracle product.
The widespread adoption of the Internet is now well underway. Although there are already many millions of Internet users, the user base is still growing at an enormous rate. Emerging services, such as free Internet service, are set to increase the Internet user base even more. Permanent connections are also on the horizon, through the adoption of home network services such as Digital Subscriber Line (DSL).
With a large base of potential customers, the Internet provides businesses with several advantages over traditional methods of trading:
Along with these advantages, the Internet also presents the following challenges that must be overcome for project success:
The size of the Internet population allows businesses to reach a large number of potential customers. Although the Internet is not yet a part of everybody's life, it has probably achieved significant penetration of the target market of many companies: Many people who regularly use the Internet are professionals with above-average disposable income. Therefore, traders of goods such as electronics, sports equipment, and computer equipment are already reaping the benefits of trading on the Internet.
The Internet is only a virtual shopping mall. It is not necessary to have store frontage in order to trade on the Web; it all takes place online. Therefore, tremendous cost savings are possible through having only office and machine room space instead of multiple, premium-priced shopfronts. In addition, the datacenter can be located anywhere in the country, not just where the target consumer is located.
A reduction in locations also means that there is significantly reduced head count when transactions are performed directly between consumer and computer. While it is imperative to retain a strong customer service capability, the number of direct sales representatives need only be a token offering. This means that the idea of the large "call center" is shortly to become a thing of the past for many retailers.
With increased exposure comes, arguably, a larger user base. Although the number of customers may not be a great deal more than that of a leading direct-mail catalog, the fact that all these customers also equate to users of the system means that there could be many more users working concurrently. This is particularly true during evenings, when many people have the time to go shopping on the Internet.
Alhough the number of customers does not necessarily imply that there is more data, the trend of e-commerce seems to be just that. One thing that online customers have grown accustomed to is a full order history, complete with tracking numbers and payment details. In addition, customers expect a very comprehensive inventory from an online retailer, along with distributed warehouses and probably some kind of customized look and feel to the site. The implication of all this is that the typical online retailer quickly amasses enormous amounts of data.
The biggest problem of the Internet is also its greatest strength-it is a globally shared network. This means that online retailers must factor this into their designs, and mitigate the problems of variable bandwidth and latency with good application design. The bottom line is that the application must
The first item clearly relates to the problem of low bandwidth. The second deals with both the scalability of the datacenter systems and, more importantly, reduction of the number of network round trips. This is done so that the network latency does not aggravate the user too much.
As a result of all these issues, the industry had to overcome a variety of hurdles before e-commerce could become a viable option. Great progress has been made on these problems, and the Internet now works quite well as a trading platform. The side effect of this is that these problems all needed to be solved for internal applications too, and the online trading requirement has helped to accelerate the resolution of a variety of business computing problems. The same technology used for Internet applications is also very suitable for intranet (internal) applications and provides solutions for the following key problem areas:
Oracle8i and supporting application development tools incorporate several features that help to address these issues, improving both the Internet application and the more traditional multiuser business application.
Previous releases of Oracle already provided strong, scalable database services that made it an excellent platform for business applications. With the introduction of Oracle8i, Oracle has taken the next step in providing core support for emerging Internet technologies, and the emerging application development practices.
Perhaps the most crucial of the new features is the complete adoption of Java, including a fully integrated Java Virtual Machine (JVM) into the actual database server engine, known as JServer. For the first time, Oracle can execute the same code in any tier of the application, using Java. This has not been possible with any prior release or programming language; even PL/SQL has suffered from version mismatches between the client and the server implementations.
Java integration brings two important strengths to the Oracle product. First, it is the de facto standard for Internet application development. This makes the Oracle product more accessible to the Internet community, with no need to learn PL/SQL, OCI, and so on before useful application code can be constructed.
Second, it is a robust, portable, and diverse object-oriented programming language, taking many of the best practices from other OO languages and circumventing many of the common problems. Being object-based and multiplatform, Java is the ideal vehicle for multitier development, because the core logic can be insulated from the detail of the execution environment.
In order to allow simple relocation of Java code between tiers, Oracle has maintained the standard Java Database Connectivity (JDBC) method for accessing the database for every tier in the application. Whether the code runs on the end user's terminal, in the middle tier, or within an Oracle server process, it will always access the database through JDBC. The difference between the tiers is in the footprint of the JDBC interface and the subsequent performance.
There are now three different JDBC interfaces: Thin (pure Java), OCI, and Server. The Thin interface is used for distribution to the user's terminal/PC. It is small in size and consists of 100 percent portable binary code, but it is comparatively low in performance. The OCI driver is designed to be run in the middle tier, having a nonportable native binary, larger size, but significantly better performance. Finally there is the Server JDBC interface, which is simply a proxy straight into the RDBMS SQL layers. This interface is by far the fastest, but obviously can exist only in the server tier.
As JDBC is a standards-based database interface designed for all types of database access, it is subsequently a little cranky in usage. For this reason, Oracle supplies SQL, which is to JDBC what Pro*C is to C. It allows more simplistic embedding of Oracle SQL into Java programs, which are then preprocessed into standard JDBC code for compilation.
Starting with release 8.1.6, Oracle will be shipping the JServer Accelerator. This proves to be a very valuable addition to the product, addressing the single biggest problem with Java-performance. The accelerator does this by taking the Java byte code binaries and generating standard C code from them. This code is then compiled using the standard optimizing C compiler and made available for use. This promises to provide a significant performance uplift, although it is still unlikely to be as fast as native C code because of the language abstraction.
The final advantage of integrated Java is the ease of integration of ORB models into the application. In fact, Oracle has integrated an ORB with the product, written using JServer. Using this ORB, database-resident Java code can be invoked remotely with standard Internet Inter-ORB Protocol (IIOP) invocation.
The new suite of application development tools, JDeveloper 2.0, provides the development environment for the new language and moves Oracle out of the old days of SQL*Forms. JDeveloper allows the development of Enterprise Java Beans (EJB), client Java applications, Java stored procedures, and Java Servlet code, using a GUI Integrated Development Environment.
In addition to the Java integration, improvements in Oracle8i data services support large user populations and Internet programming practices.
For content handling, Oracle provides interMedia, a set of multimedia mangement services for various types of data. The services available immediately are those of audio, video, text (ConText), and GIS information (Spatial). The ConText and Spatial services were first introduced in releases of Oracle7.
These services allow for more intelligent handling of content, enabling the database to provide more dynamic content for the application. Standard services include intelligent searching within the data types and content-specific manipulation, such as cropping.
Other Internet additions include the iFS, or Internet File System. This is a more flexible way of accessing the content in the database, allowing access through ftp, SMB (Windows Networking), NFS, and standard Net8.
Perhaps of more interest to the large system builder are the improvements in how Oracle manages data. These changes include
Although some of these features are not strictly data services, they all relate to how data can be managed in a large database, and so are treated together.
First is the welcome arrival of online B-tree index rebuilds. When the ONLINE keyword is specified, an index can be rebuilt without taking a table lock (lock type TM). This means that the table can continue to be used for read and write while the index is built; any changes during this period are logged for later addition to the new index. Because IOTs constitute an extended B-tree index, this also means that an IOT can be rebuilt online.
The provision for secondary indexes on an IOT means that an IOT can now be used in place of many standard tables. The advantage of this is that the indexes on the table and the table itself can all be rebuilt online, allowing online performance and space maintenance to take place.
The impact of this provision is a huge advance in system availability. Although it probably still makes sense to carry out these maintenance operations during quiet (and therefore unsociable) hours, the system does not need to be taken down in order to perform these changes. Most scheduled maintenance periods can therefore be carried out online, allowing the system to remain operational to the user for months at a time. In fact, it is likely that the UNIX operating system will need attention (with patches and other, similar measures) more often than Oracle will.
Local space management addresses a different issue-the inefficiency of the dictionary cache at managing free and used extents in the database. In previous releases, Oracle used the SYS.FET$ and SYS.UET$ dictionary tables to store the free and used extent maps, respectively. In large databases, there could be many thousands of entries in each of these tables (and subsequently in the dictionary cache), making any operation on them a laborious exercise. This, in fact, is the reason that "database fragmentation" through many extents has been seen as a bad thing.
In Oracle8i, there is the option of having locally managed tablespaces. When locally managed, Oracle stores the extent information for a file in bitmap form in the file itself. Any time Oracle needs to work on the extents in a locally managed tablespace, it need only consult the series of on/off bits in the file-local extent map. Therefore, it is considerably faster than the previous method and is more scalable because there are many of these bitmaps in the database.
The impact of local space management is that yet another reason for database maintenance has been all but removed. Using the bitmaps for space management, the ST enqueue is no longer required, and it becomes far less important to keep the extent sizes optimized for performance.
Although the CBO has been around for some time, the process of ensuring that it is working from good statistics has been problematic. Where a database is growing dynamically, the danger of plans changing overnight presents an unacceptable level of risk for large systems. With 8i, Oracle has provided several facilities that make the management of the optimizer more predictable. All these changes relate to the same aspect-better control of statistics.
The most fundamental of these changes is the ability to freeze plans, ensuring that the CBO will not take a different approach to a given query once the plan has been frozen. This ensures that queries will respond in the same order of time, even if the data distributions were to change in the tables. Without frozen plans, query response times could change by many orders of magnitude.
Additionally, production CBO statistics can now be applied to development databases in a supported way, allowing developers to use EXPLAIN PLAN in a worthwhile way.
These features may not seem to be enhancements in data services, but the prior hit-or-miss CBO tuning could break as many things as it fixed. With this more controllable method, the execution profiles of the queries are repeatable, therefore ensuring reliable operation of the database.
Unlike release 8.0, it is likely that release 8.1 will have additional features released during its lifespan. A great many of these features will probably be associated with the JServer component, because this is the most radical addition and is such a dynamically changing landscape anyway.
In addition to this, however, is the roadmap for the database server itself, going toward release 8.2 and even Oracle9.
Oracle has been chasing Microsoft for some time, specifically seeking dominance in the Windows NT database market. One side effect of this effort is that Oracle has had to simplify the interfaces and management of the database in order to provide users with the kind of "wizard" interfaces they are used to on the Windows platform.
This simplification of mundane tasks has become one of Oracle's strategic goals, including better installers, wizards to help with database creation and configuration, and so on. In addition, Oracle is making the operation of the database server itself a more automatic task, starting with 8.1, where a whole range of sort parameters (SORT_READ_FAC, SORT_WRITE_BUFFERS, and so on) have been obsoleted in favor of automatic management.
It is likely that this trend will continue in the future. One potential target could be the management of rollback segments, allowing Oracle to self-manage a common pool of space for undo information. Other enhancements will include the removal of some initialization parameters, making their configuration automatic. Taking this one step further, Oracle is likely to adopt some kind of self-healing tuning, allowing the instance to reconfigure itself where necessary for better operation.
Of more interest to builders of very large systems, Oracle is certain to keep improving the scalability and performance of its product. As we discussed in Chapter 1, improving scalability and performance is a continuous task, and the product will continue to improve in this area from release to release.
Perhaps the most crucial part of this improvement will be the architectural "tweaks" that Oracle is starting to incorporate, in order to better support emerging hardware architectures such as NUMA. Through continued coengineering with hardware suppliers, Oracle is actively working at staying ahead of other database products in terms of performance.
Finally, Oracle has nearly cracked the availability nut. While Oracle has been successful in deposing mainframes from many sectors of the marketplace, most banks and financial institutions still have no alternative to the mainframe. Oracle and UNIX simply cannot provide the same degree of availability that a modern mainframe or fault-tolerant system can. However, the Oracle Server is rapidly getting to the point where this is no longer the case, and it will soon be viable as a true mainframe alternative.
The final hurdle is a tough one: Oracle and its hardware partners need to work together to provide seamless availability. It is no good pointing fingers-the system simply has to work, all the time, with no excuses. When this has been achieved, however, Oracle will be able to shift up another gear and enter into a whole new world of massively scalable and highly available applications.
While application architectures shift and the Internet grows in strength, Oracle covers all bases. By embracing the emerging technologies and continuing to develop and improve its core product, Oracle is keeping its flagship product-the Oracle Server-on top.
Oracle is quickly becoming the database platform of choice for large commercial Internet companies, providing the technology and scalability that will make their businesses work. At the same time, more traditional business applications are using the new features of Oracle to provide higher availability and greater performance.
The highly available application system is the real challenge, and when Oracle and the hardware vendors finally get all the pieces together, Oracle will become even more prevalent in the high-end marketplace. This means that highly scalable Oracle systems will be in demand more than ever, and those skilled in building them become yet more marketable by implication. Welcome aboard!
![]() Scale Abilities Ltd http://www.scaleabilities.co.uk Voice: +44 1285 644533 info@scaleabilities.co.uk |
|