IBM Streams 4.3.0

Operator placement config clause

type:
Comma-separated list of subconfigs, which are described separately in the following subsections.
example:
config placement : host("spatha"), partitionIsolation, hostExlocation("E");
description:
There are three groups of subconfigs:
  • absolute host location. The host subconfig specifies the absolute location (pool, IP address, or name) of the host on which the operator instance should run.
  • relative partition constraint. These subconfigs constrain whether operator instances must (partitionColocation ) or must not (partitionExlocation) run in the same partition, or whether they have a partition of their own (partitionIsolation).
  • relative host constraint. These subconfigs constrain whether operator instances must (hostColocation) or must not (hostExlocation) run on the same host, or whether they run in a partition that has a host of their own (hostIsolation).

The user might erroneously specify inconsistent configs, making it impossible to resolve them completely. For example, exlocation can conflict with colocation. In most cases the compiler can detect such conflicts, but in some cases, it cannot, because it might require IP/hostname resolution. When the compiler detects a conflict, it issues a certificate of infeasibility, which is a small subset of constraints that demonstrates the violation in a user-understandable way. Some constraints require the cooperation of both the compiler and the streaming middleware to enforce. This situation occurs when the constraints allow multiple choices, and the streaming middleware relocates certain operator instances dynamically. The colocation, isolation, and exlocation constraints all use strings as identifiers. These strings can be freely chosen by the user, on condition that they are compile-time evaluatable expressions. A common pattern is to use strings that are based on the getThisCompositeInstanceName() intrinsic function.

For rules about config resolution, see the config clause in the IBM® Streams Processing Language Specification. In the case of placement configs, the rules apply separately for each of the following groups:
  • host
  • hostColocation/hostIsolation/hostExlocation
  • partitionColocation/partitionIsolation/partitionExlocation
In other words, a placement : hostColocation config can hide a placement : hostIsolation config if they appear at different levels during resolution. But if there is a placement : hostColocation config at one level during resolution, and a placement : partitionColocation config at another level during resolution, then both apply even though they are at different levels.
where:
Any operator invocation or composite operator.