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 Streams Processing Language Specification. In the case ofplacement
configs, the rules apply separately for each of the following groups:host
hostColocation
/hostIsolation
/hostExlocation
partitionColocation
/partitionIsolation
/partitionExlocation
placement : hostColocation
config can hide aplacement : hostIsolation
config if they appear at different levels during resolution. But if there is aplacement : hostColocation
config at one level during resolution, and aplacement : partitionColocation
config at another level during resolution, then both apply even though they are at different levels. - absolute host location. The
- where:
- Any operator invocation or composite operator.