On Wed, Mar 18, 2015 at 9:34 AM, Jun Rao <j...@confluent.io> 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.

I mentioned this in a separate thread, but it may be more relevant here:
It looks like the SimpleConsumer API exposes TopicMetadataRequest and
TopicMetadataResponse.
This means that KAFKA-1927 doesn't remove this duplication.

So I'm not sure we actually need KAFKA-1927 before implementing this KIP.
This doesn't mean I'm stopping work on KAFKA-1927, but perhaps it
means we can proceed in parallel?

> 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
>> >> > > > > > > > >> >>>> > >> > > > > > very initial proposal for
>> >> AdminClient so
>> >> > > we
>> >> > > > > have
>> >> > > > > > > > >> something
>> >> > > > > > > > >> >>>> to
>> >> > > > > > > > >> >>>> > >> start
>> >> > > > > > > > >> >>>> > >> > > > from
>> >> > > > > > > > >> >>>> > >> > > > > > while
>> >> > > > > > > > >> >>>> > >> > > > > > discussing the KIP.
>> >> > > > > > > > >> >>>> > >> > > > > >
>> >> > > > > > > > >> >>>> > >> > > > > >
>> >> > > > > > > > >> >>>> > >> > > > > >
>> >> > > > > > > > >> >>>> > >> > > > >
>> >> > > > > > > > >> >>>> > >> > > >
>> >> > > > > > > > >> >>>> > >> > >
>> >> > > > > > > > >> >>>> > >> >
>> >> > > > > > > > >> >>>> > >>
>> >> > > > > > > > >> >>>>
>> >> > > > > > > > >>
>> >> > > > > > > >
>> >> > > > > > >
>> >> > > > > >
>> >> > > > >
>> >> > > >
>> >> > >
>> >>
>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-4+-+Command+line+and+centralized+administrative+operations
>> >> > > > > > > > >> >>>> > >> > > > > >
>> >> > > > > > > > >> >>>> > >> > > > > > Thanks,
>> >> > > > > > > > >> >>>> > >> > > > > > Andrii Biletskyi
>> >> > > > > > > > >> >>>> > >> > > > > >
>> >> > > > > > > > >> >>>> > >> > > > > > On Wed, Feb 18, 2015 at 9:01 PM,
>> >> Andrii
>> >> > > > > > Biletskyi
>> >> > > > > > > <
>> >> > > > > > > > >> >>>> > >> > > > > > andrii.bilets...@stealth.ly>
>> wrote:
>> >> > > > > > > > >> >>>> > >> > > > > >
>> >> > > > > > > > >> >>>> > >> > > > > > > Jay,
>> >> > > > > > > > >> >>>> > >> > > > > > >
>> >> > > > > > > > >> >>>> > >> > > > > > > Re error messages: you are right,
>> >> in
>> >> > > most
>> >> > > > > > cases
>> >> > > > > > > > >> client
>> >> > > > > > > > >> >>>> will
>> >> > > > > > > > >> >>>> > >> have
>> >> > > > > > > > >> >>>> > >> > > > enough
>> >> > > > > > > > >> >>>> > >> > > > > > > context to show descriptive error
>> >> > > message.
>> >> > > > > My
>> >> > > > > > > > >> concern is
>> >> > > > > > > > >> >>>> that
>> >> > > > > > > > >> >>>> > >> we
>> >> > > > > > > > >> >>>> > >> > > will
>> >> > > > > > > > >> >>>> > >> > > > > > have
>> >> > > > > > > > >> >>>> > >> > > > > > > to
>> >> > > > > > > > >> >>>> > >> > > > > > > add lots of new error codes for
>> >> each
>> >> > > > > possible
>> >> > > > > > > > >> error. Of
>> >> > > > > > > > >> >>>> course,
>> >> > > > > > > > >> >>>> > >> > we
>> >> > > > > > > > >> >>>> > >> > > > > could
>> >> > > > > > > > >> >>>> > >> > > > > > > reuse
>> >> > > > > > > > >> >>>> > >> > > > > > > some of existing like
>> >> > > > > > > UknownTopicOrPartitionCode,
>> >> > > > > > > > >> but we
>> >> > > > > > > > >> >>>> will
>> >> > > > > > > > >> >>>> > >> > also
>> >> > > > > > > > >> >>>> > >> > > > need
>> >> > > > > > > > >> >>>> > >> > > > > > to
>> >> > > > > > > > >> >>>> > >> > > > > > > add smth like:
>> >> TopicAlreadyExistsCode,
>> >> > > > > > > > >> >>>> TopicConfigInvalid (both
>> >> > > > > > > > >> >>>> > >> > for
>> >> > > > > > > > >> >>>> > >> > > > > topic
>> >> > > > > > > > >> >>>> > >> > > > > > > name and config, and probably
>> user
>> >> would
>> >> > > > > like
>> >> > > > > > to
>> >> > > > > > > > >> know
>> >> > > > > > > > >> >>>> what
>> >> > > > > > > > >> >>>> > >> > exactly
>> >> > > > > > > > >> >>>> > >> > > > > > > is wrong in his config),
>> >> > > > > > > InvalidReplicaAssignment,
>> >> > > > > > > > >> >>>> > >> InternalError
>> >> > > > > > > > >> >>>> > >> > > > (e.g.
>> >> > > > > > > > >> >>>> > >> > > > > > > zookeeper failure) etc.
>> >> > > > > > > > >> >>>> > >> > > > > > > And this is only for
>> TopicCommand,
>> >> we
>> >> > > will
>> >> > > > > > also
>> >> > > > > > > > >> need to
>> >> > > > > > > > >> >>>> add
>> >> > > > > > > > >> >>>> > >> > similar
>> >> > > > > > > > >> >>>> > >> > > > > stuff
>> >> > > > > > > > >> >>>> > >> > > > > > > for
>> >> > > > > > > > >> >>>> > >> > > > > > > ReassignPartitions,
>> >> PreferredReplica. So
>> >> > > > > we'll
>> >> > > > > > > end
>> >> > > > > > > > >> up
>> >> > > > > > > > >> >>>> with a
>> >> > > > > > > > >> >>>> > >> > large
>> >> > > > > > > > >> >>>> > >> > > > list
>> >> > > > > > > > >> >>>> > >> > > > > > of
>> >> > > > > > > > >> >>>> > >> > > > > > > error codes, used only in Admin
>> >> > > protocol.
>> >> > > > > > > > >> >>>> > >> > > > > > > Having said that, I agree my
>> >> proposal is
>> >> > > > not
>> >> > > > > > > > >> consistent
>> >> > > > > > > > >> >>>> with
>> >> > > > > > > > >> >>>> > >> > other
>> >> > > > > > > > >> >>>> > >> > > > > cases.
>> >> > > > > > > > >> >>>> > >> > > > > > > Maybe we can find better solution
>> >> or
>> >> > > > > something
>> >> > > > > > > > >> >>>> in-between.
>> >> > > > > > > > >> >>>> > >> > > > > > >
>> >> > > > > > > > >> >>>> > >> > > > > > > Re Hangout chat: I think it is a
>> >> great
>> >> > > > idea.
>> >> > > > > > > This
>> >> > > > > > > > >> way we
>> >> > > > > > > > >> >>>> can
>> >> > > > > > > > >> >>>> > >> move
>> >> > > > > > > > >> >>>> > >> > > on
>> >> > > > > > > > >> >>>> > >> > > > > > > faster.
>> >> > > > > > > > >> >>>> > >> > > > > > > Let's agree somehow on date/time
>> so
>> >> > > people
>> >> > > > > can
>> >> > > > > > > > join.
>> >> > > > > > > > >> >>>> Will work
>> >> > > > > > > > >> >>>> > >> > for
>> >> > > > > > > > >> >>>> > >> > > me
>> >> > > > > > > > >> >>>> > >> > > > > > this
>> >> > > > > > > > >> >>>> > >> > > > > > > and
>> >> > > > > > > > >> >>>> > >> > > > > > > next week almost anytime if
>> agreed
>> >> in
>> >> > > > > advance.
>> >> > > > > > > > >> >>>> > >> > > > > > >
>> >> > > > > > > > >> >>>> > >> > > > > > > Thanks,
>> >> > > > > > > > >> >>>> > >> > > > > > > Andrii
>> >> > > > > > > > >> >>>> > >> > > > > > >
>> >> > > > > > > > >> >>>> > >> > > > > > > On Wed, Feb 18, 2015 at 7:09 PM,
>> >> Jay
>> >> > > > Kreps <
>> >> > > > > > > > >> >>>> > >> jay.kr...@gmail.com>
>> >> > > > > > > > >> >>>> > >> > > > > wrote:
>> >> > > > > > > > >> >>>> > >> > > > > > >
>> >> > > > > > > > >> >>>> > >> > > > > > >> Hey Andrii,
>> >> > > > > > > > >> >>>> > >> > > > > > >>
>> >> > > > > > > > >> >>>> > >> > > > > > >> 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.
>> >> > > > > > > > >> >>>> > >> > > > > > >>
>> >> > > > > > > > >> >>>> > >> > > > > > >> I still have a bunch of open
>> >> questions
>> >> > > > here
>> >> > > > > > > from
>> >> > > > > > > > my
>> >> > > > > > > > >> >>>> previous
>> >> > > > > > > > >> >>>> > >> > > list. I
>> >> > > > > > > > >> >>>> > >> > > > > > will
>> >> > > > > > > > >> >>>> > >> > > > > > >> be out for the next few days for
>> >> Strata
>> >> > > > > > though.
>> >> > > > > > > > >> Maybe
>> >> > > > > > > > >> >>>> we could
>> >> > > > > > > > >> >>>> > >> > do
>> >> > > > > > > > >> >>>> > >> > > a
>> >> > > > > > > > >> >>>> > >> > > > > > Google
>> >> > > > > > > > >> >>>> > >> > > > > > >> Hangout chat on any open issues
>> >> some
>> >> > > time
>> >> > > > > > > towards
>> >> > > > > > > > >> the
>> >> > > > > > > > >> >>>> end of
>> >> > > > > > > > >> >>>> > >> > next
>> >> > > > > > > > >> >>>> > >> > > > week
>> >> > > > > > > > >> >>>> > >> > > > > > for
>> >> > > > > > > > >> >>>> > >> > > > > > >> anyone interested in this
>> ticket?
>> >> I
>> >> > > have
>> >> > > > a
>> >> > > > > > > > feeling
>> >> > > > > > > > >> that
>> >> > > > > > > > >> >>>> might
>> >> > > > > > > > >> >>>> > >> > > > progress
>> >> > > > > > > > >> >>>> > >> > > > > > >> things a little faster than
>> >> email--I
>> >> > > > think
>> >> > > > > we
>> >> > > > > > > > >> could talk
>> >> > > > > > > > >> >>>> > >> through
>> >> > > > > > > > >> >>>> > >> > > > those
>> >> > > > > > > > >> >>>> > >> > > > > > >> issues I brought up fairly
>> >> quickly...
>> >> > > > > > > > >> >>>> > >> > > > > > >>
>> >> > > > > > > > >> >>>> > >> > > > > > >> -Jay
>> >> > > > > > > > >> >>>> > >> > > > > > >>
>> >> > > > > > > > >> >>>> > >> > > > > > >> On Wed, Feb 18, 2015 at 7:27 AM,
>> >> Andrii
>> >> > > > > > > > Biletskyi <
>> >> > > > > > > > >> >>>> > >> > > > > > >> andrii.bilets...@stealth.ly>
>> >> wrote:
>> >> > > > > > > > >> >>>> > >> > > > > > >>
>> >> > > > > > > > >> >>>> > >> > > > > > >> > Hi all,
>> >> > > > > > > > >> >>>> > >> > > > > > >> >
>> >> > > > > > > > >> >>>> > >> > > > > > >> > I'm trying to address some of
>> >> the
>> >> > > > issues
>> >> > > > > > > which
>> >> > > > > > > > >> were
>> >> > > > > > > > >> >>>> > >> mentioned
>> >> > > > > > > > >> >>>> > >> > > > > earlier
>> >> > > > > > > > >> >>>> > >> > > > > > >> about
>> >> > > > > > > > >> >>>> > >> > > > > > >> > Admin RQ/RP format. One of
>> >> those was
>> >> > > > > about
>> >> > > > > > > > >> batching
>> >> > > > > > > > >> >>>> > >> > operations.
>> >> > > > > > > > >> >>>> > >> > > > What
>> >> > > > > > > > >> >>>> > >> > > > > > if
>> >> > > > > > > > >> >>>> > >> > > > > > >> we
>> >> > > > > > > > >> >>>> > >> > > > > > >> > follow TopicCommand approach
>> >> and let
>> >> > > > > people
>> >> > > > > > > > >> specify
>> >> > > > > > > > >> >>>> > >> topic-name
>> >> > > > > > > > >> >>>> > >> > > by
>> >> > > > > > > > >> >>>> > >> > > > > > >> regexp -
>> >> > > > > > > > >> >>>> > >> > > > > > >> > would that cover most of the
>> use
>> >> > > cases?
>> >> > > > > > > > >> >>>> > >> > > > > > >> >
>> >> > > > > > > > >> >>>> > >> > > > > > >> > Secondly, is what information
>> >> should
>> >> > > we
>> >> > > > > > > > generally
>> >> > > > > > > > >> >>>> provide in
>> >> > > > > > > > >> >>>> > >> > > Admin
>> >> > > > > > > > >> >>>> > >> > > > > > >> > responses.
>> >> > > > > > > > >> >>>> > >> > > > > > >> > I realize that Admin commands
>> >> don't
>> >> > > > imply
>> >> > > > > > > they
>> >> > > > > > > > >> will
>> >> > > > > > > > >> >>>> be used
>> >> > > > > > > > >> >>>> > >> > only
>> >> > > > > > > > >> >>>> > >> > > > in
>> >> > > > > > > > >> >>>> > >> > > > > > CLI
>> >> > > > > > > > >> >>>> > >> > > > > > >> > but,
>> >> > > > > > > > >> >>>> > >> > > > > > >> > it seems to me, CLI is a very
>> >> > > important
>> >> > > > > > > client
>> >> > > > > > > > >> of this
>> >> > > > > > > > >> >>>> > >> > feature.
>> >> > > > > > > > >> >>>> > >> > > In
>> >> > > > > > > > >> >>>> > >> > > > > > this
>> >> > > > > > > > >> >>>> > >> > > > > > >> > case,
>> >> > > > > > > > >> >>>> > >> > > > > > >> > seems logical, we would like
>> to
>> >> > > provide
>> >> > > > > > users
>> >> > > > > > > > >> with
>> >> > > > > > > > >> >>>> rich
>> >> > > > > > > > >> >>>> > >> > > experience
>> >> > > > > > > > >> >>>> > >> > > > > in
>> >> > > > > > > > >> >>>> > >> > > > > > >> terms
>> >> > > > > > > > >> >>>> > >> > > > > > >> > of
>> >> > > > > > > > >> >>>> > >> > > > > > >> > getting results / errors of
>> the
>> >> > > > executed
>> >> > > > > > > > >> commands.
>> >> > > > > > > > >> >>>> Usually
>> >> > > > > > > > >> >>>> > >> we
>> >> > > > > > > > >> >>>> > >> > > > supply
>> >> > > > > > > > >> >>>> > >> > > > > > >> with
>> >> > > > > > > > >> >>>> > >> > > > > > >> > responses only errorCode,
>> which
>> >> looks
>> >> > > > > very
>> >> > > > > > > > >> limiting,
>> >> > > > > > > > >> >>>> in case
>> >> > > > > > > > >> >>>> > >> > of
>> >> > > > > > > > >> >>>> > >> > > > CLI
>> >> > > > > > > > >> >>>> > >> > > > > we
>> >> > > > > > > > >> >>>> > >> > > > > > >> may
>> >> > > > > > > > >> >>>> > >> > > > > > >> > want to print human readable
>> >> error
>> >> > > > > > > description.
>> >> > > > > > > > >> >>>> > >> > > > > > >> >
>> >> > > > > > > > >> >>>> > >> > > > > > >> > So, taking into account
>> >> previous item
>> >> > > > > about
>> >> > > > > > > > >> batching,
>> >> > > > > > > > >> >>>> what
>> >> > > > > > > > >> >>>> > >> do
>> >> > > > > > > > >> >>>> > >> > > you
>> >> > > > > > > > >> >>>> > >> > > > > > think
>> >> > > > > > > > >> >>>> > >> > > > > > >> > about
>> >> > > > > > > > >> >>>> > >> > > > > > >> > having smth like:
>> >> > > > > > > > >> >>>> > >> > > > > > >> >
>> >> > > > > > > > >> >>>> > >> > > > > > >> > ('create' doesn't support
>> >> regexp)
>> >> > > > > > > > >> >>>> > >> > > > > > >> > CreateTopicRequest =>
>> TopicName
>> >> > > > > Partitions
>> >> > > > > > > > >> Replicas
>> >> > > > > > > > >> >>>> > >> > > > > ReplicaAssignment
>> >> > > > > > > > >> >>>> > >> > > > > > >> > [Config]
>> >> > > > > > > > >> >>>> > >> > > > > > >> > CreateTopicResponse =>
>> ErrorCode
>> >> > > > > > > > ErrorDescription
>> >> > > > > > > > >> >>>> > >> > > > > > >> >   ErrorCode => int16
>> >> > > > > > > > >> >>>> > >> > > > > > >> >   ErrorDescription => string
>> >> (empty
>> >> > > if
>> >> > > > > > > > >> successful)
>> >> > > > > > > > >> >>>> > >> > > > > > >> >
>> >> > > > > > > > >> >>>> > >> > > > > > >> > AlterTopicRequest ->
>> >> TopicNameRegexp
>> >> > > >
>> >
>> > ...
>> >
>> > [Message clipped]
>>

Reply via email to