Diffuser works on the principal that data processing can be divided into independent “pieces” of work. These pieces of work are referred to as Intervals and usually represent a range of master or transactional data that needs to be worked upon. This, for example, might be Intervals of Business Partner Numbers, Sales Order Numbers, or Account Numbers. Diffuser ensures that these Intervals of data are processed using multiple processors instead of the traditional sequential approach with one processor.
An interval can be thought of as a range of values that represent X number of master or transaction data objects. It is based on some data domain having a data type and a length. An example interval might be “All Sales Order’s from 1000 through to 2000”. It can then be implied that an interval has a Low value (e.g. 1000) and a High value (e.g. 2000).
If a SAP system has 100,000 Sales Orders, and an ABAP report is required to process all of them, then this range of Sales Orders can be broken down into, for example, 100 intervals, each representing 1000 Sales Orders. The list of 100 intervals might look something like:
The concept of an Interval Object is used to create these Intervals for use by a Diffuser program this is where an object such as a Sales Orders are broken down before the Diffuser program is run. As part of the definition of a Diffuser program, an Interval Object is selected. This refers directly to the type of Intervals the program uses, for example, some Interval Objects that are provided with Diffuser are:
- Sales Order
- Business Partner
- Contract Account
The generation of Interval Objects is detailed in the Setting up a Diffuser program Interval Generation section.
When using Z Accelerators intervals can also be built at runtime. This is programmed into the Diffuser program and is useful where you have complex intervals or need to define the number of intervals down to a smaller size; a subset of materials, for example. This concept is detailed in the Z Accelerators – Advanced Concepts – Dynamic Interval Generation section.
An interval can have the following states: