Gwen, Yes, looks like KAFKA-1927 will leave TopicMetadataRequest/Response. But I believe, KIP is still tightly related with KAFKA-1927 since we are not only going to update TopicMetadataRequest there but we will introduce a bunch of new requests too. And it probably makes sense to do those correctly from scratch - without introducing scala request objects. As I understand you'll have this common infrastructure code done in KAFKA-1927.
Thanks, Andrii Biletskyi On Wed, Mar 18, 2015 at 8:38 PM, Gwen Shapira <gshap...@cloudera.com> wrote: > 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] > >> >