Ni Noa,

Thanks for the KIP. I agree with the concerns about Metadata bloat. In
fact, I have wanted a BrokerStatus API for a while now. Perhaps this is a
good excuse to introduce it. I was thinking something like this:

BrokerStatusRequest => BrokerId

BrokerStatusResponse =>
  Listeners => [ListenerName Host Port]
  RackId
  BrokerEpoch
  BrokerState => {ACTIVE, RECOVERING, SHUTTING_DOWN}
  UpTime

What do you think?

Thanks,
Jason

On Tue, Nov 5, 2019 at 12:25 PM Noa Resare <n...@resare.com> wrote:

> I agree with that. And looking at the MetadataResponse fields it seems
> there has been some feature creep already here. Does the client use rack
> information, for example?
>
> I guess one could do this either by introducing a new leaner message pair,
> used specifically enable client operation, and use
> MetadataRequest/MetadataResponse for describeCluster() or one could shrink
> MetadataRequest/MetadataResponse and introduce a new more fully featured
> message pair for the other stuff. I would be happy to spend some time
> looking into implementing this if there is an interest.
>
> /noa
>
> > On 5 Nov 2019, at 15:43, Gwen Shapira <g...@confluent.io> wrote:
> >
> > It isn't just about saving space. It increases complexity to default to
> > always sharing a bit of information that is really only needed in a
> single
> > use-case.
> > We avoid doing this as a matter of good protocol design.
> > Arguably, this should not really piggyback on cluster metadata at all,
> > since the usage is so different.
> >
> > On Tue, Nov 5, 2019, 7:29 AM Noa Resare <n...@resare.com> wrote:
> >
> >> It would certainly be possible to have the field be optional and only
> >> include it if some flag is set in the DescribeClusterOptions instance
> >> passed to Admin.describeCluster() that in turn would translate to a
> boolean
> >> in MetadataRequest indicating that we are asking for this piece of
> >> information.
> >>
> >> I’m not entirely sure that this extra complexity would be worth it for
> the
> >> modestly smaller response size, in a message that already contains
> things
> >> like the hostname and rack identifier per broker.
> >>
> >> /noa
> >>
> >>> On 4 Nov 2019, at 14:45, Gwen Shapira <g...@confluent.io> wrote:
> >>>
> >>> Cluster metadata is sent to clients on a very regular basis. Adding
> >>> start-time there seems quite repetitive. Especially considering that
> >>> this information is only useful in very specific cases.
> >>>
> >>> Can we add this capability to the Admin API in a way that won't impact
> >>> normal client workflow?
> >>>
> >>> On Mon, Nov 4, 2019 at 4:05 AM Noa Resare <n...@resare.com> wrote:
> >>>>
> >>>> Thank you for the feedback, Stanislav!
> >>>>
> >>>> I agree that it would be good to harmonise the naming, and
> >> start-time-ms definitely more descriptive.
> >>>>
> >>>> I have updated the proposal to reflect this, and also added the
> updated
> >> json RPC changes. Please have a look.
> >>>>
> >>>> /noa
> >>>>
> >>>>> On 1 Nov 2019, at 09:13, Stanislav Kozlovski <stanis...@confluent.io
> >
> >> wrote:
> >>>>>
> >>>>> Hey Noa,
> >>>>>
> >>>>> KIP-436 added a JMX metric in Kafka for this exact use-case, called
> >>>>> `start-time-ms`. Perhaps it would be useful to name this public
> >> interface
> >>>>> in the same way for consistency.
> >>>>>
> >>>>> Could you update the KIP to include the specific RPC changes
> regarding
> >> the
> >>>>> metadata request/responses? Here is a recent example of how to
> portray
> >> the
> >>>>> changes -
> >>>>>
> >>
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-525+-+Return+topic+metadata+and+configs+in+CreateTopics+response
> >>>>>
> >>>>> Thanks,
> >>>>> Stanislav!
> >>>>>
> >>>>> On Mon, Oct 14, 2019 at 2:46 PM Noa Resare <n...@resare.com> wrote:
> >>>>>
> >>>>>> We are in the process of migrating the pieces of automation that
> >> currently
> >>>>>> reads and modifies zookeeper state to use the Admin API.
> >>>>>>
> >>>>>> One of the things that we miss doing this is access to the start
> time
> >> of
> >>>>>> brokers in a cluster which is used by our automation doing rolling
> >>>>>> restarts. We currently read this from the timestamp field from the
> >>>>>> epehmeral broker znodes in zookeeper. To address this limitation, I
> >> have
> >>>>>> authored KIP-536, that proposes adding a timestamp field to the Node
> >> class
> >>>>>> that the AdminClient.describeCluster() method returns.
> >>>>>>
> >>>>>>
> >>>>>>
> >>
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-536%3A+Propagate+broker+timestamp+to+Admin+API
> >>>>>> <
> >>>>>>
> >>
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-536:+Propagate+broker+timestamp+to+Admin+API
> >>>>>>>
> >>>>>>
> >>>>>> Any and all feedback is most welcome
> >>>>>>
> >>>>>> cheers
> >>>>>> noa
> >>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Best,
> >>>>> Stanislav
> >>>>
> >>
> >>
>
>

Reply via email to