IBM Streams 4.2

Setting the default fusion scheme at the instance or domain level

You can specify the default way in which the operators are fused at the domain or instance level. A user can optionally override the default fusion scheme when they submit a job. However, if a user does not specify a fusion scheme when they submit the job, the default value from the domain or instance is used.

About this task

Important: To use the new fusion schemes, you must recompile your applications with IBM® Streams Version 4.2 or later. If you do not recompile your applications, they will run using the default behavior for releases prior to Version 4.2. (The operators will be fused using the legacy scheme.)

The default fusion scheme is specified as a dynamic instance or domain property that takes effect without requiring an instance or domain restart. For IBM Streams Version 4.2, the default fusion scheme is automatic.

You can set the default fusionScheme by running the streamtool setproperty command.

The fusionScheme property determines how operators are fused into processing elements (PEs) at submission time. You can set the fusionScheme property at the following levels:
  • The instance level (instance.fusionScheme)
  • The domain level (domain.fusionScheme)
If you do not specify the fusionScheme property at the instance level, the value from the domain level fusionScheme setting is used.

Valid values for the fusionScheme property are:

automatic
If you specify automatic as your fusion scheme, IBM Streams determines the appropriate number of PEs to assign to the job.
Typically, this fusion scheme results in one PE per resource. However, IBM Streams might change the number of PEs produced to avoid the following situations:
  • Creating PEs that contain a very small number of operators, which can have a negative impact on performance
  • Creating PEs that contain too many operators, which can prevent IBM Streams from effectively balancing workloads by moving PEs between hosts
manual
If you specify manual as your fusion scheme, you can then specify the number of PEs to assign to the job (by specifying a value for the fusionTargetPeCount parameter). The actual number of PEs might vary based on other job configuration constraints, the specifications of the application, and the configuration of the instance where you plan to deploy the application. For example, if you specify a large number of partition ex-location constraints, the resulting application might have more PEs than you expect.
legacy
If you specify legacy as your fusion scheme, the operators are fused the same way they were prior to IBM Streams Version 4.2. Typically, each operator is fused into a separate PE if no other placement config is specified in the application bundle file.
Restriction: Any fusion scheme that you specify is influenced by the fusion constraints that are specified in the application bundle file and by the fusion constraints that are specified when the job is submitted.

Example

If you want to set the fusion scheme to manual, enter the following command:

streamtool setproperty -i myInstance instance.fusionScheme=manual

Note that when an instance's default fusion scheme is set to manual, each application must set fusionTargetPeCount at submission time.