Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

A new abstraction LocationIdProvider is introduced as a part of this change to generate locationId for a physical execution environment. Here’re few reasons for introducing a new abstraction to generate locationId rather than using processorID as locationId:.

  • LocationId denotes the physical execution environment required to run a stream processor. LocationId is used to uniquely identify a environment amongst all available physical execution environments. ProcessorId is used to uniquely identify a stream processor in a processors group. ProcessorId and localityId are two different, logically orthogonal concepts which cannot be unified.
  • Standalone model supports running multiple stream processors from a single JVM on a physical host. If a stream processor(P1) running a physical host(H) dies, it’s optimal to redistribute the tasks of the dead processor(P1) to the other processors running on the host(H). If processorId is used as localityId, this optimal generation cannot be achieved(since task to localityId association is not maintained).

In case of LinkedIn execution environment, locationId will be a composite key comprised of sliceID and sliceInstanceId. In kubernetes, locationId will be obtained through POD API.

Standalone host affinity




ZK Data Model to support host affinity:

...