Program guide > (deprecated) Partitioning facility > The partitioning facility

Deprecated feature: The partitioning facility (WPF) feature is deprecated. You can configure partitioning with WebSphere eXtreme Scale.

Partitioning objective and benefits

The primary advantage of partitioning is to specifically control resources during cluster member activities. Requests can be routed to a specific application server that has exclusive access to some computing resource, such as a dedicated server process or database server that handles a specific data set. The requests can be an HTTP, enterprise bean, database request, or an update. The endpoint receiving the work is still highly available. Consequently, WPF offers functionality to route work to a particular cluster endpoint. This capability reduces overall system overhead while continuing to offer the safety of rapid failure recovery of each endpoint.

For example, assume that an application is created to track weather system status as new weather systems dynamically occur. In any given evening, many storms are in progress nationally. If the database information is partitioned by a particular storm and a partition for each storm is created, the application server hosting the partition can load the information exclusively. With this exclusivity both the storm experts, who are updating the rapidly changing information, and the clients, who are rendering the storm information, can avoid contention and present the information back to end users.

Clients that need to update the information are routed to one location within the cluster and can update the in-memory copy. The in-memory copy can be persisted without slowing down the consumers of the information or the experts updating the storm status. As the storm passes, it can be persisted to the database and the partition can be removed to make room for a new weather event.

In normal cluster applications, the scenario that is described is not generally possible without extensive application design and implementation. For example, in a common Java™ 2 Platform Enterprise Edition (J2EE) application implementation, each client that requests information about or updates the status of the storm can have requests randomly directed to various cluster members. Each cluster member request can result in the creation of a transaction. To satisfy the request, each read can require the data to load from the database, taking additional time and causing extra database server overhead. This is especially important in the most intensive operation in the cluster, a database update, which locks out the readers of the application data.

Each update requires exclusive access to the storm data, and locks out other readers, depending on the isolation level chosen, across the cluster until the update is complete. In this case, the database also has to track the various requests pending on specific information and arbitrate between them. This activity causes additional database load, and several cluster member requests take longer to complete, reducing the cluster throughput for that applications.

In summary, the intent of partitioning is to direct workload to a given member and reduce the overall cluster overhead for each request. As these individual savings are accrued, all requests for the same application information or operation benefit from lack of contention. The partitioning facility also offers the ability to make each endpoint, a partition, highly available and manageable. The general benefits of cluster failover and recovery are still present with WPF, plus the additional functional capability to reduce resource contention. Reducing the resource contention results in higher overall cluster throughput.

Parent topic:

The partitioning facility

Related concepts

The partitioning facility