Database Partitioning Feature (DPF)
The Database Partitioning Feature (DPF) is an optionally licensed component of DB2 UDB v8.2 Enterprise
Server Edition (ESE) for Linux, UNIX, and Windows. The DPF provides the ability to partition a database
within a single server or across a cluster of servers providing scalability that can support very large
databases, complex workloads, and parallelism for database administration tasks.
The basic idea behind the Database Partitioning Feature (DPF) implementation is to take a database that is
simply to large to manage by a single database server process and divide it into smaller more manageable
parts called partitions. A single database can be partitioned into multiple physical partitions (MPP) across a
cluster of servers and/or multiple logical partitions (MLP) within a single server. Each database partition is
managed by a process called a partitioned database server. The partitioned database resides within a
partitioned DB2 instance consisting of one or more partitioned database servers.
The Database Partitioning Feature (DPF) is an implementation of what is generally referred to as a shared
-nothing architecture. Many years ago before the availability of systems with multiple processors, gigabytes
of memory, and storage area networks it was easy to identify a shared-nothing architecture because the
hardware that supported the DPF was not shared. However with servers now available in symmetrical multi
processing (SMP) configuration of 8, 16, 32, and 64 processors with terabytes of memory it is more
common to find the DPF running multiple logical partitions (MLP) configurations. None-the-less the DPF still
implements a shared-nothing architecture simply because each partitioned database server, logical or physical, manages one and only one partition of the database.
The shared nothing architecture of the Database Partitioning Feature (DPF) reduces contention for system
resources and provides near linear scalability by dividing very large databases into smaller part (partitions)
that are individually managed by each partitioned database server. For example, instead of one database
server backing up a terabyte database a cluster of two partitioned database servers can perform the backup
in approximately half the time. Consequently a cluster of four partitioned database servers can perform the
backup in approximately a quarter of the time simply because each partitioned database server is only
responsible for managing a specific portion of the entire database. When a database query is executed on a
partitioned database server, the query is sent from the coordinating node to all other partitioned database
server in the cluster. Each partitioned database server executes the query and returns a subset of data to
the coordinating node which in turn merges and provides the final query result set back to the client.
The Database Partitioning Feature (DPF) provides a great deal of flexibility in terms of how databases can be
partitioned. For example on a single large server with 32 processors and 32 GB of memory, the DPF can
scale-up with eight multiple logical partitions (MLP) to take advantage of both the large number of processors
as well as the large memory. On the other hand, in a blade server environment the DPF can scale-out with
multiple physical partitions (MPP) on an 8 node cluster of 4-way blades. And in a commodity server
environment the DPF can both scale-up with two MLP per 8-way server and scale-out on a cluster of four 8
-way commodity servers. In all three scenarios described above each partitioned database server will run on the same amount of system resources (4 processors and 4 GB of memory).
The Database Partitioned Feature provides for near linear scalability not only for supporting complex work
loads but for almost all aspects of database administration as well. For example, loading data into a non
-partitioned database although performed with some degree of parallelism will eventually bottle neck on the
available system resources. Once the database is partitioned onto two, three, four, or more servers the
workload on each individual server is effectively reduced by fifty percent or more depending on the number of servers in the cluster.
Note: Prior to DB2 UDB v8.1 for Linux, UNIX, and Windows the Database Partitioning Feature (DPF) was not
simply a convenient optional licensed feature. Instead the functionality of the DPF in prior versions was
included in a separate edition of the product called Enterprise Extended Edition (EEE) which required a
licensed upgrade from Enterprise Edition (EE) and a complete re-install of the product to obtain the
functionality now provided by the DPF. Now customers only need to purchase and register the optional DPF license to use this functionality.