Also, can we provide more details on how the Partition Metadata file will
be used?

Ismael

On Thu, Sep 24, 2020 at 3:01 AM Ismael Juma <ism...@juma.me.uk> wrote:

> Hi Justine,
>
> I think we need to update the "Rejected Alternatives" section to take into
> account that the proposal now removes the topic name from the fetch
> request. Also, if we are removing it from the Fetch request, does it make
> sense not to remove it from similar requests like ListOffsetRequest?
>
> Ismael
>
> On Thu, Sep 24, 2020 at 2:46 AM David Jacot <dja...@confluent.io> wrote:
>
>> Hi Justine,
>>
>> Thanks for the KIP. I finally had time to read it :). It is a great
>> improvement.
>>
>> I have a few comments/questions:
>>
>> 1. It seems that the schema of the StopReplicaRequest is slightly
>> outdated.
>> We
>> did some changes as part of KIP-570. V3 is already organized by topics.
>>
>> 2. I just want to make sure that I understand the reconciliation
>> logic correctly. When
>> an "INCREMENTAL" LeaderAndIsr Request is received, the broker will also
>> reconcile
>> when the local uuid does not match the uuid in the request, right? In this
>> case, the
>> local log is staged for deletion.
>>
>> 3. In the documentation of the `delete.stale.topic.delay.ms` config, it
>> says "When a
>> FULL LeaderAndIsrRequest is received..." but I suppose it applies to both
>> types.
>>
>> Best,
>> David
>>
>> On Thu, Sep 24, 2020 at 1:40 AM Justine Olshan <jols...@confluent.io>
>> wrote:
>>
>> > Hi Jun,
>> >
>> > Thanks for the comments. I apologize for some of the typos and
>> confusion.
>> > I’ve updated the KIP to fix some of the issues you mentioned.
>> >
>> > 20.2 I’ve changed the type to String.
>> > 20.1/3 I’ve updated the TopicZNode to fix formatting and reflect the
>> latest
>> > version before this change.
>> >
>> > 21. You are correct and I’ve removed this line. I’ve also added a line
>> > mentioning an IBP bump is necessary for migration
>> >
>> > 22. I think the wording was unclear but your summary is what was
>> intended
>> > by this line. I’ve updated to make this point more clear. “Remove
>> deleted
>> > topics from replicas by sending StopReplicaRequest V3 before the IBP
>> bump
>> > using the old logic, and using V4 and the new logic with topic IDs after
>> > the IBP bump.”
>> >
>> > 23. I’ve removed the unspecified type from the KIP and mention that IBP
>> > will be used to handle this request. “IBP will be used to determine
>> whether
>> > this new form of the request will be used. For older requests, we will
>> > ignore this field and default to previous behavior.”
>> >
>> > 24. I’ve fixed this typo.
>> >
>> > 25. I've added a topics at a higher level for LeaderAndIsrResponse v5,
>> > StopReplicaResponse v4. I've also changed StopReplicaRequest v4 to have
>> > topics at a higher level.
>> >
>> > 26. I’ve updated forgotten_topics_data--added the topic ID and removed
>> the
>> > topic name
>> >
>> > 27. I’ve decided on plain text, and I’ve added an example.
>> >
>> > 28. I’ve added this idea to future work.
>> >
>> > Thanks again for taking a look,
>> >
>> > Justine
>> >
>> > On Wed, Sep 23, 2020 at 10:28 AM Jun Rao <j...@confluent.io> wrote:
>> >
>> > > Hi, Justine,
>> > >
>> > > Thanks for the response. Made another pass. A few more comments below.
>> > >
>> > > 20. znode schema:
>> > > 20.1 It seems that {"name": "version", "type": "int", "id": "UUID",
>> > "doc":
>> > > "version id"} should be {"name": "version", "type": "int"}, {"name":
>> > "id",
>> > > "type": "UUID", "doc": "version id"}.
>> > > 20.2 The znode format is JSON which doesn't have UUID type. So the
>> type
>> > > probably should be string?
>> > > 20.3 Also, the existing format used seems outdated. It should have the
>> > > following format.
>> > >     Json.encodeAsBytes(Map(
>> > >       "version" -> 2,
>> > >       "partitions" -> replicaAssignmentJson.asJava,
>> > >       "adding_replicas" -> addingReplicasAssignmentJson.asJava,
>> > >       "removing_replicas" -> removingReplicasAssignmentJson.asJava
>> > >     ).asJava)
>> > >   }
>> > >
>> > > 21. Migration: The KIP says "The migration process can take place
>> without
>> > > an inter-broker protocol bump, as the format stored in
>> > > /brokers/topics/[topic] will be compatible with older broker
>> versions."
>> > > However, since we are bumping up the version of inter-broker
>> requests, it
>> > > seems that we need to use IBP for migration.
>> > >
>> > > 22. The KIP says "Remove deleted topics from replicas by sending
>> > > StopReplicaRequest V3 for any topics which do not contain a topic ID,
>> and
>> > > V4 for any topics which do contain a topic ID.". However, if we use
>> IBP,
>> > it
>> > > seems that the controller will either send StopReplicaRequest V3
>> > > or StopReplicaRequest V4, but never mixed V3 and V4 for different
>> topics.
>> > > Basically, before the IBP bump, V3 will be used. After the IBP bump,
>> > > topicId will be created and V4 will be used.
>> > >
>> > > 23. Given that we depend on IBP, do we still need "0 UNSPECIFIED"
>> > > in LeaderAndIsr?
>> > >
>> > > 24. LeaderAndIsrResponse v5 : It still has the topic field.
>> > >
>> > > 25. LeaderAndIsrResponse v5, StopReplicaResponse v4: Could we use this
>> > > opportunity to organize the response in 2 levels, first by topic,
>> then by
>> > > partition, as most other requests/responses?
>> > >
>> > > 26. FetchRequest v13 : Should forgotten_topics_data use topicId too?
>> > >
>> > > 27. "This file can either be plain text (key/value pairs) or JSON."
>> Have
>> > we
>> > > decided which one to use? Also, it would be helpful to provide an
>> > example.
>> > >
>> > > 28. Future improvement: Another future improvement opportunity is to
>> use
>> > > topicId in GroupMetadataManager.offsetCommitKey in the offset_commit
>> > topic.
>> > > This may save some space.
>> > >
>> > > Thanks,
>> > >
>> > > Jun
>> > >
>> > > On Wed, Sep 23, 2020 at 8:50 AM Justine Olshan <jols...@confluent.io>
>> > > wrote:
>> > >
>> > > > Hi Tom,
>> > > >
>> > > > Thanks for the comment. I think this is a really good idea and it
>> has
>> > > been
>> > > > added to the KIP under the newly added tooling section.
>> > > >
>> > > > Thanks again,
>> > > > Justine
>> > > >
>> > > > On Wed, Sep 23, 2020 at 3:17 AM Tom Bentley <tbent...@redhat.com>
>> > wrote:
>> > > >
>> > > > > Hi Justine,
>> > > > >
>> > > > > I know you started the vote thread, but on re-reading the KIP I
>> > noticed
>> > > > > that although the topic id is included in the MetadataResponse
>> it's
>> > not
>> > > > > surfaced in the output from `kafka-topics.sh --describe`. Maybe
>> that
>> > > was
>> > > > > intentional because ids are intentionally not really something the
>> > user
>> > > > > should care deeply about, but it would also make life harder for
>> > anyone
>> > > > > debugging Kafka and this would likely get worse the more topic ids
>> > got
>> > > > > rolled out across the protocols, clients etc. It seems likely that
>> > > > > `kafka-topics.sh` will eventually need the ability to show the id
>> of
>> > a
>> > > > > topic and perhaps find a topic name given an id. Is there any
>> reason
>> > > not
>> > > > to
>> > > > > implement that in this KIP?
>> > > > >
>> > > > > Many thanks,
>> > > > >
>> > > > > Tom
>> > > > >
>> > > > > On Mon, Sep 21, 2020 at 9:54 PM Justine Olshan <
>> jols...@confluent.io
>> > >
>> > > > > wrote:
>> > > > >
>> > > > > > Hi all,
>> > > > > >
>> > > > > > After thinking about it, I've decided to remove the topic name
>> from
>> > > the
>> > > > > > Fetch Request and Response after all. Since there are so many of
>> > > these
>> > > > > > requests per second, it is worth removing the extra information.
>> > I've
>> > > > > > updated the KIP to reflect this change.
>> > > > > >
>> > > > > > Please let me know if there is anything else we should discuss
>> > before
>> > > > > > voting.
>> > > > > >
>> > > > > > Thank you,
>> > > > > > Justine
>> > > > > >
>> > > > > > On Fri, Sep 18, 2020 at 9:46 AM Justine Olshan <
>> > jols...@confluent.io
>> > > >
>> > > > > > wrote:
>> > > > > >
>> > > > > > > Hi Jun,
>> > > > > > >
>> > > > > > > I see what you are saying. For now we can remove the extra
>> > > > information.
>> > > > > > > I'll leave the option to add more fields to the file in the
>> > future.
>> > > > The
>> > > > > > KIP
>> > > > > > > has been updated to reflect this change.
>> > > > > > >
>> > > > > > > Thanks,
>> > > > > > > Justine
>> > > > > > >
>> > > > > > > On Fri, Sep 18, 2020 at 8:46 AM Jun Rao <j...@confluent.io>
>> > wrote:
>> > > > > > >
>> > > > > > >> Hi, Justine,
>> > > > > > >>
>> > > > > > >> Thanks for the reply.
>> > > > > > >>
>> > > > > > >> 13. If the log directory is the source of truth, it means
>> that
>> > the
>> > > > > > >> redundant info in the metadata file will be ignored. Then the
>> > > > question
>> > > > > > is
>> > > > > > >> why do we need to put the redundant info in the metadata file
>> > now?
>> > > > > > >>
>> > > > > > >> Thanks,
>> > > > > > >>
>> > > > > > >> Jun
>> > > > > > >>
>> > > > > > >> On Thu, Sep 17, 2020 at 5:07 PM Justine Olshan <
>> > > > jols...@confluent.io>
>> > > > > > >> wrote:
>> > > > > > >>
>> > > > > > >> > Hi Jun,
>> > > > > > >> > Thanks for the quick response!
>> > > > > > >> >
>> > > > > > >> > 12. I've decided to bump up the versions on the requests
>> and
>> > > > updated
>> > > > > > the
>> > > > > > >> > KIP. I think it's good we thoroughly discussed the options
>> > here,
>> > > > so
>> > > > > we
>> > > > > > >> know
>> > > > > > >> > we made a good choice. :)
>> > > > > > >> >
>> > > > > > >> > 13. This is an interesting situation. I think if this does
>> > occur
>> > > > we
>> > > > > > >> should
>> > > > > > >> > give a warning. I agree that it's hard to know the source
>> of
>> > > truth
>> > > > > for
>> > > > > > >> sure
>> > > > > > >> > since the directory or the file could be manually
>> modified. I
>> > > > guess
>> > > > > > the
>> > > > > > >> > directory could be used as the source of truth. To be
>> honest,
>> > > I'm
>> > > > > not
>> > > > > > >> > really sure what happens in kafka when the log directory is
>> > > > renamed
>> > > > > > >> > manually in such a way. I'm also wondering if the
>> situation is
>> > > > > > >> recoverable
>> > > > > > >> > in this scenario.
>> > > > > > >> >
>> > > > > > >> > Thanks,
>> > > > > > >> > Justine
>> > > > > > >> >
>> > > > > > >> > On Thu, Sep 17, 2020 at 4:28 PM Jun Rao <j...@confluent.io>
>> > > wrote:
>> > > > > > >> >
>> > > > > > >> > > Hi, Justine,
>> > > > > > >> > >
>> > > > > > >> > > Thanks for the reply.
>> > > > > > >> > >
>> > > > > > >> > > 12. I don't have a strong preference either. However, if
>> we
>> > > need
>> > > > > IBP
>> > > > > > >> > > anyway, maybe it's easier to just bump up the version for
>> > all
>> > > > > inter
>> > > > > > >> > broker
>> > > > > > >> > > requests and add the topic id field as a regular field. A
>> > > > regular
>> > > > > > >> field
>> > > > > > >> > is
>> > > > > > >> > > a bit more concise in wire transfer than a flexible
>> field.
>> > > > > > >> > >
>> > > > > > >> > > 13. The confusion that I was referring to is between the
>> > topic
>> > > > > name
>> > > > > > >> and
>> > > > > > >> > > partition number between the log dir and the metadata
>> file.
>> > > For
>> > > > > > >> example,
>> > > > > > >> > if
>> > > > > > >> > > the log dir is topicA-1 and the metadata file in it has
>> > topicB
>> > > > and
>> > > > > > >> > > partition 0 (say due to a bug or manual modification),
>> which
>> > > one
>> > > > > do
>> > > > > > we
>> > > > > > >> > use
>> > > > > > >> > > as the source of truth?
>> > > > > > >> > >
>> > > > > > >> > > Jun
>> > > > > > >> > >
>> > > > > > >> > > On Thu, Sep 17, 2020 at 3:43 PM Justine Olshan <
>> > > > > > jols...@confluent.io>
>> > > > > > >> > > wrote:
>> > > > > > >> > >
>> > > > > > >> > > > Hi Jun,
>> > > > > > >> > > > Thanks for the comments.
>> > > > > > >> > > >
>> > > > > > >> > > > 12. I bumped the LeaderAndIsrRequest because I removed
>> the
>> > > > topic
>> > > > > > >> name
>> > > > > > >> > > field
>> > > > > > >> > > > in the response. It may be possible to avoid bumping
>> the
>> > > > version
>> > > > > > >> > without
>> > > > > > >> > > > that change, but I may be missing something.
>> > > > > > >> > > > I believe StopReplica is actually on version 3 now, but
>> > > > because
>> > > > > > >> > version 2
>> > > > > > >> > > > is flexible, I kept that listed as version 2 on the KIP
>> > > page.
>> > > > > > >> However,
>> > > > > > >> > > you
>> > > > > > >> > > > may be right in that we may need to bump the version on
>> > > > > > StopReplica
>> > > > > > >> to
>> > > > > > >> > > deal
>> > > > > > >> > > > with deletion differently as mentioned above. I don't
>> know
>> > > if
>> > > > I
>> > > > > > >> have a
>> > > > > > >> > > big
>> > > > > > >> > > > preference over used tagged fields or not.
>> > > > > > >> > > >
>> > > > > > >> > > > 13. I was thinking that in the case where the file and
>> the
>> > > > > request
>> > > > > > >> > topic
>> > > > > > >> > > > ids don't match, it means that the broker's topic/the
>> one
>> > in
>> > > > the
>> > > > > > >> file
>> > > > > > >> > has
>> > > > > > >> > > > been deleted. In that case, we would need to delete the
>> > old
>> > > > > topic
>> > > > > > >> and
>> > > > > > >> > > start
>> > > > > > >> > > > receiving the new version. If the topic name were to
>> > change,
>> > > > but
>> > > > > > the
>> > > > > > >> > ids
>> > > > > > >> > > > still matched, the file would also need to update. Am I
>> > > > missing
>> > > > > a
>> > > > > > >> case
>> > > > > > >> > > > where the file would be correct and not the request?
>> > > > > > >> > > >
>> > > > > > >> > > > Thanks,
>> > > > > > >> > > > Justine
>> > > > > > >> > > >
>> > > > > > >> > > > On Thu, Sep 17, 2020 at 3:18 PM Jun Rao <
>> j...@confluent.io
>> > >
>> > > > > wrote:
>> > > > > > >> > > >
>> > > > > > >> > > > > Hi, Justine,
>> > > > > > >> > > > >
>> > > > > > >> > > > > Thanks for the reply. A couple of more comments
>> below.
>> > > > > > >> > > > >
>> > > > > > >> > > > > 12. ListOffset and OffsetForLeader currently don't
>> > support
>> > > > > > >> flexible
>> > > > > > >> > > > fields.
>> > > > > > >> > > > > So, we have to bump up the version number and use
>> IBP at
>> > > > least
>> > > > > > for
>> > > > > > >> > > these
>> > > > > > >> > > > > two requests. Note that it seems 2.7.0 will require
>> IBP
>> > > > anyway
>> > > > > > >> > because
>> > > > > > >> > > of
>> > > > > > >> > > > > changes in KAFKA-10435. Also, it seems that the
>> version
>> > > for
>> > > > > > >> > > > > LeaderAndIsrRequest and StopReplica are bumped even
>> > though
>> > > > we
>> > > > > > only
>> > > > > > >> > > added
>> > > > > > >> > > > a
>> > > > > > >> > > > > tagged field. But since IBP is needed anyway, we may
>> > want
>> > > to
>> > > > > > >> revisit
>> > > > > > >> > > the
>> > > > > > >> > > > > overall tagged field choice.
>> > > > > > >> > > > >
>> > > > > > >> > > > > 13. The only downside is the potential confusion on
>> > which
>> > > > one
>> > > > > is
>> > > > > > >> the
>> > > > > > >> > > > source
>> > > > > > >> > > > > of truth if they don't match. Another option is to
>> > include
>> > > > > those
>> > > > > > >> > fields
>> > > > > > >> > > > in
>> > > > > > >> > > > > the metadata file when we actually change the
>> directory
>> > > > > > structure.
>> > > > > > >> > > > >
>> > > > > > >> > > > > Thanks,
>> > > > > > >> > > > >
>> > > > > > >> > > > > Jun
>> > > > > > >> > > > >
>> > > > > > >> > > > > On Thu, Sep 17, 2020 at 2:01 PM Justine Olshan <
>> > > > > > >> jols...@confluent.io
>> > > > > > >> > >
>> > > > > > >> > > > > wrote:
>> > > > > > >> > > > >
>> > > > > > >> > > > > > Hello all,
>> > > > > > >> > > > > >
>> > > > > > >> > > > > > I've thought some more about removing the topic
>> name
>> > > field
>> > > > > > from
>> > > > > > >> > some
>> > > > > > >> > > of
>> > > > > > >> > > > > the
>> > > > > > >> > > > > > requests. On closer inspection of the
>> > > requests/responses,
>> > > > it
>> > > > > > >> seems
>> > > > > > >> > > that
>> > > > > > >> > > > > the
>> > > > > > >> > > > > > internal changes would be much larger than I
>> expected.
>> > > > Some
>> > > > > > >> > protocols
>> > > > > > >> > > > > > involve clients, so they would require changes too.
>> > I'm
>> > > > > > thinking
>> > > > > > >> > that
>> > > > > > >> > > > for
>> > > > > > >> > > > > > now, removing the topic name from these requests
>> and
>> > > > > responses
>> > > > > > >> are
>> > > > > > >> > > out
>> > > > > > >> > > > of
>> > > > > > >> > > > > > scope.
>> > > > > > >> > > > > >
>> > > > > > >> > > > > > I have decided to just keep the change
>> > > > LeaderAndIsrResponse
>> > > > > to
>> > > > > > >> > remove
>> > > > > > >> > > > the
>> > > > > > >> > > > > > topic name, and have updated the KIP to reflect
>> this
>> > > > > change. I
>> > > > > > >> have
>> > > > > > >> > > > also
>> > > > > > >> > > > > > mentioned the other requests and responses in
>> future
>> > > work.
>> > > > > > >> > > > > >
>> > > > > > >> > > > > > I'm hoping to start the voting process soon, so
>> let me
>> > > > know
>> > > > > if
>> > > > > > >> > there
>> > > > > > >> > > is
>> > > > > > >> > > > > > anything else we should discuss.
>> > > > > > >> > > > > >
>> > > > > > >> > > > > > Thank you,
>> > > > > > >> > > > > > Justine
>> > > > > > >> > > > > >
>> > > > > > >> > > > > > On Tue, Sep 15, 2020 at 3:57 PM Justine Olshan <
>> > > > > > >> > jols...@confluent.io
>> > > > > > >> > > >
>> > > > > > >> > > > > > wrote:
>> > > > > > >> > > > > >
>> > > > > > >> > > > > > > Hello again,
>> > > > > > >> > > > > > > To follow up on some of the other comments:
>> > > > > > >> > > > > > >
>> > > > > > >> > > > > > > 10/11) We can remove the topic name from these
>> > > > > > >> > requests/responses,
>> > > > > > >> > > > and
>> > > > > > >> > > > > > > that means we will just have to make a few
>> internal
>> > > > > changes
>> > > > > > to
>> > > > > > >> > make
>> > > > > > >> > > > > > > partitions accessible by topic id and partition.
>> I
>> > can
>> > > > > > update
>> > > > > > >> the
>> > > > > > >> > > KIP
>> > > > > > >> > > > > to
>> > > > > > >> > > > > > > remove them unless anyone thinks they should
>> stay.
>> > > > > > >> > > > > > >
>> > > > > > >> > > > > > > 12) Addressed in the previous email. I've updated
>> > the
>> > > > KIP
>> > > > > to
>> > > > > > >> > > include
>> > > > > > >> > > > > > > tagged fields for the requests and responses.
>> (More
>> > on
>> > > > > that
>> > > > > > >> > below)
>> > > > > > >> > > > > > >
>> > > > > > >> > > > > > > 13) I think part of the idea for including this
>> > > > > information
>> > > > > > >> is to
>> > > > > > >> > > > > prepare
>> > > > > > >> > > > > > > for future changes. Perhaps the directory
>> structure
>> > > > might
>> > > > > > >> change
>> > > > > > >> > > from
>> > > > > > >> > > > > > > topicName_partitionNumber to something like
>> > > > > > >> > > topicID_partitionNumber.
>> > > > > > >> > > > > Then
>> > > > > > >> > > > > > > it would be useful to have the topic name in the
>> > file
>> > > > > since
>> > > > > > it
>> > > > > > >> > > would
>> > > > > > >> > > > > not
>> > > > > > >> > > > > > be
>> > > > > > >> > > > > > > in the directory structure. Supporting topic
>> renames
>> > > > might
>> > > > > > be
>> > > > > > >> > > easier
>> > > > > > >> > > > if
>> > > > > > >> > > > > > the
>> > > > > > >> > > > > > > other fields are included. Would there be any
>> > > downsides
>> > > > to
>> > > > > > >> > > including
>> > > > > > >> > > > > this
>> > > > > > >> > > > > > > information?
>> > > > > > >> > > > > > >
>> > > > > > >> > > > > > > 14)  Yes, we would need to copy the partition
>> > metadata
>> > > > > file
>> > > > > > in
>> > > > > > >> > this
>> > > > > > >> > > > > > > process. I've updated the KIP to include this.
>> > > > > > >> > > > > > >
>> > > > > > >> > > > > > > 15) I believe Lucas meant v1 and v2 here. He was
>> > > > referring
>> > > > > > to
>> > > > > > >> how
>> > > > > > >> > > the
>> > > > > > >> > > > > > > requests would fall under different IBP and meant
>> > that
>> > > > > older
>> > > > > > >> > > brokers
>> > > > > > >> > > > > > would
>> > > > > > >> > > > > > > have to use the older version of the request and
>> the
>> > > > > > existing
>> > > > > > >> > topic
>> > > > > > >> > > > > > > deletion process. At first, it seemed like tagged
>> > > fields
>> > > > > > would
>> > > > > > >> > > > resolve
>> > > > > > >> > > > > > > the IBP issue. However, we may need IBP for this
>> > > request
>> > > > > > after
>> > > > > > >> > all
>> > > > > > >> > > > > since
>> > > > > > >> > > > > > > the controller handles the topic deletion
>> > differently
>> > > > > > >> depending
>> > > > > > >> > on
>> > > > > > >> > > > the
>> > > > > > >> > > > > > IBP
>> > > > > > >> > > > > > > version. In an older version, we can't just send
>> a
>> > > > > > StopReplica
>> > > > > > >> > > delete
>> > > > > > >> > > > > the
>> > > > > > >> > > > > > > topic immediately like we'd want to for this KIP.
>> > > > > > >> > > > > > >
>> > > > > > >> > > > > > > This makes me wonder if we want tagged fields on
>> all
>> > > the
>> > > > > > >> requests
>> > > > > > >> > > > after
>> > > > > > >> > > > > > > all. Let me know your thoughts!
>> > > > > > >> > > > > > >
>> > > > > > >> > > > > > > Justine
>> > > > > > >> > > > > > >
>> > > > > > >> > > > > > > On Tue, Sep 15, 2020 at 1:03 PM Justine Olshan <
>> > > > > > >> > > jols...@confluent.io
>> > > > > > >> > > > >
>> > > > > > >> > > > > > > wrote:
>> > > > > > >> > > > > > >
>> > > > > > >> > > > > > >> Hi all,
>> > > > > > >> > > > > > >> Jun brought up a good point in his last email
>> about
>> > > > > tagged
>> > > > > > >> > fields,
>> > > > > > >> > > > and
>> > > > > > >> > > > > > >> I've updated the KIP to reflect that the
>> changes to
>> > > > > > requests
>> > > > > > >> and
>> > > > > > >> > > > > > responses
>> > > > > > >> > > > > > >> will be in the form of tagged fields to avoid
>> > > changing
>> > > > > IBP.
>> > > > > > >> > > > > > >>
>> > > > > > >> > > > > > >> Jun: I plan on sending a followup email to
>> address
>> > > some
>> > > > > of
>> > > > > > >> the
>> > > > > > >> > > other
>> > > > > > >> > > > > > >> points.
>> > > > > > >> > > > > > >>
>> > > > > > >> > > > > > >> Thanks,
>> > > > > > >> > > > > > >> Justine
>> > > > > > >> > > > > > >>
>> > > > > > >> > > > > > >> On Mon, Sep 14, 2020 at 4:25 PM Jun Rao <
>> > > > > j...@confluent.io>
>> > > > > > >> > wrote:
>> > > > > > >> > > > > > >>
>> > > > > > >> > > > > > >>> Hi, Justine,
>> > > > > > >> > > > > > >>>
>> > > > > > >> > > > > > >>> Thanks for the updated KIP. A few comments
>> below.
>> > > > > > >> > > > > > >>>
>> > > > > > >> > > > > > >>> 10. LeaderAndIsr Response: Do we need the topic
>> > > name?
>> > > > > > >> > > > > > >>>
>> > > > > > >> > > > > > >>> 11. For the changed request/response, other
>> than
>> > > > > > >> LeaderAndIsr,
>> > > > > > >> > > > > > >>> UpdateMetadata, Metadata, do we need to include
>> > the
>> > > > > topic
>> > > > > > >> name?
>> > > > > > >> > > > > > >>>
>> > > > > > >> > > > > > >>> 12. It seems that upgrades don't require IBP.
>> Does
>> > > > that
>> > > > > > mean
>> > > > > > >> > the
>> > > > > > >> > > > new
>> > > > > > >> > > > > > >>> fields
>> > > > > > >> > > > > > >>> in all the request/response are added as tagged
>> > > fields
>> > > > > > >> without
>> > > > > > >> > > > > bumping
>> > > > > > >> > > > > > up
>> > > > > > >> > > > > > >>> the request version? It would be useful to make
>> > that
>> > > > > > clear.
>> > > > > > >> > > > > > >>>
>> > > > > > >> > > > > > >>> 13. Partition Metadata file: Do we need to
>> include
>> > > the
>> > > > > > topic
>> > > > > > >> > name
>> > > > > > >> > > > and
>> > > > > > >> > > > > > the
>> > > > > > >> > > > > > >>> partition id since they are implied in the
>> > directory
>> > > > > name?
>> > > > > > >> > > > > > >>>
>> > > > > > >> > > > > > >>> 14. In the JBOD mode, we support moving a
>> > > partition's
>> > > > > data
>> > > > > > >> from
>> > > > > > >> > > one
>> > > > > > >> > > > > > disk
>> > > > > > >> > > > > > >>> to
>> > > > > > >> > > > > > >>> another. Will the new partition metadata file
>> be
>> > > > copied
>> > > > > > >> during
>> > > > > > >> > > that
>> > > > > > >> > > > > > >>> process?
>> > > > > > >> > > > > > >>>
>> > > > > > >> > > > > > >>> 15. The KIP says "Remove deleted topics from
>> > > replicas
>> > > > by
>> > > > > > >> > sending
>> > > > > > >> > > > > > >>> StopReplicaRequest V2 for any topics which do
>> not
>> > > > > contain
>> > > > > > a
>> > > > > > >> > topic
>> > > > > > >> > > > ID,
>> > > > > > >> > > > > > and
>> > > > > > >> > > > > > >>> V3 for any topics which do contain a topic
>> ID.".
>> > > > > However,
>> > > > > > it
>> > > > > > >> > > seems
>> > > > > > >> > > > > the
>> > > > > > >> > > > > > >>> updated controller will create all missing
>> topic
>> > IDs
>> > > > > first
>> > > > > > >> > before
>> > > > > > >> > > > > doing
>> > > > > > >> > > > > > >>> other actions. So, is StopReplicaRequest V2
>> > needed?
>> > > > > > >> > > > > > >>>
>> > > > > > >> > > > > > >>> Jun
>> > > > > > >> > > > > > >>>
>> > > > > > >> > > > > > >>> On Fri, Sep 11, 2020 at 10:31 AM John Roesler <
>> > > > > > >> > > vvcep...@apache.org
>> > > > > > >> > > > >
>> > > > > > >> > > > > > >>> wrote:
>> > > > > > >> > > > > > >>>
>> > > > > > >> > > > > > >>> > Thanks, Justine!
>> > > > > > >> > > > > > >>> >
>> > > > > > >> > > > > > >>> > Your response seems compelling to me.
>> > > > > > >> > > > > > >>> >
>> > > > > > >> > > > > > >>> > -John
>> > > > > > >> > > > > > >>> >
>> > > > > > >> > > > > > >>> > On Fri, 2020-09-11 at 10:17 -0700, Justine
>> > Olshan
>> > > > > wrote:
>> > > > > > >> > > > > > >>> > > Hello all,
>> > > > > > >> > > > > > >>> > > Thanks for continuing the discussion! I
>> have a
>> > > few
>> > > > > > >> > responses
>> > > > > > >> > > to
>> > > > > > >> > > > > > your
>> > > > > > >> > > > > > >>> > points.
>> > > > > > >> > > > > > >>> > >
>> > > > > > >> > > > > > >>> > > Tom: You are correct in that this KIP has
>> not
>> > > > > > mentioned
>> > > > > > >> the
>> > > > > > >> > > > > > >>> > > DeleteTopicsRequest. I think that this
>> would
>> > be
>> > > > out
>> > > > > of
>> > > > > > >> > scope
>> > > > > > >> > > > for
>> > > > > > >> > > > > > >>> now, but
>> > > > > > >> > > > > > >>> > > may be something worth adding in the
>> future.
>> > > > > > >> > > > > > >>> > >
>> > > > > > >> > > > > > >>> > > John: We did consider sequence ids, but
>> there
>> > > are
>> > > > a
>> > > > > > few
>> > > > > > >> > > reasons
>> > > > > > >> > > > > to
>> > > > > > >> > > > > > >>> favor
>> > > > > > >> > > > > > >>> > > UUIDs. There are several cases where topics
>> > from
>> > > > > > >> different
>> > > > > > >> > > > > clusters
>> > > > > > >> > > > > > >>> may
>> > > > > > >> > > > > > >>> > > interact now and in the future. For
>> example,
>> > > > Mirror
>> > > > > > >> Maker 2
>> > > > > > >> > > may
>> > > > > > >> > > > > > >>> benefit
>> > > > > > >> > > > > > >>> > > from being able to detect when a cluster
>> being
>> > > > > > mirrored
>> > > > > > >> is
>> > > > > > >> > > > > deleted
>> > > > > > >> > > > > > >>> and
>> > > > > > >> > > > > > >>> > > recreated and globally unique identifiers
>> > would
>> > > > make
>> > > > > > >> > > resolving
>> > > > > > >> > > > > > issues
>> > > > > > >> > > > > > >>> > > easier than sequence IDs which may collide
>> > > between
>> > > > > > >> > clusters.
>> > > > > > >> > > > > > KIP-405
>> > > > > > >> > > > > > >>> > > (tiered storage) will also benefit from
>> > globally
>> > > > > > unique
>> > > > > > >> IDs
>> > > > > > >> > > as
>> > > > > > >> > > > > > shared
>> > > > > > >> > > > > > >>> > > buckets may be used between clusters.
>> > > > > > >> > > > > > >>> > >
>> > > > > > >> > > > > > >>> > > Globally unique IDs would also make
>> > > functionality
>> > > > > like
>> > > > > > >> > moving
>> > > > > > >> > > > > > topics
>> > > > > > >> > > > > > >>> > > between disparate clusters easier in the
>> > future,
>> > > > > > >> simplify
>> > > > > > >> > any
>> > > > > > >> > > > > > future
>> > > > > > >> > > > > > >>> > > implementations of backups and restores,
>> and
>> > > more.
>> > > > > In
>> > > > > > >> > > general,
>> > > > > > >> > > > > > >>> unique IDs
>> > > > > > >> > > > > > >>> > > would ensure that the source cluster
>> topics do
>> > > not
>> > > > > > >> conflict
>> > > > > > >> > > > with
>> > > > > > >> > > > > > the
>> > > > > > >> > > > > > >>> > > destination cluster topics.
>> > > > > > >> > > > > > >>> > >
>> > > > > > >> > > > > > >>> > > If we were to use sequence ids, we would
>> need
>> > > > > > >> sufficiently
>> > > > > > >> > > > large
>> > > > > > >> > > > > > >>> cluster
>> > > > > > >> > > > > > >>> > > ids to be stored with the topic
>> identifiers or
>> > > we
>> > > > > run
>> > > > > > >> the
>> > > > > > >> > > risk
>> > > > > > >> > > > of
>> > > > > > >> > > > > > >>> > > collisions. This will give up any
>> advantage in
>> > > > > > >> compactness
>> > > > > > >> > > that
>> > > > > > >> > > > > > >>> sequence
>> > > > > > >> > > > > > >>> > > numbers may bring. Given these advantages I
>> > > think
>> > > > it
>> > > > > > >> makes
>> > > > > > >> > > > sense
>> > > > > > >> > > > > to
>> > > > > > >> > > > > > >>> use
>> > > > > > >> > > > > > >>> > > UUIDs.
>> > > > > > >> > > > > > >>> > >
>> > > > > > >> > > > > > >>> > > Gokul: This is an interesting idea, but
>> this
>> > is
>> > > a
>> > > > > > >> breaking
>> > > > > > >> > > > > change.
>> > > > > > >> > > > > > >>> Out of
>> > > > > > >> > > > > > >>> > > scope for now, but maybe worth discussing
>> in
>> > the
>> > > > > > future.
>> > > > > > >> > > > > > >>> > >
>> > > > > > >> > > > > > >>> > > Hope this explains some of the decisions,
>> > > > > > >> > > > > > >>> > >
>> > > > > > >> > > > > > >>> > > Justine
>> > > > > > >> > > > > > >>> > >
>> > > > > > >> > > > > > >>> > >
>> > > > > > >> > > > > > >>> > >
>> > > > > > >> > > > > > >>> > > On Fri, Sep 11, 2020 at 8:27 AM Gokul
>> Ramanan
>> > > > > > >> Subramanian <
>> > > > > > >> > > > > > >>> > > gokul24...@gmail.com> wrote:
>> > > > > > >> > > > > > >>> > >
>> > > > > > >> > > > > > >>> > > > Hi.
>> > > > > > >> > > > > > >>> > > >
>> > > > > > >> > > > > > >>> > > > Thanks for the KIP.
>> > > > > > >> > > > > > >>> > > >
>> > > > > > >> > > > > > >>> > > > Have you thought about whether it makes
>> > sense
>> > > to
>> > > > > > >> support
>> > > > > > >> > > > > > >>> authorizing a
>> > > > > > >> > > > > > >>> > > > principal for a topic ID rather than a
>> topic
>> > > > name
>> > > > > to
>> > > > > > >> > > achieve
>> > > > > > >> > > > > > >>> tighter
>> > > > > > >> > > > > > >>> > > > security?
>> > > > > > >> > > > > > >>> > > >
>> > > > > > >> > > > > > >>> > > > Or is the topic ID fundamentally an
>> internal
>> > > > > detail
>> > > > > > >> > similar
>> > > > > > >> > > > to
>> > > > > > >> > > > > > >>> epochs
>> > > > > > >> > > > > > >>> > used
>> > > > > > >> > > > > > >>> > > > in a bunch of other places in Kafka?
>> > > > > > >> > > > > > >>> > > >
>> > > > > > >> > > > > > >>> > > > Thanks.
>> > > > > > >> > > > > > >>> > > >
>> > > > > > >> > > > > > >>> > > > On Fri, Sep 11, 2020 at 4:06 PM John
>> > Roesler <
>> > > > > > >> > > > > > vvcep...@apache.org>
>> > > > > > >> > > > > > >>> > wrote:
>> > > > > > >> > > > > > >>> > > >
>> > > > > > >> > > > > > >>> > > > > Hello Justine,
>> > > > > > >> > > > > > >>> > > > >
>> > > > > > >> > > > > > >>> > > > > Thanks for the KIP!
>> > > > > > >> > > > > > >>> > > > >
>> > > > > > >> > > > > > >>> > > > > I happen to have been confronted
>> recently
>> > > with
>> > > > > the
>> > > > > > >> need
>> > > > > > >> > > to
>> > > > > > >> > > > > keep
>> > > > > > >> > > > > > >>> > track of
>> > > > > > >> > > > > > >>> > > > a
>> > > > > > >> > > > > > >>> > > > > large number of topics as compactly as
>> > > > > possible. I
>> > > > > > >> was
>> > > > > > >> > > > going
>> > > > > > >> > > > > to
>> > > > > > >> > > > > > >>> come
>> > > > > > >> > > > > > >>> > up
>> > > > > > >> > > > > > >>> > > > > with some way to dictionary encode the
>> > topic
>> > > > > names
>> > > > > > >> as
>> > > > > > >> > > > > integers,
>> > > > > > >> > > > > > >>> but
>> > > > > > >> > > > > > >>> > this
>> > > > > > >> > > > > > >>> > > > > seems much better!
>> > > > > > >> > > > > > >>> > > > >
>> > > > > > >> > > > > > >>> > > > > Apologies if this has been raised
>> before,
>> > > but
>> > > > > I’m
>> > > > > > >> > > wondering
>> > > > > > >> > > > > > >>> about the
>> > > > > > >> > > > > > >>> > > > > choice of UUID vs sequence number for
>> the
>> > > ids.
>> > > > > > >> > Typically,
>> > > > > > >> > > > > I’ve
>> > > > > > >> > > > > > >>> seen
>> > > > > > >> > > > > > >>> > UUIDs
>> > > > > > >> > > > > > >>> > > > > in two situations:
>> > > > > > >> > > > > > >>> > > > > 1. When processes need to generate
>> > > > non-colliding
>> > > > > > >> > > > identifiers
>> > > > > > >> > > > > > >>> without
>> > > > > > >> > > > > > >>> > > > > coordination.
>> > > > > > >> > > > > > >>> > > > > 2. When the identifier needs to be
>> > > > “universally
>> > > > > > >> > unique”;
>> > > > > > >> > > > > I.e.,
>> > > > > > >> > > > > > >>> the
>> > > > > > >> > > > > > >>> > > > > identifier needs to distinguish the
>> entity
>> > > > from
>> > > > > > all
>> > > > > > >> > other
>> > > > > > >> > > > > > >>> entities
>> > > > > > >> > > > > > >>> > that
>> > > > > > >> > > > > > >>> > > > > could ever exist. This is useful in
>> cases
>> > > > where
>> > > > > > >> > entities
>> > > > > > >> > > > from
>> > > > > > >> > > > > > all
>> > > > > > >> > > > > > >>> > kinds
>> > > > > > >> > > > > > >>> > > > of
>> > > > > > >> > > > > > >>> > > > > systems get mixed together, such as
>> when
>> > > > dumping
>> > > > > > >> logs
>> > > > > > >> > > from
>> > > > > > >> > > > > all
>> > > > > > >> > > > > > >>> > processes
>> > > > > > >> > > > > > >>> > > > in
>> > > > > > >> > > > > > >>> > > > > a company into a common system.
>> > > > > > >> > > > > > >>> > > > >
>> > > > > > >> > > > > > >>> > > > > Maybe I’m being short-sighted, but it
>> > > doesn’t
>> > > > > seem
>> > > > > > >> like
>> > > > > > >> > > > > either
>> > > > > > >> > > > > > >>> really
>> > > > > > >> > > > > > >>> > > > > applies here. It seems like the brokers
>> > > could
>> > > > > and
>> > > > > > >> would
>> > > > > > >> > > > > achieve
>> > > > > > >> > > > > > >>> > consensus
>> > > > > > >> > > > > > >>> > > > > when creating a topic anyway, which is
>> all
>> > > > > that’s
>> > > > > > >> > > required
>> > > > > > >> > > > to
>> > > > > > >> > > > > > >>> > generate
>> > > > > > >> > > > > > >>> > > > > non-colliding sequence ids. For the
>> > second,
>> > > as
>> > > > > you
>> > > > > > >> > > mention,
>> > > > > > >> > > > > we
>> > > > > > >> > > > > > >>> could
>> > > > > > >> > > > > > >>> > > > assign
>> > > > > > >> > > > > > >>> > > > > a UUID to the cluster as a whole, which
>> > > would
>> > > > > > render
>> > > > > > >> > any
>> > > > > > >> > > > > > resource
>> > > > > > >> > > > > > >>> > scoped
>> > > > > > >> > > > > > >>> > > > to
>> > > > > > >> > > > > > >>> > > > > the broker universally unique as well.
>> > > > > > >> > > > > > >>> > > > >
>> > > > > > >> > > > > > >>> > > > > The reason I mention this is that,
>> > although
>> > > a
>> > > > > UUID
>> > > > > > >> is
>> > > > > > >> > way
>> > > > > > >> > > > > more
>> > > > > > >> > > > > > >>> > compact
>> > > > > > >> > > > > > >>> > > > > than topic names, it’s still 16 bytes.
>> In
>> > > > > > contrast,
>> > > > > > >> a
>> > > > > > >> > > > 4-byte
>> > > > > > >> > > > > > >>> integer
>> > > > > > >> > > > > > >>> > > > > sequence id would give us 4 billion
>> unique
>> > > > > topics
>> > > > > > >> per
>> > > > > > >> > > > > cluster,
>> > > > > > >> > > > > > >>> which
>> > > > > > >> > > > > > >>> > > > seems
>> > > > > > >> > > > > > >>> > > > > like enough ;)
>> > > > > > >> > > > > > >>> > > > >
>> > > > > > >> > > > > > >>> > > > > Considering the number of different
>> times
>> > > > these
>> > > > > > >> topic
>> > > > > > >> > > > > > >>> identifiers are
>> > > > > > >> > > > > > >>> > > > sent
>> > > > > > >> > > > > > >>> > > > > over the wire or stored in memory, it
>> > seems
>> > > > like
>> > > > > > it
>> > > > > > >> > might
>> > > > > > >> > > > be
>> > > > > > >> > > > > > >>> worth
>> > > > > > >> > > > > > >>> > the
>> > > > > > >> > > > > > >>> > > > > additional 4x space savings.
>> > > > > > >> > > > > > >>> > > > >
>> > > > > > >> > > > > > >>> > > > > What do you think about this?
>> > > > > > >> > > > > > >>> > > > >
>> > > > > > >> > > > > > >>> > > > > Thanks,
>> > > > > > >> > > > > > >>> > > > > John
>> > > > > > >> > > > > > >>> > > > >
>> > > > > > >> > > > > > >>> > > > > On Fri, Sep 11, 2020, at 03:20, Tom
>> > Bentley
>> > > > > wrote:
>> > > > > > >> > > > > > >>> > > > > > Hi Justine,
>> > > > > > >> > > > > > >>> > > > > >
>> > > > > > >> > > > > > >>> > > > > > This looks like a very welcome
>> > > improvement.
>> > > > > > >> Thanks!
>> > > > > > >> > > > > > >>> > > > > >
>> > > > > > >> > > > > > >>> > > > > > Maybe I missed it, but the KIP
>> doesn't
>> > > seem
>> > > > to
>> > > > > > >> > mention
>> > > > > > >> > > > > > changing
>> > > > > > >> > > > > > >>> > > > > > DeleteTopicsRequest to identify the
>> > topic
>> > > > > using
>> > > > > > an
>> > > > > > >> > id.
>> > > > > > >> > > > > Maybe
>> > > > > > >> > > > > > >>> > that's out
>> > > > > > >> > > > > > >>> > > > > of
>> > > > > > >> > > > > > >>> > > > > > scope, but DeleteTopicsRequest is not
>> > > listed
>> > > > > > among
>> > > > > > >> > the
>> > > > > > >> > > > > Future
>> > > > > > >> > > > > > >>> Work
>> > > > > > >> > > > > > >>> > APIs
>> > > > > > >> > > > > > >>> > > > > > either.
>> > > > > > >> > > > > > >>> > > > > >
>> > > > > > >> > > > > > >>> > > > > > Kind regards,
>> > > > > > >> > > > > > >>> > > > > >
>> > > > > > >> > > > > > >>> > > > > > Tom
>> > > > > > >> > > > > > >>> > > > > >
>> > > > > > >> > > > > > >>> > > > > > On Thu, Sep 10, 2020 at 3:59 PM
>> Satish
>> > > > > Duggana <
>> > > > > > >> > > > > > >>> > > > satish.dugg...@gmail.com
>> > > > > > >> > > > > > >>> > > > > > wrote:
>> > > > > > >> > > > > > >>> > > > > >
>> > > > > > >> > > > > > >>> > > > > > > Thanks Lucas/Justine for the nice
>> KIP.
>> > > > > > >> > > > > > >>> > > > > > >
>> > > > > > >> > > > > > >>> > > > > > > It has several benefits which also
>> > > include
>> > > > > > >> > > simplifying
>> > > > > > >> > > > > the
>> > > > > > >> > > > > > >>> topic
>> > > > > > >> > > > > > >>> > > > > > > deletion process by controller and
>> > logs
>> > > > > > cleanup
>> > > > > > >> by
>> > > > > > >> > > > > brokers
>> > > > > > >> > > > > > in
>> > > > > > >> > > > > > >>> > corner
>> > > > > > >> > > > > > >>> > > > > > > cases.
>> > > > > > >> > > > > > >>> > > > > > >
>> > > > > > >> > > > > > >>> > > > > > > Best,
>> > > > > > >> > > > > > >>> > > > > > > Satish.
>> > > > > > >> > > > > > >>> > > > > > >
>> > > > > > >> > > > > > >>> > > > > > > On Wed, Sep 9, 2020 at 10:07 PM
>> > Justine
>> > > > > > Olshan <
>> > > > > > >> > > > > > >>> > jols...@confluent.io
>> > > > > > >> > > > > > >>> > > > > > > wrote:
>> > > > > > >> > > > > > >>> > > > > > > > Hello all, it's been almost a
>> year!
>> > > I've
>> > > > > > made
>> > > > > > >> > some
>> > > > > > >> > > > > > changes
>> > > > > > >> > > > > > >>> to
>> > > > > > >> > > > > > >>> > this
>> > > > > > >> > > > > > >>> > > > > KIP
>> > > > > > >> > > > > > >>> > > > > > > and hope to continue the
>> discussion.
>> > > > > > >> > > > > > >>> > > > > > > > One of the main changes I've
>> added
>> > is
>> > > > now
>> > > > > > the
>> > > > > > >> > > > metadata
>> > > > > > >> > > > > > >>> response
>> > > > > > >> > > > > > >>> > > > will
>> > > > > > >> > > > > > >>> > > > > > > include the topic ID (as Colin
>> > > suggested).
>> > > > > > >> Clients
>> > > > > > >> > > can
>> > > > > > >> > > > > > >>> obtain the
>> > > > > > >> > > > > > >>> > > > > topicID
>> > > > > > >> > > > > > >>> > > > > > > of a given topic through a
>> > > > TopicDescription.
>> > > > > > The
>> > > > > > >> > > > topicId
>> > > > > > >> > > > > > will
>> > > > > > >> > > > > > >>> > also be
>> > > > > > >> > > > > > >>> > > > > > > included with the UpdateMetadata
>> > > request.
>> > > > > > >> > > > > > >>> > > > > > > > Let me know what you all think.
>> > > > > > >> > > > > > >>> > > > > > > > Thank you,
>> > > > > > >> > > > > > >>> > > > > > > > Justine
>> > > > > > >> > > > > > >>> > > > > > > >
>> > > > > > >> > > > > > >>> > > > > > > > On 2019/09/13 16:38:26, "Colin
>> > > McCabe" <
>> > > > > > >> > > > > > cmcc...@apache.org
>> > > > > > >> > > > > > >>> >
>> > > > > > >> > > > > > >>> > wrote:
>> > > > > > >> > > > > > >>> > > > > > > > > Hi Lucas,
>> > > > > > >> > > > > > >>> > > > > > > > >
>> > > > > > >> > > > > > >>> > > > > > > > > Thanks for tackling this.
>> Topic
>> > IDs
>> > > > > are a
>> > > > > > >> > great
>> > > > > > >> > > > > idea,
>> > > > > > >> > > > > > >>> and
>> > > > > > >> > > > > > >>> > this
>> > > > > > >> > > > > > >>> > > > is
>> > > > > > >> > > > > > >>> > > > > a
>> > > > > > >> > > > > > >>> > > > > > > really good writeup.
>> > > > > > >> > > > > > >>> > > > > > > > > For /brokers/topics/[topic],
>> the
>> > > > schema
>> > > > > > >> version
>> > > > > > >> > > > > should
>> > > > > > >> > > > > > be
>> > > > > > >> > > > > > >>> > bumped
>> > > > > > >> > > > > > >>> > > > to
>> > > > > > >> > > > > > >>> > > > > > > version 3, rather than 2.  KIP-455
>> > > bumped
>> > > > > the
>> > > > > > >> > version
>> > > > > > >> > > > of
>> > > > > > >> > > > > > this
>> > > > > > >> > > > > > >>> > znode
>> > > > > > >> > > > > > >>> > > > to
>> > > > > > >> > > > > > >>> > > > > 2
>> > > > > > >> > > > > > >>> > > > > > > already :)
>> > > > > > >> > > > > > >>> > > > > > > > > Given that we're going to be
>> > seeing
>> > > > > these
>> > > > > > >> > things
>> > > > > > >> > > as
>> > > > > > >> > > > > > >>> strings
>> > > > > > >> > > > > > >>> > as
>> > > > > > >> > > > > > >>> > > > lot
>> > > > > > >> > > > > > >>> > > > > (in
>> > > > > > >> > > > > > >>> > > > > > > logs, in ZooKeeper, on the
>> > command-line,
>> > > > > > etc.),
>> > > > > > >> > does
>> > > > > > >> > > it
>> > > > > > >> > > > > > make
>> > > > > > >> > > > > > >>> > sense to
>> > > > > > >> > > > > > >>> > > > > use
>> > > > > > >> > > > > > >>> > > > > > > base64 when converting them to
>> > strings?
>> > > > > > >> > > > > > >>> > > > > > > > > Here is an example of the hex
>> > > > > > >> representation:
>> > > > > > >> > > > > > >>> > > > > > > > >
>> > 6fcb514b-b878-4c9d-95b7-8dc3a7ce6fd8
>> > > > > > >> > > > > > >>> > > > > > > > >
>> > > > > > >> > > > > > >>> > > > > > > > > And here is an example in
>> base64.
>> > > > > > >> > > > > > >>> > > > > > > > > b8tRS7h4TJ2Vt43Dp85v2A
>> > > > > > >> > > > > > >>> > > > > > > > >
>> > > > > > >> > > > > > >>> > > > > > > > > The base64 version saves 15
>> > letters
>> > > > (to
>> > > > > be
>> > > > > > >> > fair,
>> > > > > > >> > > 4
>> > > > > > >> > > > of
>> > > > > > >> > > > > > >>> those
>> > > > > > >> > > > > > >>> > were
>> > > > > > >> > > > > > >>> > > > > > > dashes that we could have elided in
>> > the
>> > > > hex
>> > > > > > >> > > > > > representation.)
>> > > > > > >> > > > > > >>> > > > > > > > > Another thing to consider is
>> that
>> > we
>> > > > > > should
>> > > > > > >> > > specify
>> > > > > > >> > > > > > that
>> > > > > > >> > > > > > >>> the
>> > > > > > >> > > > > > >>> > > > > > > all-zeroes UUID is not a valid
>> topic
>> > > UUID.
>> > > > > >  We
>> > > > > > >> > can't
>> > > > > > >> > > > use
>> > > > > > >> > > > > > >>> null
>> > > > > > >> > > > > > >>> > for
>> > > > > > >> > > > > > >>> > > > this
>> > > > > > >> > > > > > >>> > > > > > > because we can't pass a null UUID
>> over
>> > > the
>> > > > > RPC
>> > > > > > >> > > protocol
>> > > > > > >> > > > > > >>> (there
>> > > > > > >> > > > > > >>> > is no
>> > > > > > >> > > > > > >>> > > > > > > special pattern for null, nor do we
>> > want
>> > > > to
>> > > > > > >> waste
>> > > > > > >> > > space
>> > > > > > >> > > > > > >>> reserving
>> > > > > > >> > > > > > >>> > > > such
>> > > > > > >> > > > > > >>> > > > > a
>> > > > > > >> > > > > > >>> > > > > > > pattern.)
>> > > > > > >> > > > > > >>> > > > > > > > > Maybe I missed it, but did you
>> > > > describe
>> > > > > > >> > > "migration
>> > > > > > >> > > > > > of...
>> > > > > > >> > > > > > >>> > existing
>> > > > > > >> > > > > > >>> > > > > > > topic[s] without topic IDs" in
>> detail
>> > in
>> > > > any
>> > > > > > >> > section?
>> > > > > > >> > > > It
>> > > > > > >> > > > > > >>> seems
>> > > > > > >> > > > > > >>> > like
>> > > > > > >> > > > > > >>> > > > > when
>> > > > > > >> > > > > > >>> > > > > > > the new controller becomes active,
>> it
>> > > > should
>> > > > > > >> just
>> > > > > > >> > > > > generate
>> > > > > > >> > > > > > >>> random
>> > > > > > >> > > > > > >>> > > > > UUIDs for
>> > > > > > >> > > > > > >>> > > > > > > these, and write the random UUIDs
>> back
>> > > to
>> > > > > > >> > ZooKeeper.
>> > > > > > >> > > > It
>> > > > > > >> > > > > > >>> would be
>> > > > > > >> > > > > > >>> > > > good
>> > > > > > >> > > > > > >>> > > > > to
>> > > > > > >> > > > > > >>> > > > > > > spell that out.  We should make it
>> > clear
>> > > > > that
>> > > > > > >> this
>> > > > > > >> > > > > happens
>> > > > > > >> > > > > > >>> > regardless
>> > > > > > >> > > > > > >>> > > > > of
>> > > > > > >> > > > > > >>> > > > > > > the inter-broker protocol version
>> > (it's
>> > > a
>> > > > > > >> > compatible
>> > > > > > >> > > > > > change).
>> > > > > > >> > > > > > >>> > > > > > > > > "LeaderAndIsrRequests
>> including an
>> > > > > > >> > > > is_every_partition
>> > > > > > >> > > > > > >>> flag"
>> > > > > > >> > > > > > >>> > > > seems a
>> > > > > > >> > > > > > >>> > > > > > > bit wordy.  Can we just call these
>> > "full
>> > > > > > >> > > > > > >>> LeaderAndIsrRequests"?
>> > > > > > >> > > > > > >>> > Then
>> > > > > > >> > > > > > >>> > > > > the
>> > > > > > >> > > > > > >>> > > > > > > RPC field could be named "full".
>> > Also,
>> > > it
>> > > > > > would
>> > > > > > >> > > > probably
>> > > > > > >> > > > > > be
>> > > > > > >> > > > > > >>> > better
>> > > > > > >> > > > > > >>> > > > > for the
>> > > > > > >> > > > > > >>> > > > > > > RPC field to be an enum of {
>> > > UNSPECIFIED,
>> > > > > > >> > > INCREMENTAL,
>> > > > > > >> > > > > FULL
>> > > > > > >> > > > > > >>> }, so
>> > > > > > >> > > > > > >>> > > > that
>> > > > > > >> > > > > > >>> > > > > we
>> > > > > > >> > > > > > >>> > > > > > > can cleanly handle old versions (by
>> > > > treating
>> > > > > > >> them
>> > > > > > >> > as
>> > > > > > >> > > > > > >>> UNSPECIFIED)
>> > > > > > >> > > > > > >>> > > > > > > > > In the LeaderAndIsrRequest
>> > section,
>> > > > you
>> > > > > > >> write
>> > > > > > >> > "A
>> > > > > > >> > > > > final
>> > > > > > >> > > > > > >>> > deletion
>> > > > > > >> > > > > > >>> > > > > event
>> > > > > > >> > > > > > >>> > > > > > > will be secheduled for X ms after
>> the
>> > > > > > >> > > > LeaderAndIsrRequest
>> > > > > > >> > > > > > was
>> > > > > > >> > > > > > >>> > first
>> > > > > > >> > > > > > >>> > > > > > > received..."  I guess the X was a
>> > > > > placeholder
>> > > > > > >> that
>> > > > > > >> > > you
>> > > > > > >> > > > > > >>> intended
>> > > > > > >> > > > > > >>> > to
>> > > > > > >> > > > > > >>> > > > > replace
>> > > > > > >> > > > > > >>> > > > > > > before posting? :)  In any case,
>> this
>> > > > seems
>> > > > > > like
>> > > > > > >> > the
>> > > > > > >> > > > kind
>> > > > > > >> > > > > > of
>> > > > > > >> > > > > > >>> > thing
>> > > > > > >> > > > > > >>> > > > we'd
>> > > > > > >> > > > > > >>> > > > > > > want a configuration for.  Let's
>> > > describe
>> > > > > that
>> > > > > > >> > > > > > configuration
>> > > > > > >> > > > > > >>> key
>> > > > > > >> > > > > > >>> > > > > somewhere
>> > > > > > >> > > > > > >>> > > > > > > in this KIP, including what its
>> > default
>> > > > > value
>> > > > > > >> is.
>> > > > > > >> > > > > > >>> > > > > > > > > We should probably also log a
>> > bunch
>> > > of
>> > > > > > >> messages
>> > > > > > >> > > at
>> > > > > > >> > > > > WARN
>> > > > > > >> > > > > > >>> level
>> > > > > > >> > > > > > >>> > > > when
>> > > > > > >> > > > > > >>> > > > > > > something is scheduled for
>> deletion,
>> > as
>> > > > > well.
>> > > > > > >> > (Maybe
>> > > > > > >> > > > > this
>> > > > > > >> > > > > > >>> was
>> > > > > > >> > > > > > >>> > > > > assumed, but
>> > > > > > >> > > > > > >>> > > > > > > it would be good to mention it).
>> > > > > > >> > > > > > >>> > > > > > > > > I feel like there are a few
>> > sections
>> > > > > that
>> > > > > > >> > should
>> > > > > > >> > > be
>> > > > > > >> > > > > > >>> moved to
>> > > > > > >> > > > > > >>> > > > > "rejected
>> > > > > > >> > > > > > >>> > > > > > > alternatives."  For example, in the
>> > > > > > DeleteTopics
>> > > > > > >> > > > section,
>> > > > > > >> > > > > > >>> since
>> > > > > > >> > > > > > >>> > we're
>> > > > > > >> > > > > > >>> > > > > not
>> > > > > > >> > > > > > >>> > > > > > > going to do option 1 or 2, these
>> > should
>> > > be
>> > > > > > moved
>> > > > > > >> > into
>> > > > > > >> > > > > > >>> "rejected
>> > > > > > >> > > > > > >>> > > > > > > alternatives,"  rather than
>> appearing
>> > > > > inline.
>> > > > > > >> > > Another
>> > > > > > >> > > > > case
>> > > > > > >> > > > > > >>> is
>> > > > > > >> > > > > > >>> > the
>> > > > > > >> > > > > > >>> > > > > "Should
>> > > > > > >> > > > > > >>> > > > > > > we remove topic name from the
>> protocol
>> > > > where
>> > > > > > >> > > possible"
>> > > > > > >> > > > > > >>> section.
>> > > > > > >> > > > > > >>> > This
>> > > > > > >> > > > > > >>> > > > > is
>> > > > > > >> > > > > > >>> > > > > > > clearly discussing a design
>> > alternative
>> > > > that
>> > > > > > >> we're
>> > > > > > >> > > not
>> > > > > > >> > > > > > >>> proposing
>> > > > > > >> > > > > > >>> > to
>> > > > > > >> > > > > > >>> > > > > > > implement: removing the topic name
>> > from
>> > > > > those
>> > > > > > >> > > > protocols.
>> > > > > > >> > > > > > >>> > > > > > > > > Is it really necessary to have
>> a
>> > new
>> > > > > > >> > > > > > >>> > /admin/delete_topics_by_id
>> > > > > > >> > > > > > >>> > > > > path
>> > > > > > >> > > > > > >>> > > > > > > in ZooKeeper?  It seems like we
>> don't
>> > > > really
>> > > > > > >> need
>> > > > > > >> > > this.
>> > > > > > >> > > > > > >>> Whenever
>> > > > > > >> > > > > > >>> > > > > there is
>> > > > > > >> > > > > > >>> > > > > > > a new controller, we'll send out
>> full
>> > > > > > >> > > > > LeaderAndIsrRequests
>> > > > > > >> > > > > > >>> which
>> > > > > > >> > > > > > >>> > will
>> > > > > > >> > > > > > >>> > > > > > > trigger the stale topics to be
>> cleaned
>> > > up.
>> > > > > >  The
>> > > > > > >> > > active
>> > > > > > >> > > > > > >>> > controller
>> > > > > > >> > > > > > >>> > > > will
>> > > > > > >> > > > > > >>> > > > > > > also send the full
>> LeaderAndIsrRequest
>> > > to
>> > > > > > >> brokers
>> > > > > > >> > > that
>> > > > > > >> > > > > are
>> > > > > > >> > > > > > >>> just
>> > > > > > >> > > > > > >>> > > > > starting
>> > > > > > >> > > > > > >>> > > > > > > up.    So we don't really need this
>> > kind
>> > > > of
>> > > > > > >> > two-phase
>> > > > > > >> > > > > > commit
>> > > > > > >> > > > > > >>> > (send
>> > > > > > >> > > > > > >>> > > > out
>> > > > > > >> > > > > > >>> > > > > > > StopReplicasRequest, get ACKs from
>> all
>> > > > > nodes,
>> > > > > > >> > commit
>> > > > > > >> > > by
>> > > > > > >> > > > > > >>> removing
>> > > > > > >> > > > > > >>> > > > > > > /admin/delete_topics node) any
>> more.
>> > > > > > >> > > > > > >>> > > > > > > > > You mention that FetchRequest
>> will
>> > > now
>> > > > > > >> include
>> > > > > > >> > > UUID
>> > > > > > >> > > > > to
>> > > > > > >> > > > > > >>> avoid
>> > > > > > >> > > > > > >>> > > > issues
>> > > > > > >> > > > > > >>> > > > > > > where requests are made to stale
>> > > > partitions.
>> > > > > > >> > > However,
>> > > > > > >> > > > > > >>> adding a
>> > > > > > >> > > > > > >>> > UUID
>> > > > > > >> > > > > > >>> > > > to
>> > > > > > >> > > > > > >>> > > > > > > MetadataRequest is listed as future
>> > > work,
>> > > > > out
>> > > > > > of
>> > > > > > >> > > scope
>> > > > > > >> > > > > for
>> > > > > > >> > > > > > >>> this
>> > > > > > >> > > > > > >>> > KIP.
>> > > > > > >> > > > > > >>> > > > > How
>> > > > > > >> > > > > > >>> > > > > > > will the client learn what the
>> topic
>> > > UUID
>> > > > > is,
>> > > > > > if
>> > > > > > >> > the
>> > > > > > >> > > > > > metadata
>> > > > > > >> > > > > > >>> > > > response
>> > > > > > >> > > > > > >>> > > > > > > doesn't include that information?
>> It
>> > > > seems
>> > > > > > like
>> > > > > > >> > > adding
>> > > > > > >> > > > > the
>> > > > > > >> > > > > > >>> UUID
>> > > > > > >> > > > > > >>> > to
>> > > > > > >> > > > > > >>> > > > > > > MetadataResponse would be an
>> > improvement
>> > > > > here
>> > > > > > >> that
>> > > > > > >> > > > might
>> > > > > > >> > > > > > not
>> > > > > > >> > > > > > >>> be
>> > > > > > >> > > > > > >>> > too
>> > > > > > >> > > > > > >>> > > > > hard to
>> > > > > > >> > > > > > >>> > > > > > > make.
>> > > > > > >> > > > > > >>> > > > > > > > > best,
>> > > > > > >> > > > > > >>> > > > > > > > > Colin
>> > > > > > >> > > > > > >>> > > > > > > > >
>> > > > > > >> > > > > > >>> > > > > > > > >
>> > > > > > >> > > > > > >>> > > > > > > > > On Mon, Sep 9, 2019, at 17:48,
>> > > Ryanne
>> > > > > > Dolan
>> > > > > > >> > > wrote:
>> > > > > > >> > > > > > >>> > > > > > > > > > Lucas, this would be great.
>> I've
>> > > run
>> > > > > > into
>> > > > > > >> > > issues
>> > > > > > >> > > > > with
>> > > > > > >> > > > > > >>> > topics
>> > > > > > >> > > > > > >>> > > > > being
>> > > > > > >> > > > > > >>> > > > > > > > > > resurrected accidentally,
>> since
>> > a
>> > > > > client
>> > > > > > >> > cannot
>> > > > > > >> > > > > > easily
>> > > > > > >> > > > > > >>> > > > > distinguish
>> > > > > > >> > > > > > >>> > > > > > > between
>> > > > > > >> > > > > > >>> > > > > > > > > > a deleted topic and a new
>> topic
>> > > with
>> > > > > the
>> > > > > > >> same
>> > > > > > >> > > > name.
>> > > > > > >> > > > > > I'd
>> > > > > > >> > > > > > >>> > need
>> > > > > > >> > > > > > >>> > > > the
>> > > > > > >> > > > > > >>> > > > > ID
>> > > > > > >> > > > > > >>> > > > > > > > > > accessible from the client to
>> > > solve
>> > > > > that
>> > > > > > >> > issue,
>> > > > > > >> > > > but
>> > > > > > >> > > > > > >>> this
>> > > > > > >> > > > > > >>> > is a
>> > > > > > >> > > > > > >>> > > > > good
>> > > > > > >> > > > > > >>> > > > > > > first
>> > > > > > >> > > > > > >>> > > > > > > > > > step.
>> > > > > > >> > > > > > >>> > > > > > > > > >
>> > > > > > >> > > > > > >>> > > > > > > > > > Ryanne
>> > > > > > >> > > > > > >>> > > > > > > > > >
>> > > > > > >> > > > > > >>> > > > > > > > > > On Wed, Sep 4, 2019 at 1:41
>> PM
>> > > Lucas
>> > > > > > >> > > Bradstreet <
>> > > > > > >> > > > > > >>> > > > > lu...@confluent.io>
>> > > > > > >> > > > > > >>> > > > > > > wrote:
>> > > > > > >> > > > > > >>> > > > > > > > > > > Hi all,
>> > > > > > >> > > > > > >>> > > > > > > > > > >
>> > > > > > >> > > > > > >>> > > > > > > > > > > I would like to kick off
>> > > > discussion
>> > > > > of
>> > > > > > >> > > KIP-516,
>> > > > > > >> > > > > an
>> > > > > > >> > > > > > >>> > > > > implementation
>> > > > > > >> > > > > > >>> > > > > > > of topic
>> > > > > > >> > > > > > >>> > > > > > > > > > > IDs for Kafka. Topic IDs
>> aim
>> > to
>> > > > > solve
>> > > > > > >> topic
>> > > > > > >> > > > > > >>> uniqueness
>> > > > > > >> > > > > > >>> > > > > problems in
>> > > > > > >> > > > > > >>> > > > > > > Kafka,
>> > > > > > >> > > > > > >>> > > > > > > > > > > where referring to a topic
>> by
>> > > name
>> > > > > > >> alone is
>> > > > > > >> > > > > > >>> insufficient.
>> > > > > > >> > > > > > >>> > > > Such
>> > > > > > >> > > > > > >>> > > > > > > cases
>> > > > > > >> > > > > > >>> > > > > > > > > > > include when a topic has
>> been
>> > > > > deleted
>> > > > > > >> and
>> > > > > > >> > > > > recreated
>> > > > > > >> > > > > > >>> with
>> > > > > > >> > > > > > >>> > the
>> > > > > > >> > > > > > >>> > > > > same
>> > > > > > >> > > > > > >>> > > > > > > name.
>> > > > > > >> > > > > > >>> > > > > > > > > > > Unique identifiers will
>> help
>> > > > > simplify
>> > > > > > >> and
>> > > > > > >> > > > improve
>> > > > > > >> > > > > > >>> Kafka's
>> > > > > > >> > > > > > >>> > > > topic
>> > > > > > >> > > > > > >>> > > > > > > deletion
>> > > > > > >> > > > > > >>> > > > > > > > > > > process, as well as prevent
>> > > cases
>> > > > > > where
>> > > > > > >> > > brokers
>> > > > > > >> > > > > may
>> > > > > > >> > > > > > >>> > > > incorrectly
>> > > > > > >> > > > > > >>> > > > > > > interact
>> > > > > > >> > > > > > >>> > > > > > > > > > > with stale versions of
>> topics.
>> > > > > > >> > > > > > >>> > > > > > > > > > >
>> > > > > > >> > > > > > >>> > > > > > > > > > >
>> > > > > > >> > > > > > >>> > > > > > > > > > >
>> > > > > > >> > > > > > >>> > > >
>> > > > > > >> > > > > > >>> >
>> > > > > > >> > > > > > >>>
>> > > > > > >> > > > > >
>> > > > > > >> > > > >
>> > > > > > >> > > >
>> > > > > > >> > >
>> > > > > > >> >
>> > > > > > >>
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-516%3A+Topic+Identifiers
>> > > > > > >> > > > > > >>> > > > > > > > > > > Looking forward to your
>> > > thoughts.
>> > > > > > >> > > > > > >>> > > > > > > > > > >
>> > > > > > >> > > > > > >>> > > > > > > > > > > Lucas
>> > > > > > >> > > > > > >>> > > > > > > > > > >
>> > > > > > >> > > > > > >>> >
>> > > > > > >> > > > > > >>> >
>> > > > > > >> > > > > > >>>
>> > > > > > >> > > > > > >>
>> > > > > > >> > > > > >
>> > > > > > >> > > > >
>> > > > > > >> > > >
>> > > > > > >> > >
>> > > > > > >> >
>> > > > > > >>
>> > > > > > >
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>>
>

Reply via email to