You are on page 1of 6

Oracle® Multithreaded Database Server:

Architecture Overview and Benefits


Features Overview
February 1999

OVERVIEW

The multithreading capabilities of Oracle’s database server significantly increases the scalability of
applications and the number of clients simultaneously connected to the database. It can enable
existing applications to scale up without making any changes to the application itself. In addition,
applications can use the multithreaded database server to access the new Oracle8i™ object-oriented
features including Java™ Virtual Machine, Enterprise Java Beans™, and protocols such as IIOP.

The multithreaded database server architecture has been optimized to work seamlessly with important
functionality including Oracle® Parallel Server, Advanced Queuing, and parallel query. In the Oracle
Parallel Server case, the multithreaded database server enables node-level load balancing and
simplifies configuring of failover support.

Applications benefiting most from the multithreaded database server are those that need to minimize
memory and processing power on the database server or need large user scalability. Examples of such
applications are OLTP applications with a high transaction volume and web-based, thin-client
applications that use IIOP and have a Java-based architecture. Database administrators will find that
fine tuning multithreaded server parameters provide more control over their hardware and
database resources.
MULTITHREADED DATABASE SERVER ARCHITECTURE

Figures 1 and 2 show the basic difference between the traditional dedicated server model and the
multithreaded server model. In the dedicated server model, there is one server process for each client.
When using the multithreaded database server, the clients do not communicate directly with the
server processes. Instead, client requests are routed to one or more dispatchers. The dispatchers then
place the client requests on a common queue. An idle shared server process from the shared pool of
server processes picks up and processes a request from the queue. This means a small pool of server
processes can serve a large number of clients. This sharing is possible because all the state information
associated with each client session is stored in session state, which the shared server processes can
access and update. Different shared server processes can serve requests from the same database session
over time in an efficient manner. For the UNIX operating system, each shared server is a separate
process. On Windows NT, each shared server is a separate thread instead of a separate process.

Clients Network Database Server Machine

client 1 sr 1

sr 2
client 2

sr 3

client 3

sr n

client n sr1 - sr n : processes on UNIX, threads on NT

Figure 1. Dedicated Server Model

The memory usage pattern is different when an application uses Oracle’s multithreaded database
server. Large amounts of the state information related to the user session are moved from user
memory to shared memory, thus requiring less overall user memory. The total memory used with a
multithreaded database server is much less than the dedicated server model as the number of
users increases.

Oracle Multithreaded Database Server: Architecture Overview and Benefits 2


February 1999
Clients Network Database Server Machine

client 1
Shared Servers

client 2 sr 1
Dispatcher
sr 2
client 3

client n sr1, sr2 processes on UNIX, threads on NT

Figure 2. Multithreaded Database Server Model

KEY BENEFITS

INCREASED PERFORMANCE AND CONCURRENT USER SCALABILITY


The multithreaded database server significantly increases the number of users that can be connected to
the database. Performance is improved in a wide variety of applications such as web-based, thin client
applications and in high-volume OLTP applications where large numbers of users are simultaneously
connected to the system. The multithreaded database server allows for improved connect/response
times, reduced use of resources, and improved throughput and load balancing.

INCREASED ACCESS TO INTERNET COMPUTING FEATURES


The multithreaded database server gives the application access to all the latest Internet computing
features in the Oracle8i database server. This includes support for communicating with the database
using new presentation protocols such as IIOP and Oracle’s Two-Task Common (TTC) protocol
which is used with Net8™ and SQL*Net®. Database administrators can dynamically add new
presentation-layer protocol support as needed. This is a key advantage when using web-based, thin-
client applications instead of the traditional fat-client model. Such web applications can
communicate directly with the database using a protocol other than TTC and can dramatically

Oracle Multithreaded Database Server: Architecture Overview and Benefits 3


February 1999
decrease the time needed to establish a session. The multithreaded database server and Java Virtual
Machine provide Enterprise Java Beans support in the database.

CONNECTION MULTIPLEXING AND CONNECTION POOLING


The multithreaded database server enables an application to use the connection multiplexing feature
with the Connection Manager. This allows multiple connections to be sent from multiple clients to
the database while using only one underlying network connection. The multithreaded database server
architecture enables connection pooling when clients share connection slots in a pool on the server
side by swapping client connections out when they are idle.

IMPROVED LOAD BALANCING


When using Oracle8i Parallel Server or database replication applications, the multithreaded database
server provides improvements over dedicated servers providing better load balancing at the
dispatcher and node level. It also enables better application-dependent routing, which ensures that a
request from the same application is routed to the same node each time. Therefore, the efficiency of
application data transfer is increased. The multithreaded database server also improves application
failover capability when the connection is dropped in both kinds of applications.

SCALABILITY FOR MULTI-TIER APPLICATION DEVELOPMENT


The multithreaded database server provides the necessary user scalability and performance
enhancements that enable using a three-tier application model with the Oracle® Application Server.
In many cases, the multithreaded database server is the most efficient solution for applications to use
instead of transaction processing (TP) monitors — it does not have some of the performance overhead
associated with TP monitors.

Oracle Multithreaded Database Server: Architecture Overview and Benefits 4


February 1999
KEY PERFORMANCE ENHANCEMENTS

Oracle8i contains the following key performance enhancements and new multithreaded database
server related functionality:

• Asynchronous Network IO

• Major Memory Management Enhancements

• Support For Dynamic Multiple Presentations

• Improved Manageability and Significantly Easier Configuration

• Connection Pooling and Connection Multiplexing

Oracle Multithreaded Database Server: Architecture Overview and Benefits 5


February 1999
Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.

Worldwide Inquiries:
+1.650.506.7000
Fax +1.650.506.7200
http://www.oracle.com/

Copyright © Oracle Corporation 1999


All Rights Reserved

This document is provided for informational purposes only, and


the information herein is subject to change without notice.
Please report any errors herein to Oracle Corporation. Oracle
Corporation does not provide any warranties covering and
specifically disclaims any liability in connection with this
document.

Oracle and SQL*Net are registered trademarks, and Oracle8i and


Net8 are trademarks or registered trademarks of Oracle
Corporation. All other company and product names mentioned
are used for identification purposes only and may be trademarks
of their respective owners.