IBM Streams 4.2

Overriding operator properties

When you submit a job, you can optionally override the properties of the operators in your application bundle file. For example, if you plan to fuse a set operators into the same PE, you might need to change the partitionIsolation setting to false for all operators that you plan to fuse into the PE.

Before you begin

To use a submission-time parameter that affects how operators are fused, you must specify a fusion scheme other than legacy. This means that you must recompile your applications with IBM® Streams Version 4.2 or later.

About this task

You can specify the operator properties from the IBM Streams Console, IBM Streams Studio, or the streamtool submitjob command. However, if you use the streamtool submitjob command, you must use a job configuration overlay file to specify these settings. A job configuration overlay file is optional if you use IBM Streams Console or IBM Streams Studio.

To override the properties of an operator, you must specify the following information:
nameSpec
You can specify the name of a single operator or you can specify a group of operators:
  • To override the properties of a single operator, specify the name of an existing operator instance in the application after UDP transformations.
  • To override the properties of a group of operators, use an asterisk (*) as a wildcard character. You can specify 0 or more wildcard characters. For example:
    • Enter myParallelRegion.myOperator[*] to specify all of the channels of the parallel region
    • Enter MyComposite.firstComposite.* to specify all of the operators in the composite operator
    Tip: Wildcard characters can be especially helpful when operators with related concerns are named following a particular pattern. For example, if the application has several FileSink operators that are all used for debugging, including "Debug" in their name allows you to easy control all of their behavior at the same time.
restartable
If you specify true, the operator can be restarted. For example, the operator might need to be restarted after a PE crashes because of a runtime error. If you plan to put this operator in a PE with other operators, this setting must be the same for all of the operators in the PE.

You should also make the operator relocatable to improve the likelihood that the operator can be successfully restarted.

If you specify false, the application will not perform well in a highly available environment.

relocatable
If you specify true, the operator can be relocated. For example, relocating the operator to a different host can help with load balancing or enable recovery in a highly available environment.

If you specify false, the application will not perform well in a highly available environment.

partitionIsolation
Specify true if the operator requires an isolated PE, which means that the operator is the only operator in the PE. No other operators are in the PE.
hostIsolation
Specify true if the operator requires an isolated host, which means that only the PE that contains the specified operator is located on the host. No other PEs are deployed on the host.
declaredHost
If you specify a declared host for the operator, the PE that contains this operator is placed on the specified host at run time.

In addition, if you specify a declared host, the operator cannot uses resources from a host pool and cannot be included in a host pool.

Important: Use this setting with caution. If the host where the operator is deployed is removed or crashes, the operator will stop. If you need your application to be more resilient and you have more than one host where the operator can run, you should include the operator in a host pool.