Hi, Colin,

Thanks for the KIP. A few comments below.

1. Currently, if num.replica.fetchers is configured with a value larger
than 1, a broker will be using multiple fetcher threads to fetch from
another broker. So, there will be multiple concurrent fetch requests from a
given follower broker. Generating the UUID just based on the replica id
probably won't be enough in this case.

2. It's not very clear to me how the follower knows when to include the
skipped partitions again when new data is published to those partitions in
the future.

3. When replica.fetch.response.max.bytes is exceeded, the leader stops
giving data back for the remaining partitions in the fetch response. In
that case, we don't want to skip those partitions with empty data in the
IncrementalFetchRequest since they may actually have data.

4. Similar to #3, if replication throttling is enabled, it's possible for
the leader to give empty data in a partition even though the partition has
new data. In the case, it's not clear if the follower should blindly skip
that partition in the IncrementalFetchRequest.

5. Currently, the leader maintains a _lastCaughtUpTimeMs. If a follower
stops fetching a partition and _lastCaughtUpTimeMs is not updated, the
follower will fall out of ISR. So, will the leader remember all the
partitions in the last full fetch request so that it can keep
updating _lastCaughtUpTimeMs when serving IncrementalFetchRequest?

Jun


On Tue, Nov 21, 2017 at 1:02 PM, Colin McCabe <cmcc...@apache.org> wrote:

> Hi all,
>
> I created a KIP to improve the scalability and latency of FetchRequest:
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-
> 227%3A+Introduce+Incremental+FetchRequests+to+Increase+
> Partition+Scalability
>
> Please take a look.
>
> cheers,
> Colin
>

Reply via email to