41.1.2 Application Multiprocessing Model

OFSAA application multiprocessing is based on the concept of a unit-of-work. A unit-of-work is a set of rows from the database. A single OFSAA process becomes multiple processes by dividing the single process according to distinct sets of rows. Units of work are distributed to worker processes until all processes are completed. To achieve multiple parallel processes, the following options must be configured:

  • Creating a list or lists of units ofwork
  • Defining the number of worker processes to service the units-of-worklists
  • Defining how the worker processes service the unit-of-worklists

The specifics of each option are discussed. The following diagram illustrates the basic multiprocessing principles:

Figure 41-11 Basic Multiprocessing principles


Basic Multiprocessing principles

  1. The main process makes a list of all units of work that must beprocessed.
  2. The main process spawns worker subprocesses. Each worker subprocess is assigned a unitof work by the main process.
  3. When all units of work have been completed, the worker subprocess exits and the mainprocess finishes any clean-up aspects of processing.
  4. During processing the following istrue:
    • Each worker subprocess must form its databaseconnection.
    • A unit of work is processed only by a single workersubprocess.
    • Different units of work are processed at the same time by different workersubprocesses.

If data is not distributed well across physical devices, I/O contention may offset the advantage of parallelism within OFSAA for I/O bound processing. Oracle recommends that users choose dimensions or combinations of dimensions that produce an equal distribution of data records.