After thinking about this more, I have decided to just use an unsigned 16-bit 
int for ports.  Using 4 bytes would be wasteful here.  So I set these fields to 
uint16.  This is straightforward to support in the wire protocol and will be 
more efficient going forward.  I updated the KIP.

best,
Colin

On Tue, Jan 5, 2021, at 17:03, Colin McCabe wrote:
> Hi all,
> 
> Addendum: some of the port types in this KIP were specified as int16 in 
> the wire protocol.  But this does not gracefully handle ports like 
> 33,000, which shows up as negative when using a signed 16 bit number.  
> I think eventually we'll want a uint16 type, but for now I just made 
> them int32.  This is consistent with what we do in MetadataResponse and 
> a few other places.
> 
> best,
> Colin
> 
> 
> On Mon, Dec 21, 2020, at 14:42, Colin McCabe wrote:
> > Hi all,
> > 
> > With non-binding +1 votes from Ron Dagostino, Tom Bentley and Unmesh 
> > Joshi, and binding +1 votes from David Arthur, Boyang Chen, Jason 
> > Gusafson, Ismael Juma, David Jacot, Jun Rao, the KIP passes.
> > 
> > thanks, all!
> > 
> > cheers,
> > Colin
> > 
> > On Fri, Dec 18, 2020, at 12:42, Colin McCabe wrote:
> > > Hi all,
> > > 
> > > I'm going to close the vote in a few hours.  Thanks to everyone who 
> > > reviewed and voted.
> > > 
> > > best,
> > > Colin
> > > 
> > > 
> > > On Fri, Dec 18, 2020, at 10:08, Jun Rao wrote:
> > > > Thanks, Colin. +1
> > > > 
> > > > Jun
> > > > 
> > > > On Thu, Dec 17, 2020 at 2:24 AM David Jacot <dja...@confluent.io> wrote:
> > > > 
> > > > > Thanks for driving this KIP, Colin. The KIP is really well written. 
> > > > > This is
> > > > > so exciting!
> > > > >
> > > > > +1 (binding)
> > > > >
> > > > > Best,
> > > > > David
> > > > >
> > > > > On Wed, Dec 16, 2020 at 11:51 PM Colin McCabe <cmcc...@apache.org> 
> > > > > wrote:
> > > > >
> > > > > > On Wed, Dec 16, 2020, at 13:08, Ismael Juma wrote:
> > > > > > > Thanks for all the work on the KIP. Given the magnitude of the 
> > > > > > > KIP, I
> > > > > > > expect that some tweaks will be made as the code is implemented,
> > > > > reviewed
> > > > > > > and tested. I'm overall +1 (binding).
> > > > > > >
> > > > > >
> > > > > > Thanks, Ismael.
> > > > > >
> > > > > > > A few comments below:
> > > > > > > 1. It's a bit weird for kafka-storage to output a random uuid. 
> > > > > > > Would it
> > > > > > be
> > > > > > > better to have a dedicated command for that?
> > > > > >
> > > > > > I'm not sure.  The nice thing about putting it in kafka-storage.sh 
> > > > > > is
> > > > > that
> > > > > > it's there when you need it.  I also think that having subcommands, 
> > > > > > like
> > > > > we
> > > > > > do here, really reduces the "clutter" that we have in some other
> > > > > > command-line tools.  When you get help about the "info" subcommand, 
> > > > > > you
> > > > > > don't see flags for any other subcommand, for example.  I guess we 
> > > > > > can
> > > > > move
> > > > > > this later if it seems more intuitive though.
> > > > > >
> > > > > > > Also, since we use base64
> > > > > > > encoded uuids nearly everywhere (including cluster and topic 
> > > > > > > ids), it
> > > > > > would
> > > > > > > be good to follow that pattern instead of the less compact
> > > > > > > "51380268-1036-410d-a8fc-fb3b55f48033".
> > > > > >
> > > > > > Good idea.  I have updated this to use base64 encoded UUIDs.
> > > > > >
> > > > > > > 2. This is a nit, but I think it would be better to talk about 
> > > > > > > built-in
> > > > > > > quorum mode instead of KIP-500 mode. It's more self descriptive 
> > > > > > > than a
> > > > > > KIP
> > > > > > > reference.
> > > > > >
> > > > > > I do like the sound of "quorum mode."  I guess the main question 
> > > > > > is, if
> > > > > we
> > > > > > later implement raft quorums for regular topics, would that 
> > > > > > nomenclature
> > > > > be
> > > > > > confusing?  I guess we could talk about "metadata quorum mode" to 
> > > > > > avoid
> > > > > > confusion.  Hmm.
> > > > > >
> > > > > > > 3. Did we consider using `session` (like the group coordinator) 
> > > > > > > instead
> > > > > > of
> > > > > > > `regsitration` in `broker.registration.timeout.ms`?
> > > > > >
> > > > > > Hmm, broker.session.timeout.ms does sound better.  I changed it to 
> > > > > > that.
> > > > > >
> > > > > > > 4. The flat id space for the controller and broker while 
> > > > > > > requiring a
> > > > > > > different id in embedded mode seems a bit unintuitive. Are there 
> > > > > > > any
> > > > > > other
> > > > > > > systems that do this? I know we covered some of the reasons in the
> > > > > > "Shared
> > > > > > > IDs between Multiple Nodes" rejected alternatives section, but it
> > > > > didn't
> > > > > > > seem totally convincing to me.
> > > > > >
> > > > > > One of my concerns here is that using separate ID spaces for 
> > > > > > controllers
> > > > > > versus brokers would potentially lead to metrics or logging 
> > > > > > collisions.
> > > > > We
> > > > > > can take a look at that again once the implementation is further 
> > > > > > along, I
> > > > > > guess, to see how often that is a problem in practice.
> > > > > >
> > > > > > > 5. With regards to the controller process listening on a separate 
> > > > > > > port,
> > > > > > it
> > > > > > > may be worth adding a sentence about the forwarding KIP as that 
> > > > > > > is a
> > > > > main
> > > > > > > reason why the controller port doesn't need to be accessible.
> > > > > >
> > > > > > Good idea... I added a short reference to KIP-590 in the 
> > > > > > "Networking"
> > > > > > section.
> > > > > >
> > > > > > > 6. The internal topic seems to be called @metadata. I'm 
> > > > > > > personally not
> > > > > > > convinced about the usage of @ in this way. I think I would go 
> > > > > > > with the
> > > > > > > same convention we have used for other existing internal topics.
> > > > > >
> > > > > > I knew this one would be controversial :)
> > > > > >
> > > > > > I guess the main argument here is that using @ avoids collisions 
> > > > > > with any
> > > > > > existing topic.  Leading underscores, even double underscores, can 
> > > > > > be
> > > > > used
> > > > > > by users to create new topics, but an "at sign" cannot  It would be 
> > > > > > nice
> > > > > to
> > > > > > have a namespace for system topics that we knew nobody else could 
> > > > > > break
> > > > > > into.
> > > > > >
> > > > > > > 7. We talk about the metadata.format feature flag. Is this 
> > > > > > > intended to
> > > > > > > allow for single roll upgrades?
> > > > > > > 8. Could the incarnation id be called registration id? Or is 
> > > > > > > there a
> > > > > > reason
> > > > > > > why this would be a bad name?
> > > > > >
> > > > > > I liked "incarnation id" because it expresses the idea that each new
> > > > > > incarnation of the broker gets a different one.  I think 
> > > > > > "registration
> > > > > id"
> > > > > > might be confused with "the broker id is the ID we're registering."
> > > > > >
> > > > > > > 9. Could `CurMetadataOffset` be called `CurrentMetadataOffset` for
> > > > > > > `BrokerRegistrationRequest`? The abbreviation here doesn't seem 
> > > > > > > to help
> > > > > > > much and makes things slightly less readable. It would also make 
> > > > > > > it
> > > > > > > consistent with `BrokerHeartbeatRequest`.
> > > > > >
> > > > > > Yeah, the abbreviated name is inconsistent.  I will change it to
> > > > > > CurrentMetadataOffset.
> > > > > >
> > > > > > > 10. Should `UnregisterBrokerRecord` be `DeregisterBrokerRecord`?
> > > > > >
> > > > > > Hmm, "Register/Unregister" is more consistent with "Fence/Unfence" 
> > > > > > which
> > > > > > is why I went with Unregister.  It looks like they're both in the
> > > > > > dictionary, so I'm not sure if "deregister" has an advantage...
> > > > > >
> > > > > > > 11. Broker metrics typically have a PerSec suffix, should we 
> > > > > > > stick with
> > > > > > > that for the `MetadataCommitRate`?
> > > > > >
> > > > > > Added.
> > > > > >
> > > > > > > 12. For the lag metrics, would it be clearer if we included 
> > > > > > > "Offset" in
> > > > > > the
> > > > > > > name? In theory, we could have time based lag metrics too. Having 
> > > > > > > said
> > > > > > > that, existing offset lag metrics do seem to just have `Lag` in 
> > > > > > > their
> > > > > > name
> > > > > > > without further qualification.
> > > > > > >
> > > > > >
> > > > > > Yeah, I think including Offset does make it a bit clearer.  Added.
> > > > > >
> > > > > > best,
> > > > > > Colin
> > > > > >
> > > > > >
> > > > > > > Ismael
> > > > > > >
> > > > > > > On Fri, Dec 11, 2020 at 1:41 PM Colin McCabe <cmcc...@apache.org>
> > > > > wrote:
> > > > > > >
> > > > > > > > Hi all,
> > > > > > > >
> > > > > > > > I'd like to restart the vote on KIP-631: the quorum-based Kafka
> > > > > > > > Controller.  The KIP is here:
> > > > > > > >
> > > > > > > > https://cwiki.apache.org/confluence/x/4RV4CQ
> > > > > > > >
> > > > > > > > The original DISCUSS thread is here:
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > >
> > > > > https://lists.apache.org/thread.html/r1ed098a88c489780016d963b065e8cb450a9080a4736457cd25f323c%40%3Cdev.kafka.apache.org%3E
> > > > > > > >
> > > > > > > > There is also a second email DISCUSS thread, which is here:
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > >
> > > > > https://lists.apache.org/thread.html/r1ed098a88c489780016d963b065e8cb450a9080a4736457cd25f323c%40%3Cdev.kafka.apache.org%3E
> > > > > > > >
> > > > > > > > Please take a look and vote if you can.
> > > > > > > >
> > > > > > > > best,
> > > > > > > > Colin
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to