Package

com.twitter.finatra.kafkastreams.partitioning

internal

Permalink

package internal

Visibility
  1. Public
  2. All

Type Members

  1. case class ClientStateAndHostInfo[ID](id: ID, clientState: ClientState, hostInfo: HostInfo) extends Product with Serializable

    Permalink
  2. class StaticPartitioningKafkaClientSupplierSupplier extends DefaultKafkaClientSupplier

    Permalink
  3. class StaticPartitioningStreamAssignor extends OverridableStreamsPartitionAssignor with Logging

    Permalink
  4. class StaticTaskAssignor[ID] extends TaskAssignor[ID, TaskId] with Logging

    Permalink

    StaticTaskAssignor is a TaskAssignor that statically/deterministically assigns tasks to Kafka Streams instances/shards Deterministic assignments has the following benefits over the dynamic default StickyTaskAssignor: * Since the same active and standby tasks are assigned to the same shards, monitoring and alerting is easier to reason about * PreRestore functionality is easier to implement because we know where the active and standby tasks live * Queryable State is easier to implement since the query client can deterministically know where the active and standby tasks are available to be queried

    StaticTaskAssignor is a TaskAssignor that statically/deterministically assigns tasks to Kafka Streams instances/shards Deterministic assignments has the following benefits over the dynamic default StickyTaskAssignor: * Since the same active and standby tasks are assigned to the same shards, monitoring and alerting is easier to reason about * PreRestore functionality is easier to implement because we know where the active and standby tasks live * Queryable State is easier to implement since the query client can deterministically know where the active and standby tasks are available to be queried

    TODO: Detect zombie shards (e.g. multiple hosts with the same instanceId) TODO: Spread out standby replicas so they fall across multiple instances (currently, when a single instance restarts, all it's tasks go to the same instance containing all it's standby replicas) TODO: Currently the "interleaving" code in StreamPartitionAssignor spreads out active and standby tasks across multiple threads. To speed up active threads, we may want to move all standby processing to it's own thread)...

  5. case class TaskAssignments(activeTasks: ArrayBuffer[TaskId] = ArrayBuffer(), standbyTasks: ArrayBuffer[TaskId] = ArrayBuffer(), standbyPreRestoreTasks: ArrayBuffer[TaskId] = ArrayBuffer()) extends Product with Serializable

    Permalink

Value Members

  1. object StaticPartitioningStreamAssignor

    Permalink

Ungrouped