I think while loop is fine for supporting blocking, just that we need to
add back off to avoid bombarding brokers with DescribeTopic requests.

Also I have linked KAFKA-1125
<https://issues.apache.org/jira/browse/KAFKA-1125> to your proposal, and
when KAFKA-1694 is done this ticket can also be closed.

Guozhang

On Fri, Mar 20, 2015 at 9:41 AM, Andrii Biletskyi <
andrii.bilets...@stealth.ly> wrote:

> Great.
> I want to elaborate this a bit more, to see we are on the same page
> concerning the client code.
>
> So with all topic commands being async a client (AdminClient in our
> case or any other other client people would like to implement) to support
> a blocking operation (which seems to be a natural use-case e.g. for topic
> creation): would have to do:
> 1. issue CreateTopicRequest
> 2. if successful, in a "while" loop send DescribeTopicRequest and
> break the loop once all topics are returned in response (or upon timeout).
> 3. if unsuccessful throw exception
> Would it be okay?
>
> Thanks,
> Andrii Biletskyi
>
>
> On Fri, Mar 20, 2015 at 6:21 PM, Jun Rao <j...@confluent.io> wrote:
>
> > Andrii,
> >
> > I think you are right. It seems that only ReassignPartitions needs a
> > separate verification request.
> >
> > Thanks,
> >
> > Jun
> >
> > On Thu, Mar 19, 2015 at 9:22 AM, Andrii Biletskyi <
> > andrii.bilets...@stealth.ly> wrote:
> >
> > > Guys,
> > > I like this idea too. Let's stick with that. I'll update KIP
> accordingly.
> > >
> > > I was also thinking we can avoid adding dedicated status check
> > > requests for topic commands. - We have everything in DescribeTopic
> > > for that! E.g.:
> > > User issued CreateTopic - to check the status client sends
> DescribeTopic
> > > and checks whether is something returned for that topic. The same for
> > > alteration, deletion.
> > > Btw, PreferredReplica status can be also checked with
> > DescribeTopicRequest
> > > (head of assigned replicas list == leader).
> > > For ReassignPartitions as discussed we'll need to have a separate
> > Verify...
> > > request.
> > >
> > > Thanks,
> > > Andrii Biletskyi
> > >
> > >
> > > On Thu, Mar 19, 2015 at 6:03 PM, Guozhang Wang <wangg...@gmail.com>
> > wrote:
> > >
> > > > +1 on broker writing to ZK for async handling. I was thinking that in
> > the
> > > > end state the admin requests would be eventually sent to controller
> > > either
> > > > through re-routing or clients discovering them, instead of letting
> > > > controller listen on ZK admin path. But thinking about it a second
> > time,
> > > I
> > > > think it is actually simpler to let controller manage
> > > > incoming queued-up admin requests through ZK.
> > > >
> > > > Guozhang
> > > >
> > > >
> > > > On Wed, Mar 18, 2015 at 4:16 PM, Joel Koshy <jjkosh...@gmail.com>
> > wrote:
> > > >
> > > > > +1 as well. I think it helps to keep the rerouting approach
> > orthogonal
> > > > > to this KIP.
> > > > >
> > > > > On Wed, Mar 18, 2015 at 03:40:48PM -0700, Jay Kreps wrote:
> > > > > > I'm +1 on Jun's suggestion as long as it can work for all the
> > > requests.
> > > > > >
> > > > > > On Wed, Mar 18, 2015 at 3:35 PM, Jun Rao <j...@confluent.io>
> wrote:
> > > > > >
> > > > > > > Andrii,
> > > > > > >
> > > > > > > I think we agreed on the following.
> > > > > > >
> > > > > > > (a) Admin requests can be sent to and handled by any broker.
> > > > > > > (b) Admin requests are processed asynchronously, at least for
> > now.
> > > > > That is,
> > > > > > > when the client gets a response, it just means that the request
> > is
> > > > > > > initiated, but not necessarily completed. Then, it's up to the
> > > client
> > > > > to
> > > > > > > issue another request to check the status for completion.
> > > > > > >
> > > > > > > To support (a), we were thinking of doing request forwarding to
> > the
> > > > > > > controller (utilizing KAFKA-1912). I am making an alternative
> > > > proposal.
> > > > > > > Basically, the broker can just write to ZooKeeper to inform the
> > > > > controller
> > > > > > > about the request. For example, to handle
> partitionReassignment,
> > > the
> > > > > broker
> > > > > > > will just write the requested partitions to
> > > > /admin/reassign_partitions
> > > > > > > (like what AdminUtils currently does) and then send a response
> to
> > > the
> > > > > > > client. This shouldn't take long and the implementation will be
> > > > simpler
> > > > > > > than forwarding the requests to the controller through RPC.
> > > > > > >
> > > > > > > Thanks,
> > > > > > >
> > > > > > > Jun
> > > > > > >
> > > > > > >
> > > > > > > On Wed, Mar 18, 2015 at 3:03 PM, Andrii Biletskyi <
> > > > > > > andrii.bilets...@stealth.ly> wrote:
> > > > > > >
> > > > > > > > Jun,
> > > > > > > >
> > > > > > > > I might be wrong but didn't we agree we will let any broker
> > from
> > > > the
> > > > > > > > cluster handle *long-running* admin requests (at this time
> > > > > > > preferredReplica
> > > > > > > > and
> > > > > > > > reassignPartitions), via zk admin path. Thus CreateTopics etc
> > > > should
> > > > > be
> > > > > > > > sent
> > > > > > > > only to the controller.
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > > Andrii Biletskyi
> > > > > > > >
> > > > > > > > On Wed, Mar 18, 2015 at 11:55 PM, Jun Rao <j...@confluent.io>
> > > > wrote:
> > > > > > > >
> > > > > > > > > Joel, Andril,
> > > > > > > > >
> > > > > > > > > I think we agreed that those admin requests can be issued
> to
> > > any
> > > > > > > broker.
> > > > > > > > > Because of that, there doesn't seem to be a strong need to
> > know
> > > > the
> > > > > > > > > controller. So, perhaps we can proceed by not making any
> > change
> > > > to
> > > > > the
> > > > > > > > > format of TMR right now. When we start using create topic
> > > request
> > > > > in
> > > > > > > the
> > > > > > > > > producer, we will need a new version of TMR that doesn't
> > > trigger
> > > > > auto
> > > > > > > > topic
> > > > > > > > > creation. But that can be done later.
> > > > > > > > >
> > > > > > > > > As a first cut implementation, I think the broker can just
> > > write
> > > > > to ZK
> > > > > > > > > directly for
> > > > > > > > >
> > > > createToipic/alterTopic/reassignPartitions/preferredLeaderElection
> > > > > > > > > requests, instead of forwarding them to the controller.
> This
> > > will
> > > > > > > > simplify
> > > > > > > > > the implementation on the broker side.
> > > > > > > > >
> > > > > > > > > Thanks,
> > > > > > > > >
> > > > > > > > > Jun
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > On Wed, Mar 18, 2015 at 11:58 AM, Joel Koshy <
> > > > jjkosh...@gmail.com>
> > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > > (Thanks Andrii for the summary)
> > > > > > > > > >
> > > > > > > > > > For (1) yes we will circle back on that shortly after
> > syncing
> > > > up
> > > > > in
> > > > > > > > > > person. I think it is close to getting committed although
> > > > > development
> > > > > > > > > > for KAFKA-1927 can probably begin without it.
> > > > > > > > > >
> > > > > > > > > > There is one more item we covered at the hangout. i.e.,
> > > whether
> > > > > we
> > > > > > > > > > want to add the coordinator to the topic metadata
> response
> > or
> > > > > provide
> > > > > > > > > > a clearer ClusterMetadataRequest.
> > > > > > > > > >
> > > > > > > > > > There are two reasons I think we should try and avoid
> > adding
> > > > the
> > > > > > > > > > field:
> > > > > > > > > > - It is irrelevant to topic metadata
> > > > > > > > > > - If we finally do request rerouting in Kafka then the
> > field
> > > > > would
> > > > > > > add
> > > > > > > > > >   little to no value. (It still helps to have a separate
> > > > > > > > > >   ClusterMetadataRequest to query for cluster-wide
> > > information
> > > > > such
> > > > > > > as
> > > > > > > > > >   'which broker is the controller?' as Joe mentioned.)
> > > > > > > > > >
> > > > > > > > > > I think it would be cleaner to have an explicit
> > > > > > > ClusterMetadataRequest
> > > > > > > > > > that you can send to any broker in order to obtain the
> > > > controller
> > > > > > > (and
> > > > > > > > > > in the future possibly other cluster-wide information). I
> > > think
> > > > > the
> > > > > > > > > > main argument against doing this and instead adding it to
> > the
> > > > > topic
> > > > > > > > > > metadata response was convenience - i.e., you don't have
> to
> > > > > discover
> > > > > > > > > > the controller in advance. However, I don't see much
> actual
> > > > > > > > > > benefit/convenience in this and in fact think it is a
> > > > non-issue.
> > > > > Let
> > > > > > > > > > me know if I'm overlooking something here.
> > > > > > > > > >
> > > > > > > > > > As an example, say we need to initiate partition
> > reassignment
> > > > by
> > > > > > > > > > issuing the new ReassignPartitionsRequest to the
> controller
> > > > > (assume
> > > > > > > we
> > > > > > > > > > already have the desired manual partition assignment).
> If
> > we
> > > > > are to
> > > > > > > > > > augment topic metadata response then the flow be
> something
> > > like
> > > > > this
> > > > > > > :
> > > > > > > > > >
> > > > > > > > > > - Issue topic metadata request to any broker (and
> discover
> > > the
> > > > > > > > > >   controller
> > > > > > > > > > - Connect to controller if required (i.e., if the broker
> > > above
> > > > !=
> > > > > > > > > >   controller)
> > > > > > > > > > - Issue the partition reassignment request to the
> > controller.
> > > > > > > > > >
> > > > > > > > > > With an explicit cluster metadata request it would be:
> > > > > > > > > > - Issue cluster metadata request to any broker
> > > > > > > > > > - Connect to controller if required (i.e., if the broker
> > > above
> > > > !=
> > > > > > > > > >   controller)
> > > > > > > > > > - Issue the partition reassignment request
> > > > > > > > > >
> > > > > > > > > > So it seems to add little practical value and bloats
> topic
> > > > > metadata
> > > > > > > > > > response with an irrelevant detail.
> > > > > > > > > >
> > > > > > > > > > The other angle to this is the following - is it a matter
> > of
> > > > > naming?
> > > > > > > > > > Should we just rename topic metadata request/response to
> > just
> > > > > > > > > > MetadataRequest/Response and add cluster metadata to it?
> By
> > > > that
> > > > > same
> > > > > > > > > > token should we also allow querying for the consumer
> > > > coordinator
> > > > > (and
> > > > > > > > > > in future transaction coordinator) as well? This leads
> to a
> > > > > bloated
> > > > > > > > > > request which isn't very appealing and altogether
> > confusing.
> > > > > > > > > >
> > > > > > > > > > Thanks,
> > > > > > > > > >
> > > > > > > > > > Joel
> > > > > > > > > >
> > > > > > > > > > On Wed, Mar 18, 2015 at 09:34:12AM -0700, Jun Rao wrote:
> > > > > > > > > > > Andri,
> > > > > > > > > > >
> > > > > > > > > > > Thanks for the summary.
> > > > > > > > > > >
> > > > > > > > > > > 1. I just realized that in order to start working on
> > > > > KAFKA-1927, we
> > > > > > > > > will
> > > > > > > > > > > need to merge the changes to OffsetCommitRequest (from
> > > 0.8.2)
> > > > > to
> > > > > > > > trunk.
> > > > > > > > > > > This is planned to be done as part of KAFKA-1634. So,
> we
> > > will
> > > > > need
> > > > > > > > > > Guozhang
> > > > > > > > > > > and Joel's help to wrap this up.
> > > > > > > > > > >
> > > > > > > > > > > 2. Thinking about this a bit more, if the semantic of
> > those
> > > > > "write"
> > > > > > > > > > > requests is async (i.e., after the client gets a
> > response,
> > > it
> > > > > just
> > > > > > > > > means
> > > > > > > > > > > that the operation is initiated, but not necessarily
> > > > > completed), we
> > > > > > > > > don't
> > > > > > > > > > > really need to forward the requests to the controller.
> > > > > Instead, the
> > > > > > > > > > > receiving broker can just write the operation to ZK as
> > the
> > > > > admin
> > > > > > > > > command
> > > > > > > > > > > line tool previously does. This will simplify the
> > > > > implementation.
> > > > > > > > > > >
> > > > > > > > > > > 8. There is another implementation detail for describe
> > > topic.
> > > > > > > > Ideally,
> > > > > > > > > we
> > > > > > > > > > > want to read the topic config from the broker cache,
> > > instead
> > > > of
> > > > > > > > > > ZooKeeper.
> > > > > > > > > > > Currently, every broker reads the topic-level config
> for
> > > all
> > > > > > > topics.
> > > > > > > > > > > However, it ignores those for topics not hosted on
> > itself.
> > > > So,
> > > > > we
> > > > > > > may
> > > > > > > > > > need
> > > > > > > > > > > to change TopicConfigManager a bit so that it caches
> the
> > > > > configs
> > > > > > > for
> > > > > > > > > all
> > > > > > > > > > > topics.
> > > > > > > > > > >
> > > > > > > > > > > Thanks,
> > > > > > > > > > >
> > > > > > > > > > > Jun
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > On Tue, Mar 17, 2015 at 1:13 PM, Andrii Biletskyi <
> > > > > > > > > > > andrii.bilets...@stealth.ly> wrote:
> > > > > > > > > > >
> > > > > > > > > > > > Guys,
> > > > > > > > > > > >
> > > > > > > > > > > > Thanks for a great discussion!
> > > > > > > > > > > > Here are the actions points:
> > > > > > > > > > > >
> > > > > > > > > > > > 1. Q: Get rid of all scala requests objects, use java
> > > > > protocol
> > > > > > > > > > definitions.
> > > > > > > > > > > >     A: Gwen kindly took that (KAFKA-1927). It's
> > important
> > > > to
> > > > > > > speed
> > > > > > > > up
> > > > > > > > > > > > review procedure
> > > > > > > > > > > >          there since this ticket blocks other
> important
> > > > > changes.
> > > > > > > > > > > >
> > > > > > > > > > > > 2. Q: Generic re-reroute facility vs client
> maintaining
> > > > > cluster
> > > > > > > > > state.
> > > > > > > > > > > >     A: Jay has added pseudo code to KAFKA-1912 - need
> > to
> > > > > consider
> > > > > > > > > > whether
> > > > > > > > > > > > this will be
> > > > > > > > > > > >         easy to implement as a server-side feature
> > > > (comments
> > > > > are
> > > > > > > > > > > > welcomed!).
> > > > > > > > > > > >
> > > > > > > > > > > > 3. Q: Controller field in wire protocol.
> > > > > > > > > > > >     A: This might be useful for clients, add this to
> > > > > > > > > > TopicMetadataResponse
> > > > > > > > > > > > (already in KIP).
> > > > > > > > > > > >
> > > > > > > > > > > > 4. Q: Decoupling topic creation from TMR.
> > > > > > > > > > > >     A: I will add proposed by Jun solution (using
> > > clientId
> > > > > for
> > > > > > > > that)
> > > > > > > > > > to the
> > > > > > > > > > > > KIP.
> > > > > > > > > > > >
> > > > > > > > > > > > 5. Q: Bumping new versions of TMR vs grabbing all
> > > protocol
> > > > > > > changes
> > > > > > > > in
> > > > > > > > > > one
> > > > > > > > > > > > version.
> > > > > > > > > > > >     A: It was decided to try to gather all changes to
> > > > > protocol
> > > > > > > > > (before
> > > > > > > > > > > > release).
> > > > > > > > > > > >         In case of TMR it worth checking: KAFKA-2020
> > and
> > > > > KIP-13
> > > > > > > > > > (quotas)
> > > > > > > > > > > >
> > > > > > > > > > > > 6. Q: JSON lib is needed to deserialize user's input
> in
> > > CLI
> > > > > tool.
> > > > > > > > > > > >     A: Use jackson for that, /tools project is a
> > separate
> > > > > jar so
> > > > > > > > > > shouldn't
> > > > > > > > > > > > be a big deal.
> > > > > > > > > > > >
> > > > > > > > > > > > 7.  Q: VerifyReassingPartitions vs generic status
> check
> > > > > command.
> > > > > > > > > > > >      A: For long-running requests like reassign
> > > partitions
> > > > > > > > *progress*
> > > > > > > > > > check
> > > > > > > > > > > > request is useful,
> > > > > > > > > > > >          it makes sense to introduce it.
> > > > > > > > > > > >
> > > > > > > > > > > >  Please add, correct me if I missed something.
> > > > > > > > > > > >
> > > > > > > > > > > > Thanks,
> > > > > > > > > > > > Andrii Biletskyi
> > > > > > > > > > > >
> > > > > > > > > > > > On Tue, Mar 17, 2015 at 6:20 PM, Andrii Biletskyi <
> > > > > > > > > > > > andrii.bilets...@stealth.ly> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > > Joel,
> > > > > > > > > > > > >
> > > > > > > > > > > > > You are right, I removed ClusterMetadata because we
> > > have
> > > > > > > > partially
> > > > > > > > > > > > > what we need in TopicMetadata. Also, as Jay pointed
> > out
> > > > > > > earlier,
> > > > > > > > we
> > > > > > > > > > > > > would like to have "orthogonal" API, but at the
> same
> > > time
> > > > > we
> > > > > > > need
> > > > > > > > > > > > > to be backward compatible.
> > > > > > > > > > > > >
> > > > > > > > > > > > > But I like your idea and even have some other
> > arguments
> > > > for
> > > > > > > this
> > > > > > > > > > option:
> > > > > > > > > > > > > There is also DescribeTopicRequest which was
> proposed
> > > in
> > > > > this
> > > > > > > > KIP,
> > > > > > > > > > > > > it returns topic configs, partitions, replication
> > > factor
> > > > > plus
> > > > > > > > > > partition
> > > > > > > > > > > > > ISR, ASR,
> > > > > > > > > > > > > leader replica. The later part is really already
> > there
> > > in
> > > > > > > > > > > > > TopicMetadataRequest.
> > > > > > > > > > > > > So again we'll have to add stuff to TMR, not to
> > > duplicate
> > > > > some
> > > > > > > > info
> > > > > > > > > > in
> > > > > > > > > > > > > newly added requests. However, this way we'll end
> up
> > > with
> > > > > > > > "monster"
> > > > > > > > > > > > > request which returns cluster metadata, topic
> > > replication
> > > > > and
> > > > > > > > > config
> > > > > > > > > > info
> > > > > > > > > > > > > plus partition replication data. Seems logical to
> > split
> > > > > TMR to
> > > > > > > > > > > > > - ClusterMetadata (brokers + controller, maybe smth
> > > else)
> > > > > > > > > > > > > - TopicMetadata (topic info + partition details)
> > > > > > > > > > > > > But since current TMR is involved in lots of places
> > > > > (including
> > > > > > > > > > network
> > > > > > > > > > > > > client,
> > > > > > > > > > > > > as I understand) this might be very serious change
> > and
> > > it
> > > > > > > > probably
> > > > > > > > > > makes
> > > > > > > > > > > > > sense to stick with current approach.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Thanks,
> > > > > > > > > > > > > Andrii Biletskyi
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Tue, Mar 17, 2015 at 5:29 PM, Joel Koshy <
> > > > > > > jjkosh...@gmail.com
> > > > > > > > >
> > > > > > > > > > wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > >> I may be missing some context but hopefully this
> > will
> > > > > also be
> > > > > > > > > > covered
> > > > > > > > > > > > >> today: I thought the earlier proposal where there
> > was
> > > an
> > > > > > > > explicit
> > > > > > > > > > > > >> ClusterMetadata request was clearer and explicit.
> > > During
> > > > > the
> > > > > > > > > course
> > > > > > > > > > of
> > > > > > > > > > > > >> this thread I think the conclusion was that the
> main
> > > > need
> > > > > was
> > > > > > > > for
> > > > > > > > > > > > >> controller information and that can be rolled into
> > the
> > > > > topic
> > > > > > > > > > metadata
> > > > > > > > > > > > >> response but that seems a bit irrelevant to topic
> > > > > metadata.
> > > > > > > > FWIW I
> > > > > > > > > > > > >> think the full broker-list is also irrelevant to
> > topic
> > > > > > > metadata,
> > > > > > > > > but
> > > > > > > > > > > > >> it is already there and in use. I think there is
> > still
> > > > > room
> > > > > > > for
> > > > > > > > an
> > > > > > > > > > > > >> explicit ClusterMetadata request since there may
> be
> > > > other
> > > > > > > > > > > > >> cluster-level information that we may want to add
> > over
> > > > > time
> > > > > > > (and
> > > > > > > > > > that
> > > > > > > > > > > > >> have nothing to do with topic metadata).
> > > > > > > > > > > > >>
> > > > > > > > > > > > >> On Tue, Mar 17, 2015 at 02:45:30PM +0200, Andrii
> > > > Biletskyi
> > > > > > > > wrote:
> > > > > > > > > > > > >> > Jun,
> > > > > > > > > > > > >> >
> > > > > > > > > > > > >> > 101. Okay, if you say that such use case is
> > > > important. I
> > > > > > > also
> > > > > > > > > > think
> > > > > > > > > > > > >> > using clientId for these purposes is fine - if
> we
> > > > > already
> > > > > > > have
> > > > > > > > > > this
> > > > > > > > > > > > >> field
> > > > > > > > > > > > >> > as part of all Wire protocol messages, why not
> use
> > > > that.
> > > > > > > > > > > > >> > I will update KIP-4 page if nobody has other
> ideas
> > > > > (which
> > > > > > > may
> > > > > > > > > > come up
> > > > > > > > > > > > >> > during the call today).
> > > > > > > > > > > > >> >
> > > > > > > > > > > > >> > 102.1 Agree, I'll update the KIP accordingly. I
> > > think
> > > > > we can
> > > > > > > > add
> > > > > > > > > > new,
> > > > > > > > > > > > >> > fine-grained error codes if some error code
> > received
> > > > in
> > > > > > > > specific
> > > > > > > > > > case
> > > > > > > > > > > > >> > won't give enough context to return a
> descriptive
> > > > error
> > > > > > > > message
> > > > > > > > > > for
> > > > > > > > > > > > >> user.
> > > > > > > > > > > > >> >
> > > > > > > > > > > > >> > Look forward to discussing all outstanding
> issues
> > in
> > > > > detail
> > > > > > > > > today
> > > > > > > > > > > > during
> > > > > > > > > > > > >> > the call.
> > > > > > > > > > > > >> >
> > > > > > > > > > > > >> > Thanks,
> > > > > > > > > > > > >> > Andrii Biletskyi
> > > > > > > > > > > > >> >
> > > > > > > > > > > > >> >
> > > > > > > > > > > > >> >
> > > > > > > > > > > > >> > On Mon, Mar 16, 2015 at 10:59 PM, Jun Rao <
> > > > > j...@confluent.io
> > > > > > > >
> > > > > > > > > > wrote:
> > > > > > > > > > > > >> >
> > > > > > > > > > > > >> > > 101. There may be a use case where you only
> want
> > > the
> > > > > > > topics
> > > > > > > > to
> > > > > > > > > > be
> > > > > > > > > > > > >> created
> > > > > > > > > > > > >> > > manually by admins. Currently, you can do that
> > by
> > > > > > > disabling
> > > > > > > > > auto
> > > > > > > > > > > > topic
> > > > > > > > > > > > >> > > creation and issue topic creation from the
> > > > > TopicCommand.
> > > > > > > If
> > > > > > > > we
> > > > > > > > > > > > >> disable auto
> > > > > > > > > > > > >> > > topic creation completely on the broker and
> > don't
> > > > > have a
> > > > > > > way
> > > > > > > > > to
> > > > > > > > > > > > >> distinguish
> > > > > > > > > > > > >> > > between topic creation requests from the
> regular
> > > > > clients
> > > > > > > and
> > > > > > > > > the
> > > > > > > > > > > > >> admin, we
> > > > > > > > > > > > >> > > can't support manual topic creation any more.
> I
> > > was
> > > > > > > thinking
> > > > > > > > > > that
> > > > > > > > > > > > >> another
> > > > > > > > > > > > >> > > way of distinguishing the clients making the
> > topic
> > > > > > > creation
> > > > > > > > > > requests
> > > > > > > > > > > > >> is
> > > > > > > > > > > > >> > > using clientId. For example, the admin tool
> can
> > > set
> > > > > it to
> > > > > > > > > > something
> > > > > > > > > > > > >> like
> > > > > > > > > > > > >> > > admin and the broker can treat that clientId
> > > > > specially.
> > > > > > > > > > > > >> > >
> > > > > > > > > > > > >> > > Also, there is a related discussion in
> > KAFKA-2020.
> > > > > > > > Currently,
> > > > > > > > > > we do
> > > > > > > > > > > > >> the
> > > > > > > > > > > > >> > > following in TopicMetadataResponse:
> > > > > > > > > > > > >> > >
> > > > > > > > > > > > >> > > 1. If leader is not available, we set the
> > > partition
> > > > > level
> > > > > > > > > error
> > > > > > > > > > code
> > > > > > > > > > > > >> to
> > > > > > > > > > > > >> > > LeaderNotAvailable.
> > > > > > > > > > > > >> > > 2. If a non-leader replica is not available,
> we
> > > take
> > > > > that
> > > > > > > > > > replica
> > > > > > > > > > > > out
> > > > > > > > > > > > >> of
> > > > > > > > > > > > >> > > the assigned replica list and isr in the
> > response.
> > > > As
> > > > > an
> > > > > > > > > > indication
> > > > > > > > > > > > >> for
> > > > > > > > > > > > >> > > doing that, we set the partition level error
> > code
> > > to
> > > > > > > > > > > > >> ReplicaNotAvailable.
> > > > > > > > > > > > >> > >
> > > > > > > > > > > > >> > > This has a few problems. First,
> > > ReplicaNotAvailable
> > > > > > > probably
> > > > > > > > > > > > >> shouldn't be
> > > > > > > > > > > > >> > > an error, at least for the normal
> > > producer/consumer
> > > > > > > clients
> > > > > > > > > that
> > > > > > > > > > > > just
> > > > > > > > > > > > >> want
> > > > > > > > > > > > >> > > to find out the leader. Second, it can happen
> > that
> > > > > both
> > > > > > > the
> > > > > > > > > > leader
> > > > > > > > > > > > and
> > > > > > > > > > > > >> > > another replica are not available at the same
> > > time.
> > > > > There
> > > > > > > is
> > > > > > > > > no
> > > > > > > > > > > > error
> > > > > > > > > > > > >> code
> > > > > > > > > > > > >> > > to indicate both. Third, even if a replica is
> > not
> > > > > > > available,
> > > > > > > > > > it's
> > > > > > > > > > > > >> still
> > > > > > > > > > > > >> > > useful to return its replica id since some
> > clients
> > > > > (e.g.
> > > > > > > > admin
> > > > > > > > > > tool)
> > > > > > > > > > > > >> may
> > > > > > > > > > > > >> > > still make use of it.
> > > > > > > > > > > > >> > >
> > > > > > > > > > > > >> > > One way to address this issue is to always
> > return
> > > > the
> > > > > > > > replica
> > > > > > > > > > id for
> > > > > > > > > > > > >> > > leader, assigned replicas, and isr regardless
> of
> > > > > whether
> > > > > > > the
> > > > > > > > > > > > >> corresponding
> > > > > > > > > > > > >> > > broker is live or not. Since we also return
> the
> > > list
> > > > > of
> > > > > > > live
> > > > > > > > > > > > brokers,
> > > > > > > > > > > > >> the
> > > > > > > > > > > > >> > > client can figure out whether a leader or a
> > > replica
> > > > is
> > > > > > > live
> > > > > > > > or
> > > > > > > > > > not
> > > > > > > > > > > > >> and act
> > > > > > > > > > > > >> > > accordingly. This way, we don't need to set
> the
> > > > > partition
> > > > > > > > > level
> > > > > > > > > > > > error
> > > > > > > > > > > > >> code
> > > > > > > > > > > > >> > > when the leader or a replica is not available.
> > > This
> > > > > > > doesn't
> > > > > > > > > > change
> > > > > > > > > > > > >> the wire
> > > > > > > > > > > > >> > > protocol, but does change the semantics. Since
> > we
> > > > are
> > > > > > > > evolving
> > > > > > > > > > the
> > > > > > > > > > > > >> protocol
> > > > > > > > > > > > >> > > of TopicMetadataRequest here, we can
> potentially
> > > > > piggyback
> > > > > > > > the
> > > > > > > > > > > > change.
> > > > > > > > > > > > >> > >
> > > > > > > > > > > > >> > > 102.1 For those types of errors due to invalid
> > > > input,
> > > > > > > > > shouldn't
> > > > > > > > > > we
> > > > > > > > > > > > >> just
> > > > > > > > > > > > >> > > guard it at parameter validation time and
> throw
> > > > > > > > > > > > >> InvalidArgumentException
> > > > > > > > > > > > >> > > without even sending the request to the
> broker?
> > > > > > > > > > > > >> > >
> > > > > > > > > > > > >> > > Thanks,
> > > > > > > > > > > > >> > >
> > > > > > > > > > > > >> > > Jun
> > > > > > > > > > > > >> > >
> > > > > > > > > > > > >> > >
> > > > > > > > > > > > >> > > On Mon, Mar 16, 2015 at 10:37 AM, Andrii
> > > Biletskyi <
> > > > > > > > > > > > >> > > andrii.bilets...@stealth.ly> wrote:
> > > > > > > > > > > > >> > >
> > > > > > > > > > > > >> > > > Jun,
> > > > > > > > > > > > >> > > >
> > > > > > > > > > > > >> > > > Answering your questions:
> > > > > > > > > > > > >> > > >
> > > > > > > > > > > > >> > > > 101. If I understand you correctly, you are
> > > saying
> > > > > > > future
> > > > > > > > > > producer
> > > > > > > > > > > > >> > > versions
> > > > > > > > > > > > >> > > > (which
> > > > > > > > > > > > >> > > > will be ported to TMR_V1) won't be able to
> > > > > automatically
> > > > > > > > > > create
> > > > > > > > > > > > >> topic (if
> > > > > > > > > > > > >> > > > we
> > > > > > > > > > > > >> > > > unconditionally remove topic creation from
> > > there).
> > > > > But
> > > > > > > we
> > > > > > > > > > need to
> > > > > > > > > > > > >> this
> > > > > > > > > > > > >> > > > preserve logic.
> > > > > > > > > > > > >> > > > Ok, about your proposal: I'm not a big fan
> > too,
> > > > > when it
> > > > > > > > > comes
> > > > > > > > > > to
> > > > > > > > > > > > >> > > > differentiating
> > > > > > > > > > > > >> > > > clients directly in protocol schema. And
> also
> > > I'm
> > > > > not
> > > > > > > > sure I
> > > > > > > > > > > > >> understand
> > > > > > > > > > > > >> > > at
> > > > > > > > > > > > >> > > > all why
> > > > > > > > > > > > >> > > > auto.create.topics.enable is a server side
> > > > > > > configuration.
> > > > > > > > > Can
> > > > > > > > > > we
> > > > > > > > > > > > >> > > deprecate
> > > > > > > > > > > > >> > > > this setting
> > > > > > > > > > > > >> > > > in future versions, add this setting to
> > producer
> > > > and
> > > > > > > based
> > > > > > > > > on
> > > > > > > > > > that
> > > > > > > > > > > > >> upon
> > > > > > > > > > > > >> > > > receiving
> > > > > > > > > > > > >> > > > UnknownTopic create topic explicitly by a
> > > separate
> > > > > > > > producer
> > > > > > > > > > call
> > > > > > > > > > > > via
> > > > > > > > > > > > >> > > > adminClient?
> > > > > > > > > > > > >> > > >
> > > > > > > > > > > > >> > > > 102.1. Hm, yes. It's because we want to
> > support
> > > > > batching
> > > > > > > > and
> > > > > > > > > > at
> > > > > > > > > > > > the
> > > > > > > > > > > > >> same
> > > > > > > > > > > > >> > > > time we
> > > > > > > > > > > > >> > > > want to give descriptive error messages for
> > > > clients.
> > > > > > > Since
> > > > > > > > > > > > >> AdminClient
> > > > > > > > > > > > >> > > > holds the context
> > > > > > > > > > > > >> > > > to construct such messages (e.g. AdminClient
> > > layer
> > > > > can
> > > > > > > > know
> > > > > > > > > > that
> > > > > > > > > > > > >> > > > InvalidArgumentsCode
> > > > > > > > > > > > >> > > > means two cases: either invalid number -
> e.g.
> > > -1;
> > > > or
> > > > > > > > > > > > >> replication-factor
> > > > > > > > > > > > >> > > was
> > > > > > > > > > > > >> > > > provided while
> > > > > > > > > > > > >> > > > partitions argument wasn't) - I wrapped
> > > responses
> > > > in
> > > > > > > > > > Exceptions.
> > > > > > > > > > > > >> But I'm
> > > > > > > > > > > > >> > > > open to any
> > > > > > > > > > > > >> > > > other ideas, this was just initial version.
> > > > > > > > > > > > >> > > > 102.2. Yes, I agree. I'll change that to
> > > probably
> > > > > some
> > > > > > > > other
> > > > > > > > > > dto.
> > > > > > > > > > > > >> > > >
> > > > > > > > > > > > >> > > > Thanks,
> > > > > > > > > > > > >> > > > Andrii Biletskyi
> > > > > > > > > > > > >> > > >
> > > > > > > > > > > > >> > > > On Fri, Mar 13, 2015 at 7:16 PM, Jun Rao <
> > > > > > > > j...@confluent.io>
> > > > > > > > > > > > wrote:
> > > > > > > > > > > > >> > > >
> > > > > > > > > > > > >> > > > > Andrii,
> > > > > > > > > > > > >> > > > >
> > > > > > > > > > > > >> > > > > 101. That's what I was thinking too, but
> it
> > > may
> > > > > not be
> > > > > > > > > that
> > > > > > > > > > > > >> simple. In
> > > > > > > > > > > > >> > > > > TopicMetadataRequest_V1,
> > > > > > > > > > > > >> > > > > we can let it not trigger auto topic
> > creation.
> > > > > Then,
> > > > > > > in
> > > > > > > > > the
> > > > > > > > > > > > >> producer
> > > > > > > > > > > > >> > > > side,
> > > > > > > > > > > > >> > > > > if it gets an UnknownTopicException, it
> can
> > > > > explicitly
> > > > > > > > > > issue a
> > > > > > > > > > > > >> > > > > createTopicRequest for auto topic
> creation.
> > On
> > > > the
> > > > > > > > > consumer
> > > > > > > > > > > > side,
> > > > > > > > > > > > >> it
> > > > > > > > > > > > >> > > will
> > > > > > > > > > > > >> > > > > never issue createTopicRequest. This works
> > > when
> > > > > auto
> > > > > > > > topic
> > > > > > > > > > > > >> creation is
> > > > > > > > > > > > >> > > > > enabled on the broker side. However, I am
> > not
> > > > > sure how
> > > > > > > > > > things
> > > > > > > > > > > > >> will work
> > > > > > > > > > > > >> > > > > when auto topic creation is disabled on
> the
> > > > broker
> > > > > > > side.
> > > > > > > > > In
> > > > > > > > > > this
> > > > > > > > > > > > >> case,
> > > > > > > > > > > > >> > > we
> > > > > > > > > > > > >> > > > > want to have a way to manually create a
> > topic,
> > > > > > > > potentially
> > > > > > > > > > > > through
> > > > > > > > > > > > >> > > admin
> > > > > > > > > > > > >> > > > > commands. However, then we need a way to
> > > > > distinguish
> > > > > > > > > > > > >> createTopicRequest
> > > > > > > > > > > > >> > > > > issued from the producer clients and the
> > admin
> > > > > tools.
> > > > > > > > May
> > > > > > > > > > be we
> > > > > > > > > > > > >> can
> > > > > > > > > > > > >> > > add a
> > > > > > > > > > > > >> > > > > new field in createTopicRequest and set it
> > > > > differently
> > > > > > > > in
> > > > > > > > > > the
> > > > > > > > > > > > >> producer
> > > > > > > > > > > > >> > > > > client and the admin client. However, I am
> > not
> > > > > sure if
> > > > > > > > > > that's
> > > > > > > > > > > > the
> > > > > > > > > > > > >> best
> > > > > > > > > > > > >> > > > > approach.
> > > > > > > > > > > > >> > > > >
> > > > > > > > > > > > >> > > > > 2. Yes, refactoring existing requests is a
> > > > > non-trivial
> > > > > > > > > > amount of
> > > > > > > > > > > > >> work.
> > > > > > > > > > > > >> > > I
> > > > > > > > > > > > >> > > > > posted some comments in KAFKA-1927. We
> will
> > > > > probably
> > > > > > > > have
> > > > > > > > > > to fix
> > > > > > > > > > > > >> > > > KAFKA-1927
> > > > > > > > > > > > >> > > > > first, before adding the new logic in
> > > > KAFKA-1694.
> > > > > > > > > > Otherwise, the
> > > > > > > > > > > > >> > > changes
> > > > > > > > > > > > >> > > > > will be too big.
> > > > > > > > > > > > >> > > > >
> > > > > > > > > > > > >> > > > > 102. About the AdminClient:
> > > > > > > > > > > > >> > > > > 102.1. It's a bit weird that we return
> > > exception
> > > > > in
> > > > > > > the
> > > > > > > > > > api. It
> > > > > > > > > > > > >> seems
> > > > > > > > > > > > >> > > > that
> > > > > > > > > > > > >> > > > > we should either return error code or
> throw
> > an
> > > > > > > exception
> > > > > > > > > > when
> > > > > > > > > > > > >> getting
> > > > > > > > > > > > >> > > the
> > > > > > > > > > > > >> > > > > response state.
> > > > > > > > > > > > >> > > > > 102.2. We probably shouldn't explicitly
> use
> > > the
> > > > > > > request
> > > > > > > > > > object
> > > > > > > > > > > > in
> > > > > > > > > > > > >> the
> > > > > > > > > > > > >> > > > api.
> > > > > > > > > > > > >> > > > > Not every request evolution requires an
> api
> > > > > change.
> > > > > > > > > > > > >> > > > >
> > > > > > > > > > > > >> > > > > Thanks,
> > > > > > > > > > > > >> > > > >
> > > > > > > > > > > > >> > > > > Jun
> > > > > > > > > > > > >> > > > >
> > > > > > > > > > > > >> > > > >
> > > > > > > > > > > > >> > > > > On Fri, Mar 13, 2015 at 4:08 AM, Andrii
> > > > Biletskyi
> > > > > <
> > > > > > > > > > > > >> > > > > andrii.bilets...@stealth.ly> wrote:
> > > > > > > > > > > > >> > > > >
> > > > > > > > > > > > >> > > > > > Jun,
> > > > > > > > > > > > >> > > > > >
> > > > > > > > > > > > >> > > > > > Thanks for you comments. Answers inline:
> > > > > > > > > > > > >> > > > > >
> > > > > > > > > > > > >> > > > > > 100. There are a few fields such as
> > > > > > > ReplicaAssignment,
> > > > > > > > > > > > >> > > > > > > ReassignPartitionRequest,
> > > > > > > > > > > > >> > > > > > > and PartitionsSerialized that are
> > > > represented
> > > > > as a
> > > > > > > > > > string,
> > > > > > > > > > > > but
> > > > > > > > > > > > >> > > > contain
> > > > > > > > > > > > >> > > > > > > composite structures in json. Could we
> > > > flatten
> > > > > > > them
> > > > > > > > > out
> > > > > > > > > > > > >> directly in
> > > > > > > > > > > > >> > > > the
> > > > > > > > > > > > >> > > > > > > protocol definition as arrays/records?
> > > > > > > > > > > > >> > > > > >
> > > > > > > > > > > > >> > > > > >
> > > > > > > > > > > > >> > > > > > Yes, now with Admin Client this looks a
> > bit
> > > > > weird.
> > > > > > > My
> > > > > > > > > > initial
> > > > > > > > > > > > >> > > > motivation
> > > > > > > > > > > > >> > > > > > was:
> > > > > > > > > > > > >> > > > > > ReassignPartitionCommand accepts input
> in
> > > > json,
> > > > > we
> > > > > > > > want
> > > > > > > > > to
> > > > > > > > > > > > >> remain
> > > > > > > > > > > > >> > > > tools'
> > > > > > > > > > > > >> > > > > > interfaces unchanged, where possible.
> > > > > > > > > > > > >> > > > > > If we port it to deserialized format, in
> > CLI
> > > > > (/tools
> > > > > > > > > > project)
> > > > > > > > > > > > >> we will
> > > > > > > > > > > > >> > > > > have
> > > > > > > > > > > > >> > > > > > to add some
> > > > > > > > > > > > >> > > > > > json library since /tools is written in
> > java
> > > > and
> > > > > > > we'll
> > > > > > > > > > need to
> > > > > > > > > > > > >> > > > > deserialize
> > > > > > > > > > > > >> > > > > > json file
> > > > > > > > > > > > >> > > > > > provided by a user. Can we quickly agree
> > on
> > > > what
> > > > > > > this
> > > > > > > > > > library
> > > > > > > > > > > > >> should
> > > > > > > > > > > > >> > > be
> > > > > > > > > > > > >> > > > > > (Jackson, GSON, whatever)?
> > > > > > > > > > > > >> > > > > >
> > > > > > > > > > > > >> > > > > > 101. Does TopicMetadataRequest v1 still
> > > > trigger
> > > > > auto
> > > > > > > > > topic
> > > > > > > > > > > > >> creation?
> > > > > > > > > > > > >> > > > This
> > > > > > > > > > > > >> > > > > > > will be a bit weird now that we have a
> > > > > separate
> > > > > > > > topic
> > > > > > > > > > > > >> creation api.
> > > > > > > > > > > > >> > > > > Have
> > > > > > > > > > > > >> > > > > > > you thought about how the new
> > > > > createTopicRequest
> > > > > > > and
> > > > > > > > > > > > >> > > > > TopicMetadataRequest
> > > > > > > > > > > > >> > > > > > > v1 will be used in the
> producer/consumer
> > > > > client,
> > > > > > > in
> > > > > > > > > > addition
> > > > > > > > > > > > >> to
> > > > > > > > > > > > >> > > admin
> > > > > > > > > > > > >> > > > > > > tools? For example, ideally, we don't
> > want
> > > > > > > > > > > > >> TopicMetadataRequest
> > > > > > > > > > > > >> > > from
> > > > > > > > > > > > >> > > > > the
> > > > > > > > > > > > >> > > > > > > consumer to trigger auto topic
> creation.
> > > > > > > > > > > > >> > > > > >
> > > > > > > > > > > > >> > > > > >
> > > > > > > > > > > > >> > > > > > I agree, this strange logic should be
> > fixed.
> > > > > I'm not
> > > > > > > > > > confident
> > > > > > > > > > > > >> in
> > > > > > > > > > > > >> > > this
> > > > > > > > > > > > >> > > > > > Kafka part so
> > > > > > > > > > > > >> > > > > > correct me if I'm wrong, but it doesn't
> > look
> > > > > like a
> > > > > > > > hard
> > > > > > > > > > thing
> > > > > > > > > > > > >> to
> > > > > > > > > > > > >> > > do, I
> > > > > > > > > > > > >> > > > > > think we can
> > > > > > > > > > > > >> > > > > > leverage AdminClient for that in
> Producer
> > > and
> > > > > > > > > > unconditionally
> > > > > > > > > > > > >> remove
> > > > > > > > > > > > >> > > > > topic
> > > > > > > > > > > > >> > > > > > creation from the
> TopicMetadataRequest_V1.
> > > > > > > > > > > > >> > > > > >
> > > > > > > > > > > > >> > > > > > 2. I think Jay meant getting rid of
> scala
> > > > > classes
> > > > > > > > > > > > >> > > > > > > like HeartbeatRequestAndHeader and
> > > > > > > > > > > > >> HeartbeatResponseAndHeader. We
> > > > > > > > > > > > >> > > did
> > > > > > > > > > > > >> > > > > > that
> > > > > > > > > > > > >> > > > > > > as a stop-gap thing when adding the
> new
> > > > > requests
> > > > > > > for
> > > > > > > > > the
> > > > > > > > > > > > >> consumers.
> > > > > > > > > > > > >> > > > > > > However, the long term plan is to get
> > rid
> > > of
> > > > > all
> > > > > > > > those
> > > > > > > > > > and
> > > > > > > > > > > > >> just
> > > > > > > > > > > > >> > > reuse
> > > > > > > > > > > > >> > > > > the
> > > > > > > > > > > > >> > > > > > > java request/response in the client.
> > Since
> > > > > this
> > > > > > > KIP
> > > > > > > > > > proposes
> > > > > > > > > > > > >> to
> > > > > > > > > > > > >> > > add a
> > > > > > > > > > > > >> > > > > > > significant number of new requests,
> > > perhaps
> > > > we
> > > > > > > > should
> > > > > > > > > > bite
> > > > > > > > > > > > the
> > > > > > > > > > > > >> > > bullet
> > > > > > > > > > > > >> > > > > to
> > > > > > > > > > > > >> > > > > > > clean up the existing scala requests
> > first
> > > > > before
> > > > > > > > > > adding new
> > > > > > > > > > > > >> ones?
> > > > > > > > > > > > >> > > > > > >
> > > > > > > > > > > > >> > > > > >
> > > > > > > > > > > > >> > > > > > Yes, looks like I misunderstood the
> point
> > of
> > > > > > > > > > > > >> ...RequestAndHeader.
> > > > > > > > > > > > >> > > > Okay, I
> > > > > > > > > > > > >> > > > > > will
> > > > > > > > > > > > >> > > > > > rework that. The only thing is that I
> > don't
> > > > see
> > > > > any
> > > > > > > > > > example
> > > > > > > > > > > > how
> > > > > > > > > > > > >> it
> > > > > > > > > > > > >> > > was
> > > > > > > > > > > > >> > > > > done
> > > > > > > > > > > > >> > > > > > for at
> > > > > > > > > > > > >> > > > > > least one existing protocol message.
> Thus,
> > > as
> > > > I
> > > > > > > > > > understand, I
> > > > > > > > > > > > >> have to
> > > > > > > > > > > > >> > > > > think
> > > > > > > > > > > > >> > > > > > how we
> > > > > > > > > > > > >> > > > > > are going to do it.
> > > > > > > > > > > > >> > > > > > Re porting all existing RQ/RP in this
> > patch.
> > > > > Sounds
> > > > > > > > > > > > reasonable,
> > > > > > > > > > > > >> but
> > > > > > > > > > > > >> > > if
> > > > > > > > > > > > >> > > > > it's
> > > > > > > > > > > > >> > > > > > an *obligatory*
> > > > > > > > > > > > >> > > > > > requirement to have Admin KIP done, I'm
> > > afraid
> > > > > this
> > > > > > > > can
> > > > > > > > > > be a
> > > > > > > > > > > > >> serious
> > > > > > > > > > > > >> > > > > > blocker for us.
> > > > > > > > > > > > >> > > > > > There are 13 protocol messages and all
> > that
> > > > > would
> > > > > > > > > require
> > > > > > > > > > not
> > > > > > > > > > > > >> only
> > > > > > > > > > > > >> > > unit
> > > > > > > > > > > > >> > > > > > tests but quite
> > > > > > > > > > > > >> > > > > > intensive manual testing, no? I'm afraid
> > I'm
> > > > > not the
> > > > > > > > > > right guy
> > > > > > > > > > > > >> to
> > > > > > > > > > > > >> > > cover
> > > > > > > > > > > > >> > > > > > pretty much all
> > > > > > > > > > > > >> > > > > > Kafka core internals :). Let me know
> your
> > > > > thoughts
> > > > > > > on
> > > > > > > > > this
> > > > > > > > > > > > >> item. Btw
> > > > > > > > > > > > >> > > > > there
> > > > > > > > > > > > >> > > > > > is a ticket to
> > > > > > > > > > > > >> > > > > > follow-up this issue (
> > > > > > > > > > > > >> > >
> > https://issues.apache.org/jira/browse/KAFKA-2006
> > > > > > > > > > > > >> > > > ).
> > > > > > > > > > > > >> > > > > >
> > > > > > > > > > > > >> > > > > > Thanks,
> > > > > > > > > > > > >> > > > > > Andrii Biletskyi
> > > > > > > > > > > > >> > > > > >
> > > > > > > > > > > > >> > > > > >
> > > > > > > > > > > > >> > > > > > On Fri, Mar 13, 2015 at 6:40 AM, Jun
> Rao <
> > > > > > > > > > j...@confluent.io>
> > > > > > > > > > > > >> wrote:
> > > > > > > > > > > > >> > > > > >
> > > > > > > > > > > > >> > > > > > > Andrii,
> > > > > > > > > > > > >> > > > > > >
> > > > > > > > > > > > >> > > > > > >
> > > > > > > > > > > > >> > > > > > > A few more comments.
> > > > > > > > > > > > >> > > > > > >
> > > > > > > > > > > > >> > > > > > > 100. There are a few fields such as
> > > > > > > > ReplicaAssignment,
> > > > > > > > > > > > >> > > > > > > ReassignPartitionRequest,
> > > > > > > > > > > > >> > > > > > > and PartitionsSerialized that are
> > > > represented
> > > > > as a
> > > > > > > > > > string,
> > > > > > > > > > > > but
> > > > > > > > > > > > >> > > > contain
> > > > > > > > > > > > >> > > > > > > composite structures in json. Could we
> > > > flatten
> > > > > > > them
> > > > > > > > > out
> > > > > > > > > > > > >> directly in
> > > > > > > > > > > > >> > > > the
> > > > > > > > > > > > >> > > > > > > protocol definition as arrays/records?
> > > > > > > > > > > > >> > > > > > >
> > > > > > > > > > > > >> > > > > > > 101. Does TopicMetadataRequest v1
> still
> > > > > trigger
> > > > > > > auto
> > > > > > > > > > topic
> > > > > > > > > > > > >> > > creation?
> > > > > > > > > > > > >> > > > > This
> > > > > > > > > > > > >> > > > > > > will be a bit weird now that we have a
> > > > > separate
> > > > > > > > topic
> > > > > > > > > > > > >> creation api.
> > > > > > > > > > > > >> > > > > Have
> > > > > > > > > > > > >> > > > > > > you thought about how the new
> > > > > createTopicRequest
> > > > > > > and
> > > > > > > > > > > > >> > > > > TopicMetadataRequest
> > > > > > > > > > > > >> > > > > > > v1 will be used in the
> producer/consumer
> > > > > client,
> > > > > > > in
> > > > > > > > > > addition
> > > > > > > > > > > > >> to
> > > > > > > > > > > > >> > > admin
> > > > > > > > > > > > >> > > > > > > tools? For example, ideally, we don't
> > want
> > > > > > > > > > > > >> TopicMetadataRequest
> > > > > > > > > > > > >> > > from
> > > > > > > > > > > > >> > > > > the
> > > > > > > > > > > > >> > > > > > > consumer to trigger auto topic
> creation.
> > > > > > > > > > > > >> > > > > > >
> > > > > > > > > > > > >> > > > > > > 2. I think Jay meant getting rid of
> > scala
> > > > > classes
> > > > > > > > > > > > >> > > > > > > like HeartbeatRequestAndHeader and
> > > > > > > > > > > > >> HeartbeatResponseAndHeader. We
> > > > > > > > > > > > >> > > did
> > > > > > > > > > > > >> > > > > > that
> > > > > > > > > > > > >> > > > > > > as a stop-gap thing when adding the
> new
> > > > > requests
> > > > > > > for
> > > > > > > > > the
> > > > > > > > > > > > >> consumers.
> > > > > > > > > > > > >> > > > > > > However, the long term plan is to get
> > rid
> > > of
> > > > > all
> > > > > > > > those
> > > > > > > > > > and
> > > > > > > > > > > > >> just
> > > > > > > > > > > > >> > > reuse
> > > > > > > > > > > > >> > > > > the
> > > > > > > > > > > > >> > > > > > > java request/response in the client.
> > Since
> > > > > this
> > > > > > > KIP
> > > > > > > > > > proposes
> > > > > > > > > > > > >> to
> > > > > > > > > > > > >> > > add a
> > > > > > > > > > > > >> > > > > > > significant number of new requests,
> > > perhaps
> > > > we
> > > > > > > > should
> > > > > > > > > > bite
> > > > > > > > > > > > the
> > > > > > > > > > > > >> > > bullet
> > > > > > > > > > > > >> > > > > to
> > > > > > > > > > > > >> > > > > > > clean up the existing scala requests
> > first
> > > > > before
> > > > > > > > > > adding new
> > > > > > > > > > > > >> ones?
> > > > > > > > > > > > >> > > > > > >
> > > > > > > > > > > > >> > > > > > > Thanks,
> > > > > > > > > > > > >> > > > > > >
> > > > > > > > > > > > >> > > > > > > Jun
> > > > > > > > > > > > >> > > > > > >
> > > > > > > > > > > > >> > > > > > >
> > > > > > > > > > > > >> > > > > > >
> > > > > > > > > > > > >> > > > > > > On Thu, Mar 12, 2015 at 3:37 PM,
> Andrii
> > > > > Biletskyi
> > > > > > > <
> > > > > > > > > > > > >> > > > > > > andrii.bilets...@stealth.ly> wrote:
> > > > > > > > > > > > >> > > > > > >
> > > > > > > > > > > > >> > > > > > > > Hi,
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > As said above - I list again all
> > > comments
> > > > > from
> > > > > > > > this
> > > > > > > > > > thread
> > > > > > > > > > > > >> so we
> > > > > > > > > > > > >> > > > > > > > can see what's left and finalize all
> > > > pending
> > > > > > > > issues.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > Comments from Jay:
> > > > > > > > > > > > >> > > > > > > > 1. This is much needed
> functionality,
> > > but
> > > > > there
> > > > > > > > are
> > > > > > > > > a
> > > > > > > > > > lot
> > > > > > > > > > > > >> of the
> > > > > > > > > > > > >> > > so
> > > > > > > > > > > > >> > > > > > let's
> > > > > > > > > > > > >> > > > > > > > really think these protocols
> through.
> > We
> > > > > really
> > > > > > > > want
> > > > > > > > > > to
> > > > > > > > > > > > end
> > > > > > > > > > > > >> up
> > > > > > > > > > > > >> > > > with a
> > > > > > > > > > > > >> > > > > > set
> > > > > > > > > > > > >> > > > > > > > of well thought-out, orthoganol
> apis.
> > > For
> > > > > this
> > > > > > > > > reason
> > > > > > > > > > I
> > > > > > > > > > > > >> think it
> > > > > > > > > > > > >> > > is
> > > > > > > > > > > > >> > > > > > > really
> > > > > > > > > > > > >> > > > > > > > important to think through the end
> > state
> > > > > even if
> > > > > > > > > that
> > > > > > > > > > > > >> includes
> > > > > > > > > > > > >> > > APIs
> > > > > > > > > > > > >> > > > > we
> > > > > > > > > > > > >> > > > > > > > won't implement in the first phase.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > A: Definitely behind this. Would
> > > > appreciate
> > > > > if
> > > > > > > > there
> > > > > > > > > > are
> > > > > > > > > > > > >> concrete
> > > > > > > > > > > > >> > > > > > > comments
> > > > > > > > > > > > >> > > > > > > > how this can be improved.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > 2. Let's please please please wait
> > until
> > > > we
> > > > > have
> > > > > > > > > > switched
> > > > > > > > > > > > >> the
> > > > > > > > > > > > >> > > > server
> > > > > > > > > > > > >> > > > > > over
> > > > > > > > > > > > >> > > > > > > > to the new java protocol
> definitions.
> > If
> > > > we
> > > > > add
> > > > > > > > > upteen
> > > > > > > > > > > > more
> > > > > > > > > > > > >> ad
> > > > > > > > > > > > >> > > hoc
> > > > > > > > > > > > >> > > > > > scala
> > > > > > > > > > > > >> > > > > > > > objects that is just generating more
> > > work
> > > > > for
> > > > > > > the
> > > > > > > > > > > > >> conversion we
> > > > > > > > > > > > >> > > > know
> > > > > > > > > > > > >> > > > > we
> > > > > > > > > > > > >> > > > > > > > have to do.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > A: Fixed in the latest patch -
> removed
> > > > scala
> > > > > > > > > protocol
> > > > > > > > > > > > >> classes.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > 3. This proposal introduces a new
> type
> > > of
> > > > > > > optional
> > > > > > > > > > > > >> parameter.
> > > > > > > > > > > > >> > > This
> > > > > > > > > > > > >> > > > is
> > > > > > > > > > > > >> > > > > > > > inconsistent with everything else in
> > the
> > > > > > > protocol
> > > > > > > > > > where we
> > > > > > > > > > > > >> use -1
> > > > > > > > > > > > >> > > > or
> > > > > > > > > > > > >> > > > > > some
> > > > > > > > > > > > >> > > > > > > > other marker value. You could argue
> > > either
> > > > > way
> > > > > > > but
> > > > > > > > > > let's
> > > > > > > > > > > > >> stick
> > > > > > > > > > > > >> > > with
> > > > > > > > > > > > >> > > > > > that
> > > > > > > > > > > > >> > > > > > > > for consistency. For clients that
> > > > > implemented
> > > > > > > the
> > > > > > > > > > protocol
> > > > > > > > > > > > >> in a
> > > > > > > > > > > > >> > > > > better
> > > > > > > > > > > > >> > > > > > > way
> > > > > > > > > > > > >> > > > > > > > than our scala code these basic
> > > primitives
> > > > > are
> > > > > > > > hard
> > > > > > > > > to
> > > > > > > > > > > > >> change.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > A: Fixed in the latest patch -
> removed
> > > > > MaybeOf
> > > > > > > > type
> > > > > > > > > > and
> > > > > > > > > > > > >> changed
> > > > > > > > > > > > >> > > > > > protocol
> > > > > > > > > > > > >> > > > > > > > accordingly.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > 4. ClusterMetadata: This seems to
> > > > duplicate
> > > > > > > > > > > > >> TopicMetadataRequest
> > > > > > > > > > > > >> > > > > which
> > > > > > > > > > > > >> > > > > > > has
> > > > > > > > > > > > >> > > > > > > > brokers, topics, and partitions. I
> > think
> > > > we
> > > > > > > should
> > > > > > > > > > rename
> > > > > > > > > > > > >> that
> > > > > > > > > > > > >> > > > > request
> > > > > > > > > > > > >> > > > > > > > ClusterMetadataRequest (or just
> > > > > MetadataRequest)
> > > > > > > > and
> > > > > > > > > > > > >> include the
> > > > > > > > > > > > >> > > id
> > > > > > > > > > > > >> > > > > of
> > > > > > > > > > > > >> > > > > > > the
> > > > > > > > > > > > >> > > > > > > > controller. Or are there other
> things
> > we
> > > > > could
> > > > > > > add
> > > > > > > > > > here?
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > A: I agree. Updated the KIP. Let's
> > > extends
> > > > > > > > > > TopicMetadata
> > > > > > > > > > > > to
> > > > > > > > > > > > >> > > > version 2
> > > > > > > > > > > > >> > > > > > and
> > > > > > > > > > > > >> > > > > > > > include controller.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > 5. We have a tendency to try to
> make a
> > > lot
> > > > > of
> > > > > > > > > requests
> > > > > > > > > > > > that
> > > > > > > > > > > > >> can
> > > > > > > > > > > > >> > > > only
> > > > > > > > > > > > >> > > > > go
> > > > > > > > > > > > >> > > > > > > to
> > > > > > > > > > > > >> > > > > > > > particular nodes. This adds a lot of
> > > > burden
> > > > > for
> > > > > > > > > client
> > > > > > > > > > > > >> > > > > implementations
> > > > > > > > > > > > >> > > > > > > (it
> > > > > > > > > > > > >> > > > > > > > sounds easy but each discovery can
> > fail
> > > in
> > > > > many
> > > > > > > > > parts
> > > > > > > > > > so
> > > > > > > > > > > > it
> > > > > > > > > > > > >> ends
> > > > > > > > > > > > >> > > up
> > > > > > > > > > > > >> > > > > > > being a
> > > > > > > > > > > > >> > > > > > > > full state machine to do right). I
> > think
> > > > we
> > > > > > > should
> > > > > > > > > > > > consider
> > > > > > > > > > > > >> > > making
> > > > > > > > > > > > >> > > > > > admin
> > > > > > > > > > > > >> > > > > > > > commands and ideally as many of the
> > > other
> > > > > apis
> > > > > > > as
> > > > > > > > > > possible
> > > > > > > > > > > > >> > > > available
> > > > > > > > > > > > >> > > > > on
> > > > > > > > > > > > >> > > > > > > all
> > > > > > > > > > > > >> > > > > > > > brokers and just redirect to the
> > > > controller
> > > > > on
> > > > > > > the
> > > > > > > > > > broker
> > > > > > > > > > > > >> side.
> > > > > > > > > > > > >> > > > > Perhaps
> > > > > > > > > > > > >> > > > > > > > there would be a general way to
> > > > encapsulate
> > > > > this
> > > > > > > > > > > > re-routing
> > > > > > > > > > > > >> > > > behavior.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > A: It's a very interesting idea, but
> > > seems
> > > > > there
> > > > > > > > are
> > > > > > > > > > some
> > > > > > > > > > > > >> > > concerns
> > > > > > > > > > > > >> > > > > > about
> > > > > > > > > > > > >> > > > > > > > this
> > > > > > > > > > > > >> > > > > > > > feature (like performance
> > > considerations,
> > > > > how
> > > > > > > this
> > > > > > > > > > will
> > > > > > > > > > > > >> > > complicate
> > > > > > > > > > > > >> > > > > > server
> > > > > > > > > > > > >> > > > > > > > etc).
> > > > > > > > > > > > >> > > > > > > > I believe this shouldn't be a
> blocker.
> > > If
> > > > > this
> > > > > > > > > > feature is
> > > > > > > > > > > > >> > > > implemented
> > > > > > > > > > > > >> > > > > > at
> > > > > > > > > > > > >> > > > > > > > some
> > > > > > > > > > > > >> > > > > > > > point it won't affect Admin changes
> -
> > at
> > > > > least
> > > > > > > no
> > > > > > > > > > changes
> > > > > > > > > > > > to
> > > > > > > > > > > > >> > > public
> > > > > > > > > > > > >> > > > > API
> > > > > > > > > > > > >> > > > > > > > will be required.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > 6. We should probably normalize the
> > key
> > > > > value
> > > > > > > > pairs
> > > > > > > > > > used
> > > > > > > > > > > > for
> > > > > > > > > > > > >> > > > configs
> > > > > > > > > > > > >> > > > > > > rather
> > > > > > > > > > > > >> > > > > > > > than embedding a new formatting. So
> > two
> > > > > strings
> > > > > > > > > rather
> > > > > > > > > > > > than
> > > > > > > > > > > > >> one
> > > > > > > > > > > > >> > > > with
> > > > > > > > > > > > >> > > > > an
> > > > > > > > > > > > >> > > > > > > > internal equals sign.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > A: Fixed in the latest patch -
> > > normalized
> > > > > > > configs
> > > > > > > > > and
> > > > > > > > > > > > >> changed
> > > > > > > > > > > > >> > > > > protocol
> > > > > > > > > > > > >> > > > > > > > accordingly.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > 7. Is the postcondition of these
> APIs
> > > that
> > > > > the
> > > > > > > > > > command has
> > > > > > > > > > > > >> begun
> > > > > > > > > > > > >> > > or
> > > > > > > > > > > > >> > > > > > that
> > > > > > > > > > > > >> > > > > > > > the command has been completed? It
> is
> > a
> > > > lot
> > > > > more
> > > > > > > > > > usable if
> > > > > > > > > > > > >> the
> > > > > > > > > > > > >> > > > > command
> > > > > > > > > > > > >> > > > > > > has
> > > > > > > > > > > > >> > > > > > > > been completed so you know that if
> you
> > > > > create a
> > > > > > > > > topic
> > > > > > > > > > and
> > > > > > > > > > > > >> then
> > > > > > > > > > > > >> > > > > publish
> > > > > > > > > > > > >> > > > > > to
> > > > > > > > > > > > >> > > > > > > > it you won't get an exception about
> > > there
> > > > > being
> > > > > > > no
> > > > > > > > > > such
> > > > > > > > > > > > >> topic.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > A: For long running requests (like
> > > > reassign
> > > > > > > > > > partitions) -
> > > > > > > > > > > > >> the
> > > > > > > > > > > > >> > > post
> > > > > > > > > > > > >> > > > > > > > condition is
> > > > > > > > > > > > >> > > > > > > > command has begun - so we don't
> block
> > > the
> > > > > > > client.
> > > > > > > > In
> > > > > > > > > > case
> > > > > > > > > > > > >> of your
> > > > > > > > > > > > >> > > > > > > example -
> > > > > > > > > > > > >> > > > > > > > topic commands, this will be
> > refactored
> > > > and
> > > > > > > topic
> > > > > > > > > > commands
> > > > > > > > > > > > >> will
> > > > > > > > > > > > >> > > be
> > > > > > > > > > > > >> > > > > > > executed
> > > > > > > > > > > > >> > > > > > > > immediately, since the Controller
> will
> > > > serve
> > > > > > > Admin
> > > > > > > > > > > > requests
> > > > > > > > > > > > >> > > > > > > > (follow-up ticket KAFKA-1777).
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > 8. Describe topic and list topics
> > > > duplicate
> > > > > a
> > > > > > > lot
> > > > > > > > of
> > > > > > > > > > stuff
> > > > > > > > > > > > >> in the
> > > > > > > > > > > > >> > > > > > > metadata
> > > > > > > > > > > > >> > > > > > > > request. Is there a reason to give
> > back
> > > > > topics
> > > > > > > > > marked
> > > > > > > > > > for
> > > > > > > > > > > > >> > > > deletion? I
> > > > > > > > > > > > >> > > > > > > feel
> > > > > > > > > > > > >> > > > > > > > like if we just make the
> > post-condition
> > > of
> > > > > the
> > > > > > > > > delete
> > > > > > > > > > > > >> command be
> > > > > > > > > > > > >> > > > that
> > > > > > > > > > > > >> > > > > > the
> > > > > > > > > > > > >> > > > > > > > topic is deleted that will get rid
> of
> > > the
> > > > > need
> > > > > > > for
> > > > > > > > > > this
> > > > > > > > > > > > >> right?
> > > > > > > > > > > > >> > > And
> > > > > > > > > > > > >> > > > it
> > > > > > > > > > > > >> > > > > > > will
> > > > > > > > > > > > >> > > > > > > > be much more intuitive.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > A: Fixed in the latest patch -
> removed
> > > > > topics
> > > > > > > > marked
> > > > > > > > > > for
> > > > > > > > > > > > >> deletion
> > > > > > > > > > > > >> > > > in
> > > > > > > > > > > > >> > > > > > > > ListTopicsRequest.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > 9. Should we consider batching these
> > > > > requests?
> > > > > > > We
> > > > > > > > > have
> > > > > > > > > > > > >> generally
> > > > > > > > > > > > >> > > > > tried
> > > > > > > > > > > > >> > > > > > to
> > > > > > > > > > > > >> > > > > > > > allow multiple operations to be
> > batched.
> > > > My
> > > > > > > > > suspicion
> > > > > > > > > > is
> > > > > > > > > > > > >> that
> > > > > > > > > > > > >> > > > without
> > > > > > > > > > > > >> > > > > > > this
> > > > > > > > > > > > >> > > > > > > > we will get a lot of code that does
> > > > > something
> > > > > > > like
> > > > > > > > > > > > >> > > > > > > >    for(topic:
> > adminClient.listTopics())
> > > > > > > > > > > > >> > > > > > > >
>  adminClient.describeTopic(topic)
> > > > > > > > > > > > >> > > > > > > > this code will work great when you
> > test
> > > > on 5
> > > > > > > > topics
> > > > > > > > > > but
> > > > > > > > > > > > not
> > > > > > > > > > > > >> do as
> > > > > > > > > > > > >> > > > > well
> > > > > > > > > > > > >> > > > > > if
> > > > > > > > > > > > >> > > > > > > > you have 50k.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > A: Updated the KIP - please check
> > "Topic
> > > > > Admin
> > > > > > > > > Schema"
> > > > > > > > > > > > >> section.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > 10. I think we should also discuss
> how
> > > we
> > > > > want
> > > > > > > to
> > > > > > > > > > expose a
> > > > > > > > > > > > >> > > > > programmatic
> > > > > > > > > > > > >> > > > > > > JVM
> > > > > > > > > > > > >> > > > > > > > client api for these operations.
> > > Currently
> > > > > > > people
> > > > > > > > > > rely on
> > > > > > > > > > > > >> > > > AdminUtils
> > > > > > > > > > > > >> > > > > > > which
> > > > > > > > > > > > >> > > > > > > > is totally sketchy. I think we
> > probably
> > > > need
> > > > > > > > another
> > > > > > > > > > > > client
> > > > > > > > > > > > >> under
> > > > > > > > > > > > >> > > > > > > clients/
> > > > > > > > > > > > >> > > > > > > > that exposes administrative
> > > functionality.
> > > > > We
> > > > > > > will
> > > > > > > > > > need
> > > > > > > > > > > > >> this just
> > > > > > > > > > > > >> > > > to
> > > > > > > > > > > > >> > > > > > > > properly test the new apis, I
> suspect.
> > > We
> > > > > should
> > > > > > > > > > figure
> > > > > > > > > > > > out
> > > > > > > > > > > > >> that
> > > > > > > > > > > > >> > > > API.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > A: Updated the KIP - please check
> > "Admin
> > > > > Client"
> > > > > > > > > > section
> > > > > > > > > > > > >> with an
> > > > > > > > > > > > >> > > > > > initial
> > > > > > > > > > > > >> > > > > > > > API proposal.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > 11. The other information that would
> > be
> > > > > really
> > > > > > > > > useful
> > > > > > > > > > to
> > > > > > > > > > > > get
> > > > > > > > > > > > >> > > would
> > > > > > > > > > > > >> > > > be
> > > > > > > > > > > > >> > > > > > > > information about partitions--how
> much
> > > > data
> > > > > is
> > > > > > > in
> > > > > > > > > the
> > > > > > > > > > > > >> partition,
> > > > > > > > > > > > >> > > > what
> > > > > > > > > > > > >> > > > > > are
> > > > > > > > > > > > >> > > > > > > > the segment offsets, what is the
> > log-end
> > > > > offset
> > > > > > > > > (i.e.
> > > > > > > > > > last
> > > > > > > > > > > > >> > > offset),
> > > > > > > > > > > > >> > > > > > what
> > > > > > > > > > > > >> > > > > > > is
> > > > > > > > > > > > >> > > > > > > > the compaction point, etc. I think
> > that
> > > > done
> > > > > > > right
> > > > > > > > > > this
> > > > > > > > > > > > >> would be
> > > > > > > > > > > > >> > > > the
> > > > > > > > > > > > >> > > > > > > > successor to the very awkward
> > > > OffsetRequest
> > > > > we
> > > > > > > > have
> > > > > > > > > > today.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > A: I removed
> > ConsumerGroupOffsetsRequest
> > > > in
> > > > > the
> > > > > > > > > latest
> > > > > > > > > > > > >> patch. I
> > > > > > > > > > > > >> > > > > believe
> > > > > > > > > > > > >> > > > > > > > this should
> > > > > > > > > > > > >> > > > > > > > be resolved in a separate KIP / jira
> > > > ticket.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > 12. Generally we can do good error
> > > > handling
> > > > > > > > without
> > > > > > > > > > > > needing
> > > > > > > > > > > > >> > > custom
> > > > > > > > > > > > >> > > > > > > > server-side
> > > > > > > > > > > > >> > > > > > > > messages. I.e. generally the client
> > has
> > > > the
> > > > > > > > context
> > > > > > > > > to
> > > > > > > > > > > > know
> > > > > > > > > > > > >> that
> > > > > > > > > > > > >> > > if
> > > > > > > > > > > > >> > > > > it
> > > > > > > > > > > > >> > > > > > > got
> > > > > > > > > > > > >> > > > > > > > an error that the topic doesn't
> exist
> > to
> > > > say
> > > > > > > > "Topic
> > > > > > > > > X
> > > > > > > > > > > > >> doesn't
> > > > > > > > > > > > >> > > > exist"
> > > > > > > > > > > > >> > > > > > > rather
> > > > > > > > > > > > >> > > > > > > > than "error code 14" (or whatever).
> > > Maybe
> > > > > there
> > > > > > > > are
> > > > > > > > > > > > specific
> > > > > > > > > > > > >> > > cases
> > > > > > > > > > > > >> > > > > > where
> > > > > > > > > > > > >> > > > > > > > this is hard? If we want to add
> > > > server-side
> > > > > > > error
> > > > > > > > > > messages
> > > > > > > > > > > > >> we
> > > > > > > > > > > > >> > > > really
> > > > > > > > > > > > >> > > > > do
> > > > > > > > > > > > >> > > > > > > > need to do this in a consistent way
> > > across
> > > > > the
> > > > > > > > > > protocol.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > A: Updated the KIP - please check
> > > > "Protocol
> > > > > > > > Errors"
> > > > > > > > > > > > >> section. I
> > > > > > > > > > > > >> > > > added
> > > > > > > > > > > > >> > > > > > the
> > > > > > > > > > > > >> > > > > > > > comprehensive, fine-grained list of
> > > error
> > > > > codes.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > Comments from Guozhang:
> > > > > > > > > > > > >> > > > > > > > 13. Describe topic request: it would
> > be
> > > > > great to
> > > > > > > > go
> > > > > > > > > > beyond
> > > > > > > > > > > > >> just
> > > > > > > > > > > > >> > > > > > batching
> > > > > > > > > > > > >> > > > > > > on
> > > > > > > > > > > > >> > > > > > > > topic name regex for this request.
> For
> > > > > example,
> > > > > > > a
> > > > > > > > > very
> > > > > > > > > > > > >> common use
> > > > > > > > > > > > >> > > > > case
> > > > > > > > > > > > >> > > > > > of
> > > > > > > > > > > > >> > > > > > > > the topic command is to list all
> > topics
> > > > > whose
> > > > > > > > config
> > > > > > > > > > A's
> > > > > > > > > > > > >> value is
> > > > > > > > > > > > >> > > > B.
> > > > > > > > > > > > >> > > > > > With
> > > > > > > > > > > > >> > > > > > > > topic name regex then we have to
> first
> > > > > retrieve
> > > > > > > > > > __all__
> > > > > > > > > > > > >> topics's
> > > > > > > > > > > > >> > > > > > > > description info and then filter at
> > the
> > > > > client
> > > > > > > > end,
> > > > > > > > > > which
> > > > > > > > > > > > >> will
> > > > > > > > > > > > >> > > be a
> > > > > > > > > > > > >> > > > > > huge
> > > > > > > > > > > > >> > > > > > > > burden on ZK.
> > > > > > > > > > > > >> > > > > > > > AND
> > > > > > > > > > > > >> > > > > > > > 14. Config K-Vs in create topic:
> this
> > is
> > > > > related
> > > > > > > > to
> > > > > > > > > > the
> > > > > > > > > > > > >> previous
> > > > > > > > > > > > >> > > > > point;
> > > > > > > > > > > > >> > > > > > > > maybe we can add another metadata
> K-V
> > or
> > > > > just a
> > > > > > > > > > metadata
> > > > > > > > > > > > >> string
> > > > > > > > > > > > >> > > > along
> > > > > > > > > > > > >> > > > > > > side
> > > > > > > > > > > > >> > > > > > > > with config K-V in create topic like
> > we
> > > > did
> > > > > for
> > > > > > > > > offset
> > > > > > > > > > > > >> commit
> > > > > > > > > > > > >> > > > > request.
> > > > > > > > > > > > >> > > > > > > This
> > > > > > > > > > > > >> > > > > > > > field can be quite useful in storing
> > > > > information
> > > > > > > > > like
> > > > > > > > > > > > >> "owner" of
> > > > > > > > > > > > >> > > > the
> > > > > > > > > > > > >> > > > > > > topic
> > > > > > > > > > > > >> > > > > > > > who issue the create command, etc,
> > which
> > > > is
> > > > > > > quite
> > > > > > > > > > > > important
> > > > > > > > > > > > >> for a
> > > > > > > > > > > > >> > > > > > > > multi-tenant setting. Then in the
> > > describe
> > > > > topic
> > > > > > > > > > request
> > > > > > > > > > > > we
> > > > > > > > > > > > >> can
> > > > > > > > > > > > >> > > > also
> > > > > > > > > > > > >> > > > > > > batch
> > > > > > > > > > > > >> > > > > > > > on regex of the metadata field.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > A: As discussed it is very
> interesting
> > > but
> > > > > can
> > > > > > > be
> > > > > > > > > > > > >> implemented
> > > > > > > > > > > > >> > > later
> > > > > > > > > > > > >> > > > > > after
> > > > > > > > > > > > >> > > > > > > > we have some basic functionality
> > there.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > 15. Today all the admin operations
> are
> > > > > async in
> > > > > > > > the
> > > > > > > > > > sense
> > > > > > > > > > > > >> that
> > > > > > > > > > > > >> > > > > command
> > > > > > > > > > > > >> > > > > > > will
> > > > > > > > > > > > >> > > > > > > > return once it is written in ZK, and
> > > that
> > > > > is why
> > > > > > > > we
> > > > > > > > > > need
> > > > > > > > > > > > >> extra
> > > > > > > > > > > > >> > > > > > > verification
> > > > > > > > > > > > >> > > > > > > > like testUtil.waitForTopicCreated()
> /
> > > > verify
> > > > > > > > > partition
> > > > > > > > > > > > >> > > reassignment
> > > > > > > > > > > > >> > > > > > > > request, etc. With admin requests we
> > > could
> > > > > add a
> > > > > > > > > flag
> > > > > > > > > > to
> > > > > > > > > > > > >> enable /
> > > > > > > > > > > > >> > > > > > disable
> > > > > > > > > > > > >> > > > > > > > synchronous requests; when it is
> > turned
> > > > on,
> > > > > the
> > > > > > > > > > response
> > > > > > > > > > > > >> will not
> > > > > > > > > > > > >> > > > > > return
> > > > > > > > > > > > >> > > > > > > > until the request has been
> completed.
> > > And
> > > > > for
> > > > > > > > async
> > > > > > > > > > > > >> requests we
> > > > > > > > > > > > >> > > can
> > > > > > > > > > > > >> > > > > > add a
> > > > > > > > > > > > >> > > > > > > > "token" field in the response, and
> > then
> > > > only
> > > > > > > need
> > > > > > > > a
> > > > > > > > > > > > general
> > > > > > > > > > > > >> > > "admin
> > > > > > > > > > > > >> > > > > > > > verification request" with the given
> > > token
> > > > > to
> > > > > > > > check
> > > > > > > > > > if the
> > > > > > > > > > > > >> async
> > > > > > > > > > > > >> > > > > > request
> > > > > > > > > > > > >> > > > > > > > has been completed.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > A: I see your point. My idea was to
> > > > provide
> > > > > > > > specific
> > > > > > > > > > > > >> > > > Verify...Request
> > > > > > > > > > > > >> > > > > > per
> > > > > > > > > > > > >> > > > > > > > each
> > > > > > > > > > > > >> > > > > > > > long running request, where needed.
> We
> > > can
> > > > > do it
> > > > > > > > the
> > > > > > > > > > way
> > > > > > > > > > > > you
> > > > > > > > > > > > >> > > > suggest.
> > > > > > > > > > > > >> > > > > > The
> > > > > > > > > > > > >> > > > > > > > only
> > > > > > > > > > > > >> > > > > > > > concern is that introducing a token
> we
> > > > again
> > > > > > > will
> > > > > > > > > make
> > > > > > > > > > > > >> schema
> > > > > > > > > > > > >> > > > > > "dynamic".
> > > > > > > > > > > > >> > > > > > > We
> > > > > > > > > > > > >> > > > > > > > wanted
> > > > > > > > > > > > >> > > > > > > > to do similar thing introducing
> single
> > > > > > > > AdminRequest
> > > > > > > > > > for
> > > > > > > > > > > > all
> > > > > > > > > > > > >> topic
> > > > > > > > > > > > >> > > > > > > commands
> > > > > > > > > > > > >> > > > > > > > but rejected
> > > > > > > > > > > > >> > > > > > > > this idea because we wanted to have
> > > schema
> > > > > > > > defined.
> > > > > > > > > So
> > > > > > > > > > > > this
> > > > > > > > > > > > >> is
> > > > > > > > > > > > >> > > > more a
> > > > > > > > > > > > >> > > > > > > > choice between:
> > > > > > > > > > > > >> > > > > > > > a) have fixed schema but introduce
> > each
> > > > > time new
> > > > > > > > > > > > >> Verify...Request
> > > > > > > > > > > > >> > > > for
> > > > > > > > > > > > >> > > > > > > > long-running requests
> > > > > > > > > > > > >> > > > > > > > b) use one request for verification
> > but
> > > > > > > generalize
> > > > > > > > > it
> > > > > > > > > > with
> > > > > > > > > > > > >> token
> > > > > > > > > > > > >> > > > > > > > I'm fine with whatever decision
> > > community
> > > > > come
> > > > > > > to.
> > > > > > > > > > Just
> > > > > > > > > > > > let
> > > > > > > > > > > > >> me
> > > > > > > > > > > > >> > > know
> > > > > > > > > > > > >> > > > > > your
> > > > > > > > > > > > >> > > > > > > > thoughts.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > Comment from Gwen:
> > > > > > > > > > > > >> > > > > > > > 16. Specifically for ownership, I
> > think
> > > > the
> > > > > plan
> > > > > > > > is
> > > > > > > > > > to add
> > > > > > > > > > > > >> ACL
> > > > > > > > > > > > >> > > (it
> > > > > > > > > > > > >> > > > > > sounds
> > > > > > > > > > > > >> > > > > > > > like you are describing ACL) via an
> > > > external
> > > > > > > > system
> > > > > > > > > > > > (Argus,
> > > > > > > > > > > > >> > > > Sentry).
> > > > > > > > > > > > >> > > > > > > > I remember KIP-11 described this,
> but
> > I
> > > > > can't
> > > > > > > find
> > > > > > > > > > the KIP
> > > > > > > > > > > > >> any
> > > > > > > > > > > > >> > > > > longer.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > A: Okay, no problem. Not sure though
> > how
> > > > we
> > > > > are
> > > > > > > > > going
> > > > > > > > > > to
> > > > > > > > > > > > >> handle
> > > > > > > > > > > > >> > > it.
> > > > > > > > > > > > >> > > > > > Wait
> > > > > > > > > > > > >> > > > > > > > which KIP
> > > > > > > > > > > > >> > > > > > > > will be committed first and include
> > > > changes
> > > > > to
> > > > > > > > > > > > >> TopicMetadata from
> > > > > > > > > > > > >> > > > the
> > > > > > > > > > > > >> > > > > > > later
> > > > > > > > > > > > >> > > > > > > > one?
> > > > > > > > > > > > >> > > > > > > > Anyway, I added this note to "Open
> > > > > Questions"
> > > > > > > > > section
> > > > > > > > > > so
> > > > > > > > > > > > we
> > > > > > > > > > > > >> don't
> > > > > > > > > > > > >> > > > > miss
> > > > > > > > > > > > >> > > > > > > this
> > > > > > > > > > > > >> > > > > > > > piece.
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > Thanks,
> > > > > > > > > > > > >> > > > > > > > Andrii Biletskyi
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > On Fri, Mar 13, 2015 at 12:34 AM,
> > Andrii
> > > > > > > > Biletskyi <
> > > > > > > > > > > > >> > > > > > > > andrii.bilets...@stealth.ly> wrote:
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > > Hi all,
> > > > > > > > > > > > >> > > > > > > > >
> > > > > > > > > > > > >> > > > > > > > > Today I uploaded the patch that
> > covers
> > > > > some of
> > > > > > > > the
> > > > > > > > > > > > >> discussed
> > > > > > > > > > > > >> > > and
> > > > > > > > > > > > >> > > > > > agreed
> > > > > > > > > > > > >> > > > > > > > > items:
> > > > > > > > > > > > >> > > > > > > > > - removed MaybeOf optional type
> > > > > > > > > > > > >> > > > > > > > > - switched to java protocol
> > > definitions
> > > > > > > > > > > > >> > > > > > > > > - simplified messages (normalized
> > > > configs,
> > > > > > > > removed
> > > > > > > > > > topic
> > > > > > > > > > > > >> marked
> > > > > > > > > > > > >> > > > for
> > > > > > > > > > > > >> > > > > > > > > deletion)
> > > > > > > > > > > > >> > > > > > > > >
> > > > > > > > > > > > >> > > > > > > > > I also updated the KIP-4 with
> > > respective
> > > > > > > changes
> > > > > > > > > and
> > > > > > > > > > > > >> wrote down
> > > > > > > > > > > > >> > > > my
> > > > > > > > > > > > >> > > > > > > > > proposal for
> > > > > > > > > > > > >> > > > > > > > > pending items:
> > > > > > > > > > > > >> > > > > > > > > - Batch Admin Operations ->
> updated
> > > Wire
> > > > > > > > Protocol
> > > > > > > > > > schema
> > > > > > > > > > > > >> > > proposal
> > > > > > > > > > > > >> > > > > > > > > - Remove ClusterMetadata ->
> changed
> > to
> > > > > extend
> > > > > > > > > > > > >> > > > TopicMetadataRequest
> > > > > > > > > > > > >> > > > > > > > > - Admin Client -> updated my
> initial
> > > > > proposal
> > > > > > > to
> > > > > > > > > > reflect
> > > > > > > > > > > > >> > > batching
> > > > > > > > > > > > >> > > > > > > > > - Error codes -> proposed
> > fine-grained
> > > > > error
> > > > > > > > code
> > > > > > > > > > > > instead
> > > > > > > > > > > > >> of
> > > > > > > > > > > > >> > > > > > > > > AdminRequestFailed
> > > > > > > > > > > > >> > > > > > > > >
> > > > > > > > > > > > >> > > > > > > > > I will also send a separate email
> to
> > > > > cover all
> > > > > > > > > > comments
> > > > > > > > > > > > >> from
> > > > > > > > > > > > >> > > this
> > > > > > > > > > > > >> > > > > > > thread.
> > > > > > > > > > > > >> > > > > > > > >
> > > > > > > > > > > > >> > > > > > > > > Thanks,
> > > > > > > > > > > > >> > > > > > > > > Andrii Biletskyi
> > > > > > > > > > > > >> > > > > > > > >
> > > > > > > > > > > > >> > > > > > > > >
> > > > > > > > > > > > >> > > > > > > > > On Thu, Mar 12, 2015 at 9:26 PM,
> > Gwen
> > > > > Shapira
> > > > > > > <
> > > > > > > > > > > > >> > > > > gshap...@cloudera.com
> > > > > > > > > > > > >> > > > > > >
> > > > > > > > > > > > >> > > > > > > > > wrote:
> > > > > > > > > > > > >> > > > > > > > >
> > > > > > > > > > > > >> > > > > > > > >> Found KIP-11 (
> > > > > > > > > > > > >> > > > > > > > >>
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > >
> > > > > > > > > > > > >> > > > > >
> > > > > > > > > > > > >> > > > >
> > > > > > > > > > > > >> > > >
> > > > > > > > > > > > >> > >
> > > > > > > > > > > > >>
> > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > >
> > > >
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-11+-+Authorization+Interface
> > > > > > > > > > > > >> > > > > > > > >> )
> > > > > > > > > > > > >> > > > > > > > >> It actually specifies changes to
> > the
> > > > > Metadata
> > > > > > > > > > protocol,
> > > > > > > > > > > > >> so
> > > > > > > > > > > > >> > > > making
> > > > > > > > > > > > >> > > > > > sure
> > > > > > > > > > > > >> > > > > > > > >> both KIPs are consistent in this
> > > regard
> > > > > will
> > > > > > > be
> > > > > > > > > > good.
> > > > > > > > > > > > >> > > > > > > > >>
> > > > > > > > > > > > >> > > > > > > > >> On Thu, Mar 12, 2015 at 12:21 PM,
> > > Gwen
> > > > > > > Shapira
> > > > > > > > <
> > > > > > > > > > > > >> > > > > > gshap...@cloudera.com
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > > > >> wrote:
> > > > > > > > > > > > >> > > > > > > > >> > Specifically for ownership, I
> > think
> > > > the
> > > > > > > plan
> > > > > > > > is
> > > > > > > > > > to
> > > > > > > > > > > > add
> > > > > > > > > > > > >> ACL
> > > > > > > > > > > > >> > > (it
> > > > > > > > > > > > >> > > > > > > sounds
> > > > > > > > > > > > >> > > > > > > > >> > like you are describing ACL)
> via
> > an
> > > > > > > external
> > > > > > > > > > system
> > > > > > > > > > > > >> (Argus,
> > > > > > > > > > > > >> > > > > > Sentry).
> > > > > > > > > > > > >> > > > > > > > >> > I remember KIP-11 described
> this,
> > > > but I
> > > > > > > can't
> > > > > > > > > > find
> > > > > > > > > > > > the
> > > > > > > > > > > > >> KIP
> > > > > > > > > > > > >> > > any
> > > > > > > > > > > > >> > > > > > > longer.
> > > > > > > > > > > > >> > > > > > > > >> >
> > > > > > > > > > > > >> > > > > > > > >> > Regardless, I think KIP-4
> focuses
> > > on
> > > > > > > getting
> > > > > > > > > > > > >> information
> > > > > > > > > > > > >> > > that
> > > > > > > > > > > > >> > > > > > > already
> > > > > > > > > > > > >> > > > > > > > >> > exists from Kafka brokers, not
> on
> > > > > adding
> > > > > > > > > > information
> > > > > > > > > > > > >> that
> > > > > > > > > > > > >> > > > > perhaps
> > > > > > > > > > > > >> > > > > > > > >> > should exist but doesn't yet?
> > > > > > > > > > > > >> > > > > > > > >> >
> > > > > > > > > > > > >> > > > > > > > >> > Gwen
> > > > > > > > > > > > >> > > > > > > > >> >
> > > > > > > > > > > > >> > > > > > > > >> >
> > > > > > > > > > > > >> > > > > > > > >> >
> > > > > > > > > > > > >> > > > > > > > >> >
> > > > > > > > > > > > >> > > > > > > > >> >
> > > > > > > > > > > > >> > > > > > > > >> > On Thu, Mar 12, 2015 at 6:37
> AM,
> > > > > Guozhang
> > > > > > > > Wang
> > > > > > > > > <
> > > > > > > > > > > > >> > > > > > wangg...@gmail.com>
> > > > > > > > > > > > >> > > > > > > > >> wrote:
> > > > > > > > > > > > >> > > > > > > > >> >> Folks,
> > > > > > > > > > > > >> > > > > > > > >> >>
> > > > > > > > > > > > >> > > > > > > > >> >> Just want to elaborate a bit
> > more
> > > on
> > > > > the
> > > > > > > > > > > > create-topic
> > > > > > > > > > > > >> > > > metadata
> > > > > > > > > > > > >> > > > > > and
> > > > > > > > > > > > >> > > > > > > > >> batching
> > > > > > > > > > > > >> > > > > > > > >> >> describe-topic based on
> config /
> > > > > metadata
> > > > > > > in
> > > > > > > > > my
> > > > > > > > > > > > >> previous
> > > > > > > > > > > > >> > > > email
> > > > > > > > > > > > >> > > > > as
> > > > > > > > > > > > >> > > > > > > we
> > > > > > > > > > > > >> > > > > > > > >> work
> > > > > > > > > > > > >> > > > > > > > >> >> on KAFKA-1694. The main
> > motivation
> > > > is
> > > > > to
> > > > > > > > have
> > > > > > > > > > some
> > > > > > > > > > > > >> sort of
> > > > > > > > > > > > >> > > > > topic
> > > > > > > > > > > > >> > > > > > > > >> management
> > > > > > > > > > > > >> > > > > > > > >> >> mechanisms, which I think is
> > quite
> > > > > > > important
> > > > > > > > > in
> > > > > > > > > > a
> > > > > > > > > > > > >> > > > multi-tenant
> > > > > > > > > > > > >> > > > > /
> > > > > > > > > > > > >> > > > > > > > cloud
> > > > > > > > > > > > >> > > > > > > > >> >> architecture: today anyone can
> > > > create
> > > > > > > topics
> > > > > > > > > in
> > > > > > > > > > a
> > > > > > > > > > > > >> shared
> > > > > > > > > > > > >> > > > Kafka
> > > > > > > > > > > > >> > > > > > > > >> cluster, but
> > > > > > > > > > > > >> > > > > > > > >> >> there is no concept or
> > "ownership"
> > > > of
> > > > > > > topics
> > > > > > > > > > that
> > > > > > > > > > > > are
> > > > > > > > > > > > >> > > created
> > > > > > > > > > > > >> > > > > by
> > > > > > > > > > > > >> > > > > > > > >> different
> > > > > > > > > > > > >> > > > > > > > >> >> users. For example, at
> LinkedIn
> > we
> > > > > > > basically
> > > > > > > > > > > > >> distinguish
> > > > > > > > > > > > >> > > > topic
> > > > > > > > > > > > >> > > > > > > owners
> > > > > > > > > > > > >> > > > > > > > >> via
> > > > > > > > > > > > >> > > > > > > > >> >> some casual topic name prefix,
> > > which
> > > > > is a
> > > > > > > > bit
> > > > > > > > > > > > awkward
> > > > > > > > > > > > >> and
> > > > > > > > > > > > >> > > > does
> > > > > > > > > > > > >> > > > > > not
> > > > > > > > > > > > >> > > > > > > > fly
> > > > > > > > > > > > >> > > > > > > > >> as
> > > > > > > > > > > > >> > > > > > > > >> >> we scale our customers. It
> would
> > > be
> > > > > great
> > > > > > > to
> > > > > > > > > use
> > > > > > > > > > > > >> > > > > describe-topics
> > > > > > > > > > > > >> > > > > > > such
> > > > > > > > > > > > >> > > > > > > > >> as:
> > > > > > > > > > > > >> > > > > > > > >> >>
> > > > > > > > > > > > >> > > > > > > > >> >> Describe all topics that is
> > > created
> > > > > by me.
> > > > > > > > > > > > >> > > > > > > > >> >>
> > > > > > > > > > > > >> > > > > > > > >> >> Describe all topics whose
> > > retention
> > > > > time
> > > > > > > is
> > > > > > > > > > > > overriden
> > > > > > > > > > > > >> to X.
> > > > > > > > > > > > >> > > > > > > > >> >>
> > > > > > > > > > > > >> > > > > > > > >> >> Describe all topics whose
> > writable
> > > > > group
> > > > > > > > > include
> > > > > > > > > > > > user
> > > > > > > > > > > > >> Y
> > > > > > > > > > > > >> > > (this
> > > > > > > > > > > > >> > > > > is
> > > > > > > > > > > > >> > > > > > > > >> related to
> > > > > > > > > > > > >> > > > > > > > >> >> authorization), etc..
> > > > > > > > > > > > >> > > > > > > > >> >>
> > > > > > > > > > > > >> > > > > > > > >> >> One possible way to achieve
> this
> > > is
> > > > to
> > > > > > > add a
> > > > > > > > > > > > metadata
> > > > > > > > > > > > >> file
> > > > > > > > > > > > >> > > in
> > > > > > > > > > > > >> > > > > the
> > > > > > > > > > > > >> > > > > > > > >> >> create-topic request, whose
> > value
> > > > will
> > > > > > > also
> > > > > > > > be
> > > > > > > > > > > > >> written ZK
> > > > > > > > > > > > >> > > as
> > > > > > > > > > > > >> > > > we
> > > > > > > > > > > > >> > > > > > > > create
> > > > > > > > > > > > >> > > > > > > > >> the
> > > > > > > > > > > > >> > > > > > > > >> >> topic; then describe-topics
> can
> > > > > choose to
> > > > > > > > > batch
> > > > > > > > > > > > topics
> > > > > > > > > > > > >> > > based
> > > > > > > > > > > > >> > > > on
> > > > > > > > > > > > >> > > > > > 1)
> > > > > > > > > > > > >> > > > > > > > name
> > > > > > > > > > > > >> > > > > > > > >> >> regex, 2) config K-V matching,
> > 3)
> > > > > metadata
> > > > > > > > > > regex,
> > > > > > > > > > > > etc.
> > > > > > > > > > > > >> > > > > > > > >> >>
> > > > > > > > > > > > >> > > > > > > > >> >> Thoughts?
> > > > > > > > > > > > >> > > > > > > > >> >>
> > > > > > > > > > > > >> > > > > > > > >> >> Guozhang
> > > > > > > > > > > > >> > > > > > > > >> >>
> > > > > > > > > > > > >> > > > > > > > >> >> On Thu, Mar 5, 2015 at 4:37
> PM,
> > > > > Guozhang
> > > > > > > > Wang
> > > > > > > > > <
> > > > > > > > > > > > >> > > > > > wangg...@gmail.com>
> > > > > > > > > > > > >> > > > > > > > >> wrote:
> > > > > > > > > > > > >> > > > > > > > >> >>
> > > > > > > > > > > > >> > > > > > > > >> >>> Thanks for the updated wiki.
> A
> > > few
> > > > > > > comments
> > > > > > > > > > below:
> > > > > > > > > > > > >> > > > > > > > >> >>>
> > > > > > > > > > > > >> > > > > > > > >> >>> 1. Error description in
> > > response: I
> > > > > think
> > > > > > > > if
> > > > > > > > > > some
> > > > > > > > > > > > >> > > errorCode
> > > > > > > > > > > > >> > > > > > could
> > > > > > > > > > > > >> > > > > > > > >> indicate
> > > > > > > > > > > > >> > > > > > > > >> >>> several different error cases
> > > then
> > > > we
> > > > > > > > should
> > > > > > > > > > really
> > > > > > > > > > > > >> change
> > > > > > > > > > > > >> > > > it
> > > > > > > > > > > > >> > > > > to
> > > > > > > > > > > > >> > > > > > > > >> multiple
> > > > > > > > > > > > >> > > > > > > > >> >>> codes. In general the
> errorCode
> > > > > itself
> > > > > > > > would
> > > > > > > > > be
> > > > > > > > > > > > >> precise
> > > > > > > > > > > > >> > > and
> > > > > > > > > > > > >> > > > > > > > >> sufficient for
> > > > > > > > > > > > >> > > > > > > > >> >>> describing the server side
> > > errors.
> > > > > > > > > > > > >> > > > > > > > >> >>>
> > > > > > > > > > > > >> > > > > > > > >> >>> 2. Describe topic request: it
> > > would
> > > > > be
> > > > > > > > great
> > > > > > > > > > to go
> > > > > > > > > > > > >> beyond
> > > > > > > > > > > > >> > > > just
> > > > > > > > > > > > >> > > > > > > > >> batching on
> > > > > > > > > > > > >> > > > > > > > >> >>> topic name regex for this
> > > request.
> > > > > For
> > > > > > > > > > example, a
> > > > > > > > > > > > >> very
> > > > > > > > > > > > >> > > > common
> > > > > > > > > > > > >> > > > > > use
> > > > > > > > > > > > >> > > > > > > > >> case of
> > > > > > > > > > > > >> > > > > > > > >> >>> the topic command is to list
> > all
> > > > > topics
> > > > > > > > whose
> > > > > > > > > > > > config
> > > > > > > > > > > > >> A's
> > > > > > > > > > > > >> > > > value
> > > > > > > > > > > > >> > > > > > is
> > > > > > > > > > > > >> > > > > > > B.
> > > > > > > > > > > > >> > > > > > > > >> With
> > > > > > > > > > > > >> > > > > > > > >> >>> topic name regex then we have
> > to
> > > > > first
> > > > > > > > > retrieve
> > > > > > > > > > > > >> __all__
> > > > > > > > > > > > >> > > > > topics's
> > > > > > > > > > > > >> > > > > > > > >> >>> description info and then
> > filter
> > > at
> > > > > the
> > > > > > > > > client
> > > > > > > > > > end,
> > > > > > > > > > > > >> which
> > > > > > > > > > > > >> > > > will
> > > > > > > > > > > > >> > > > > > be
> > > > > > > > > > > > >> > > > > > > a
> > > > > > > > > > > > >> > > > > > > > >> huge
> > > > > > > > > > > > >> > > > > > > > >> >>> burden on ZK.
> > > > > > > > > > > > >> > > > > > > > >> >>>
> > > > > > > > > > > > >> > > > > > > > >> >>> 3. Config K-Vs in create
> topic:
> > > > this
> > > > > is
> > > > > > > > > > related to
> > > > > > > > > > > > >> the
> > > > > > > > > > > > >> > > > > previous
> > > > > > > > > > > > >> > > > > > > > point;
> > > > > > > > > > > > >> > > > > > > > >> >>> maybe we can add another
> > metadata
> > > > > K-V or
> > > > > > > > > just a
> > > > > > > > > > > > >> metadata
> > > > > > > > > > > > >> > > > > string
> > > > > > > > > > > > >> > > > > > > > along
> > > > > > > > > > > > >> > > > > > > > >> side
> > > > > > > > > > > > >> > > > > > > > >> >>> with config K-V in create
> topic
> > > > like
> > > > > we
> > > > > > > did
> > > > > > > > > for
> > > > > > > > > > > > >> offset
> > > > > > > > > > > > >> > > > commit
> > > > > > > > > > > > >> > > > > > > > >> request. This
> > > > > > > > > > > > >> > > > > > > > >> >>> field can be quite useful in
> > > > storing
> > > > > > > > > > information
> > > > > > > > > > > > like
> > > > > > > > > > > > >> > > > "owner"
> > > > > > > > > > > > >> > > > > of
> > > > > > > > > > > > >> > > > > > > the
> > > > > > > > > > > > >> > > > > > > > >> topic
> > > > > > > > > > > > >> > > > > > > > >> >>> who issue the create command,
> > > etc,
> > > > > which
> > > > > > > is
> > > > > > > > > > quite
> > > > > > > > > > > > >> > > important
> > > > > > > > > > > > >> > > > > for
> > > > > > > > > > > > >> > > > > > a
> > > > > > > > > > > > >> > > > > > > > >> >>> multi-tenant setting. Then in
> > the
> > > > > > > describe
> > > > > > > > > > topic
> > > > > > > > > > > > >> request
> > > > > > > > > > > > >> > > we
> > > > > > > > > > > > >> > > > > can
> > > > > > > > > > > > >> > > > > > > also
> > > > > > > > > > > > >> > > > > > > > >> batch
> > > > > > > > > > > > >> > > > > > > > >> >>> on regex of the metadata
> field.
> > > > > > > > > > > > >> > > > > > > > >> >>>
> > > > > > > > > > > > >> > > > > > > > >> >>> 4. Today all the admin
> > operations
> > > > are
> > > > > > > async
> > > > > > > > > in
> > > > > > > > > > the
> > > > > > > > > > > > >> sense
> > > > > > > > > > > > >> > > > that
> > > > > > > > > > > > >> > > > > > > > command
> > > > > > > > > > > > >> > > > > > > > >> will
> > > > > > > > > > > > >> > > > > > > > >> >>> return once it is written in
> > ZK,
> > > > and
> > > > > that
> > > > > > > > is
> > > > > > > > > > why we
> > > > > > > > > > > > >> need
> > > > > > > > > > > > >> > > > extra
> > > > > > > > > > > > >> > > > > > > > >> verification
> > > > > > > > > > > > >> > > > > > > > >> >>> like
> > > > testUtil.waitForTopicCreated() /
> > > > > > > > verify
> > > > > > > > > > > > >> partition
> > > > > > > > > > > > >> > > > > > > reassignment
> > > > > > > > > > > > >> > > > > > > > >> >>> request, etc. With admin
> > requests
> > > > we
> > > > > > > could
> > > > > > > > > add
> > > > > > > > > > a
> > > > > > > > > > > > >> flag to
> > > > > > > > > > > > >> > > > > enable
> > > > > > > > > > > > >> > > > > > /
> > > > > > > > > > > > >> > > > > > > > >> disable
> > > > > > > > > > > > >> > > > > > > > >> >>> synchronous requests; when it
> > is
> > > > > turned
> > > > > > > on,
> > > > > > > > > the
> > > > > > > > > > > > >> response
> > > > > > > > > > > > >> > > > will
> > > > > > > > > > > > >> > > > > > not
> > > > > > > > > > > > >> > > > > > > > >> return
> > > > > > > > > > > > >> > > > > > > > >> >>> until the request has been
> > > > > completed. And
> > > > > > > > for
> > > > > > > > > > async
> > > > > > > > > > > > >> > > requests
> > > > > > > > > > > > >> > > > > we
> > > > > > > > > > > > >> > > > > > > can
> > > > > > > > > > > > >> > > > > > > > >> add a
> > > > > > > > > > > > >> > > > > > > > >> >>> "token" field in the
> response,
> > > and
> > > > > then
> > > > > > > > only
> > > > > > > > > > need a
> > > > > > > > > > > > >> > > general
> > > > > > > > > > > > >> > > > > > "admin
> > > > > > > > > > > > >> > > > > > > > >> >>> verification request" with
> the
> > > > given
> > > > > > > token
> > > > > > > > to
> > > > > > > > > > check
> > > > > > > > > > > > >> if the
> > > > > > > > > > > > >> > > > > async
> > > > > > > > > > > > >> > > > > > > > >> request
> > > > > > > > > > > > >> > > > > > > > >> >>> has been completed.
> > > > > > > > > > > > >> > > > > > > > >> >>>
> > > > > > > > > > > > >> > > > > > > > >> >>> 5. +1 for extending Metadata
> > > > request
> > > > > to
> > > > > > > > > include
> > > > > > > > > > > > >> > > controller /
> > > > > > > > > > > > >> > > > > > > > >> coordinator
> > > > > > > > > > > > >> > > > > > > > >> >>> information, and then we can
> > > remove
> > > > > the
> > > > > > > > > > > > >> ConsumerMetadata /
> > > > > > > > > > > > >> > > > > > > > >> ClusterMetadata
> > > > > > > > > > > > >> > > > > > > > >> >>> requests.
> > > > > > > > > > > > >> > > > > > > > >> >>>
> > > > > > > > > > > > >> > > > > > > > >> >>> Guozhang
> > > > > > > > > > > > >> > > > > > > > >> >>>
> > > > > > > > > > > > >> > > > > > > > >> >>> On Tue, Mar 3, 2015 at 10:23
> > AM,
> > > > Joel
> > > > > > > > Koshy <
> > > > > > > > > > > > >> > > > > > jjkosh...@gmail.com>
> > > > > > > > > > > > >> > > > > > > > >> wrote:
> > > > > > > > > > > > >> > > > > > > > >> >>>
> > > > > > > > > > > > >> > > > > > > > >> >>>> Thanks for sending that out
> > Joe
> > > -
> > > > I
> > > > > > > don't
> > > > > > > > > > think I
> > > > > > > > > > > > >> will be
> > > > > > > > > > > > >> > > > > able
> > > > > > > > > > > > >> > > > > > to
> > > > > > > > > > > > >> > > > > > > > >> make
> > > > > > > > > > > > >> > > > > > > > >> >>>> it today, so if notes can be
> > > sent
> > > > > out
> > > > > > > > > > afterward
> > > > > > > > > > > > that
> > > > > > > > > > > > >> > > would
> > > > > > > > > > > > >> > > > be
> > > > > > > > > > > > >> > > > > > > > great.
> > > > > > > > > > > > >> > > > > > > > >> >>>>
> > > > > > > > > > > > >> > > > > > > > >> >>>> On Mon, Mar 02, 2015 at
> > > 09:16:13AM
> > > > > > > -0800,
> > > > > > > > > Gwen
> > > > > > > > > > > > >> Shapira
> > > > > > > > > > > > >> > > > wrote:
> > > > > > > > > > > > >> > > > > > > > >> >>>> > Thanks for sending this
> out
> > > Joe.
> > > > > > > Looking
> > > > > > > > > > forward
> > > > > > > > > > > > >> to
> > > > > > > > > > > > >> > > > > chatting
> > > > > > > > > > > > >> > > > > > > with
> > > > > > > > > > > > >> > > > > > > > >> >>>> everyone :)
> > > > > > > > > > > > >> > > > > > > > >> >>>> >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > On Mon, Mar 2, 2015 at
> 6:46
> > > AM,
> > > > > Joe
> > > > > > > > Stein
> > > > > > > > > <
> > > > > > > > > > > > >> > > > > > > joe.st...@stealth.ly>
> > > > > > > > > > > > >> > > > > > > > >> wrote:
> > > > > > > > > > > > >> > > > > > > > >> >>>> > > Hey, I just sent out a
> > > google
> > > > > > > hangout
> > > > > > > > > > invite
> > > > > > > > > > > > to
> > > > > > > > > > > > >> all
> > > > > > > > > > > > >> > > > pmc,
> > > > > > > > > > > > >> > > > > > > > >> committers
> > > > > > > > > > > > >> > > > > > > > >> >>>> and
> > > > > > > > > > > > >> > > > > > > > >> >>>> > > everyone I found working
> > on
> > > a
> > > > > KIP.
> > > > > > > If
> > > > > > > > I
> > > > > > > > > > missed
> > > > > > > > > > > > >> anyone
> > > > > > > > > > > > >> > > > in
> > > > > > > > > > > > >> > > > > > the
> > > > > > > > > > > > >> > > > > > > > >> invite
> > > > > > > > > > > > >> > > > > > > > >> >>>> please
> > > > > > > > > > > > >> > > > > > > > >> >>>> > > let me know and can
> update
> > > it,
> > > > > np.
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > > We should do this every
> > > > Tuesday
> > > > > @
> > > > > > > 2pm
> > > > > > > > > > Eastern
> > > > > > > > > > > > >> Time.
> > > > > > > > > > > > >> > > > Maybe
> > > > > > > > > > > > >> > > > > > we
> > > > > > > > > > > > >> > > > > > > > can
> > > > > > > > > > > > >> > > > > > > > >> get
> > > > > > > > > > > > >> > > > > > > > >> >>>> INFRA
> > > > > > > > > > > > >> > > > > > > > >> >>>> > > help to make a google
> > > account
> > > > > so we
> > > > > > > > can
> > > > > > > > > > manage
> > > > > > > > > > > > >> > > better?
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > > To discuss
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >
> > > > > > > > > > > > >> > > > > > > > >> >>>>
> > > > > > > > > > > > >> > > > > > > > >>
> > > > > > > > > > > > >> > > > > > > >
> > > > > > > > > > > > >> > > > > > >
> > > > > > > > > > > > >> > > > > >
> > > > > > > > > > > > >> > > > >
> > > > > > > > > > > > >> > > >
> > > > > > > > > > > > >> > >
> > > > > > > > > > > > >>
> > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > >
> > > >
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Improvement+Proposals
> > > > > > > > > > > > >> > > > > > > > >> >>>> > > in progress and related
> > JIRA
> > > > > that
> > > > > > > are
> > > > > > > > > > > > >> interdependent
> > > > > > > > > > > > >> > > > and
> > > > > > > > > > > > >> > > > > > > common
> > > > > > > > > > > > >> > > > > > > > >> work.
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > > ~ Joe Stein
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > > On Tue, Feb 24, 2015 at
> > 2:59
> > > > > PM, Jay
> > > > > > > > > > Kreps <
> > > > > > > > > > > > >> > > > > > > > jay.kr...@gmail.com>
> > > > > > > > > > > > >> > > > > > > > >> >>>> wrote:
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> Let's stay on Google
> > > hangouts
> > > > > that
> > > > > > > > will
> > > > > > > > > > also
> > > > > > > > > > > > >> record
> > > > > > > > > > > > >> > > > and
> > > > > > > > > > > > >> > > > > > make
> > > > > > > > > > > > >> > > > > > > > the
> > > > > > > > > > > > >> > > > > > > > >> >>>> sessions
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> available on youtube.
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >>
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> -Jay
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >>
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> On Tue, Feb 24, 2015 at
> > > 11:49
> > > > > AM,
> > > > > > > > Jeff
> > > > > > > > > > > > Holoman
> > > > > > > > > > > > >> <
> > > > > > > > > > > > >> > > > > > > > >> >>>> jholo...@cloudera.com>
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> wrote:
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >>
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > Jay / Joe
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > We're happy to send
> > out a
> > > > > Webex
> > > > > > > for
> > > > > > > > > > this
> > > > > > > > > > > > >> purpose.
> > > > > > > > > > > > >> > > We
> > > > > > > > > > > > >> > > > > > could
> > > > > > > > > > > > >> > > > > > > > >> record
> > > > > > > > > > > > >> > > > > > > > >> >>>> the
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > sessions if there is
> > > > > interest and
> > > > > > > > > > publish
> > > > > > > > > > > > >> them
> > > > > > > > > > > > >> > > out.
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > Thanks
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > Jeff
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > On Tue, Feb 24, 2015
> at
> > > > > 11:28 AM,
> > > > > > > > Jay
> > > > > > > > > > > > Kreps <
> > > > > > > > > > > > >> > > > > > > > >> jay.kr...@gmail.com>
> > > > > > > > > > > > >> > > > > > > > >> >>>> wrote:
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > Let's try to get
> the
> > > > > technical
> > > > > > > > > > hang-ups
> > > > > > > > > > > > >> sorted
> > > > > > > > > > > > >> > > > out,
> > > > > > > > > > > > >> > > > > > > > though.
> > > > > > > > > > > > >> > > > > > > > >> I
> > > > > > > > > > > > >> > > > > > > > >> >>>> really
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > think
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > there is some
> benefit
> > > to
> > > > > live
> > > > > > > > > > discussion
> > > > > > > > > > > > vs
> > > > > > > > > > > > >> > > > > writing. I
> > > > > > > > > > > > >> > > > > > > am
> > > > > > > > > > > > >> > > > > > > > >> >>>> hopeful that
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> if
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > we post
> instructions
> > > and
> > > > > give
> > > > > > > > > > ourselves a
> > > > > > > > > > > > >> few
> > > > > > > > > > > > >> > > > > attempts
> > > > > > > > > > > > >> > > > > > > we
> > > > > > > > > > > > >> > > > > > > > >> can
> > > > > > > > > > > > >> > > > > > > > >> >>>> get it
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > working.
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > Tuesday at that
> time
> > > > would
> > > > > work
> > > > > > > > for
> > > > > > > > > > > > >> me...any
> > > > > > > > > > > > >> > > > > > objections?
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > -Jay
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > On Tue, Feb 24,
> 2015
> > at
> > > > > 8:18
> > > > > > > AM,
> > > > > > > > > Joe
> > > > > > > > > > > > Stein
> > > > > > > > > > > > >> <
> > > > > > > > > > > > >> > > > > > > > >> joe.st...@stealth.ly
> > > > > > > > > > > > >> > > > > > > > >> >>>> >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> wrote:
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > Weekly would be
> > great
> > > > > maybe
> > > > > > > > like
> > > > > > > > > > every
> > > > > > > > > > > > >> > > Tuesday ~
> > > > > > > > > > > > >> > > > > 1pm
> > > > > > > > > > > > >> > > > > > > ET
> > > > > > > > > > > > >> > > > > > > > /
> > > > > > > > > > > > >> > > > > > > > >> 10am
> > > > > > > > > > > > >> > > > > > > > >> >>>> PT
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> ????
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > I don't mind
> google
> > > > > hangout
> > > > > > > but
> > > > > > > > > > there
> > > > > > > > > > > > is
> > > > > > > > > > > > >> > > always
> > > > > > > > > > > > >> > > > > some
> > > > > > > > > > > > >> > > > > > > > >> issue or
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> whatever
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > so
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > we know the
> apache
> > > irc
> > > > > > > channel
> > > > > > > > > > works.
> > > > > > > > > > > > We
> > > > > > > > > > > > >> can
> > > > > > > > > > > > >> > > > start
> > > > > > > > > > > > >> > > > > > > there
> > > > > > > > > > > > >> > > > > > > > >> and
> > > > > > > > > > > > >> > > > > > > > >> >>>> see how
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> it
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > goes? We can pull
> > > > > transcripts
> > > > > > > > too
> > > > > > > > > > and
> > > > > > > > > > > > >> > > associate
> > > > > > > > > > > > >> > > > to
> > > > > > > > > > > > >> > > > > > > > >> tickets if
> > > > > > > > > > > > >> > > > > > > > >> >>>> need be
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > makes
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > it helpful for
> > > things.
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > ~ Joestein
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > On Tue, Feb 24,
> > 2015
> > > at
> > > > > 11:10
> > > > > > > > AM,
> > > > > > > > > > Jay
> > > > > > > > > > > > >> Kreps <
> > > > > > > > > > > > >> > > > > > > > >> >>>> jay.kr...@gmail.com>
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > wrote:
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > > We'd talked
> about
> > > > > doing a
> > > > > > > > > Google
> > > > > > > > > > > > >> Hangout to
> > > > > > > > > > > > >> > > > chat
> > > > > > > > > > > > >> > > > > > > about
> > > > > > > > > > > > >> > > > > > > > >> this.
> > > > > > > > > > > > >> > > > > > > > >> >>>> What
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > about
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > > generalizing
> > that a
> > > > > little
> > > > > > > > > > > > further...I
> > > > > > > > > > > > >> > > > actually
> > > > > > > > > > > > >> > > > > > > think
> > > > > > > > > > > > >> > > > > > > > it
> > > > > > > > > > > > >> > > > > > > > >> >>>> would be
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > good
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > for
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > > everyone
> > spending a
> > > > > > > > reasonable
> > > > > > > > > > chunk
> > > > > > > > > > > > of
> > > > > > > > > > > > >> > > their
> > > > > > > > > > > > >> > > > > week
> > > > > > > > > > > > >> > > > > > > on
> > > > > > > > > > > > >> > > > > > > > >> Kafka
> > > > > > > > > > > > >> > > > > > > > >> >>>> stuff
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> to
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > maybe
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > > sync up once a
> > > week.
> > > > I
> > > > > > > think
> > > > > > > > we
> > > > > > > > > > could
> > > > > > > > > > > > >> use
> > > > > > > > > > > > >> > > time
> > > > > > > > > > > > >> > > > > to
> > > > > > > > > > > > >> > > > > > > talk
> > > > > > > > > > > > >> > > > > > > > >> >>>> through
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> design
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > > stuff, make
> sure
> > we
> > > > > are on
> > > > > > > > top
> > > > > > > > > of
> > > > > > > > > > > > code
> > > > > > > > > > > > >> > > > reviews,
> > > > > > > > > > > > >> > > > > > talk
> > > > > > > > > > > > >> > > > > > > > >> through
> > > > > > > > > > > > >> > > > > > > > >> >>>> any
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > tricky
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > > issues, etc.
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > > We can make it
> > > > publicly
> > > > > > > > > > available so
> > > > > > > > > > > > >> that
> > > > > > > > > > > > >> > > any
> > > > > > > > > > > > >> > > > > one
> > > > > > > > > > > > >> > > > > > > can
> > > > > > > > > > > > >> > > > > > > > >> follow
> > > > > > > > > > > > >> > > > > > > > >> >>>> along
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > who
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > > likes.
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > > Any interest in
> > > doing
> > > > > this?
> > > > > > > > If
> > > > > > > > > so
> > > > > > > > > > > > I'll
> > > > > > > > > > > > >> try
> > > > > > > > > > > > >> > > to
> > > > > > > > > > > > >> > > > > set
> > > > > > > > > > > > >> > > > > > it
> > > > > > > > > > > > >> > > > > > > > up
> > > > > > > > > > > > >> > > > > > > > >> >>>> starting
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> next
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > week.
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > > -Jay
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > > On Tue, Feb 24,
> > > 2015
> > > > at
> > > > > > > 3:57
> > > > > > > > > AM,
> > > > > > > > > > > > Andrii
> > > > > > > > > > > > >> > > > > Biletskyi
> > > > > > > > > > > > >> > > > > > <
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > >
> > > > > > > andrii.bilets...@stealth.ly>
> > > > > > > > > > wrote:
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > > > Hi all,
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > > >
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > > > I've updated
> > KIP
> > > > > page,
> > > > > > > > fixed
> > > > > > > > > /
> > > > > > > > > > > > >> aligned
> > > > > > > > > > > > >> > > > > document
> > > > > > > > > > > > >> > > > > > > > >> structure.
> > > > > > > > > > > > >> > > > > > > > >> >>>> Also I
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > added
> > > > > > > > > > > > >> > > > > > > > >> >>>> > >> > > > > > some
> > >
> > ...
> >
> > [Message clipped]
>



-- 
-- Guozhang

Reply via email to