ReplicaFetcherThread

ReplicaFetcherThread is an uninterruptible AbstractFetcherThread that…​FIXME

ReplicaFetcherThread is used (managed) by ReplicaFetcherManager.

ReplicaFetcherThread is created when ReplicaFetcherManager is requested to create a fetcher thread (when…​FIXME).

ReplicaFetcherThread uses replica.fetch.backoff.ms configuration property for the fetchBackOffMs.

ReplicaFetcherThread uses replica.fetch.max.bytes configuration property for…​FIXME

Creating ReplicaFetcherThread Instance

ReplicaFetcherThread takes the following to be created:

ReplicaFetcherThread initializes the internal properties.

earliestOrLatestOffset Internal Method

earliestOrLatestOffset(topicPartition: TopicPartition, earliestOrLatest: Long): Long

earliestOrLatestOffset…​FIXME

Note
earliestOrLatestOffset is used when…​FIXME

fetchEpochsFromLeader Method

fetchEpochsFromLeader(partitions: Map[TopicPartition, Int]): Map[TopicPartition, EpochEndOffset]
Note
fetchEpochsFromLeader is a part of AbstractFetcherThread Contract.

fetchEpochsFromLeader…​FIXME

processPartitionData Method

processPartitionData(
  topicPartition: TopicPartition,
  fetchOffset: Long,
  partitionData: FetchData): Option[LogAppendInfo]
Note
processPartitionData is part of the AbstractFetcherThread Contract to…​FIXME.

processPartitionData…​FIXME

truncate Method

truncate(
  tp: TopicPartition,
  offsetTruncationState: OffsetTruncationState): Unit
Note
truncate is a part of AbstractFetcherThread Contract.

truncate…​FIXME

truncateFullyAndStartAt Method

truncateFullyAndStartAt(topicPartition: TopicPartition, offset: Long): Unit
Note
truncateFullyAndStartAt is a part of AbstractFetcherThread Contract.

truncateFullyAndStartAt…​FIXME

latestEpoch Method

latestEpoch(topicPartition: TopicPartition): Option[Int]
Note
latestEpoch is a part of AbstractFetcherThread Contract to get the latest (current) leader epoch for the given TopicPartition.

latestEpoch requests the ReplicaManager for the local partition replica (or throw an exception) for the given TopicPartition and requests the replica for the latest (current) leader epoch.

isOffsetForLeaderEpochSupported Method

isOffsetForLeaderEpochSupported: Boolean
Note
isOffsetForLeaderEpochSupported is part of the AbstractFetcherThread Contract to control whether a OffsetsForLeaderEpochRequest is supported (that was added in Kafka 0.11.0.0).

isOffsetForLeaderEpochSupported simply returns the brokerSupportsLeaderEpochRequest flag.

buildFetch Method

buildFetch(
  partitionMap: Map[TopicPartition, PartitionFetchState]
): ResultWithPartitions[Option[FetchRequest.Builder]]
Note
buildFetch is part of the AbstractFetcherThread Contract to…​FIXME

buildFetch requests the FetchSessionHandler for a new Builder.

For every TopicPartition (in the given partitionMap), buildFetch finds the logStartOffset of the local log (using the ReplicaManager) and adds them as PartitionData to the Builder.

buildFetch requests the Builder to create a FetchRequestData.

In the end, buildFetch creates a FetchRequest.Builder for the local partition replica.

Internal Properties

Name Description

brokerSupportsLeaderEpochRequest

Flag that says whether the inter.broker.protocol.version is 0.11.0-IV2 or above

fetchSessionHandler

FetchSessionHandler (with the logContext and the ID of the source broker)

results matching ""

    No results matching ""