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 Partitions
>>>> > >> > > ReplicaAssignment
>>>> > >> > > > > > >> > [AddedConfig] [DeletedConfig]
>>>> > >> > > > > > >> > AlterTopicResponse -> [TopicName ErrorCode
>>>> ErrorDescription]
>>>> > >> > > > > > >> > CommandErrorCode CommandErrorDescription
>>>> > >> > > > > > >> >   CommandErrorCode => int16
>>>> > >> > > > > > >> >   CommandErrorDescription => string (nonempty in case
>>>> of
>>>> > >> fatal
>>>> > >> > > > > error,
>>>> > >> > > > > > >> e.g.
>>>> > >> > > > > > >> > we couldn't get topics by regexp)
>>>> > >> > > > > > >> >
>>>> > >> > > > > > >> > DescribeTopicRequest -> TopicNameRegexp
>>>> > >> > > > > > >> > DescribeTopicResponse -> [TopicName TopicDescription
>>>> > >> ErrorCode
>>>> > >> > > > > > >> > ErrorDescription] CommandErrorCode
>>>> CommandErrorDescription
>>>> > >> > > > > > >> >
>>>> > >> > > > > > >> > Also, any thoughts about our discussion regarding
>>>> re-routing
>>>> > >> > > > > facility?
>>>> > >> > > > > > >> In
>>>> > >> > > > > > >> > my
>>>> > >> > > > > > >> > understanding, it is like between augmenting
>>>> > >> > > TopicMetadataRequest
>>>> > >> > > > > > >> > (to include at least controllerId) and implementing
>>>> new
>>>> > >> > generic
>>>> > >> > > > > > >> re-routing
>>>> > >> > > > > > >> > facility so sending messages to controller will be
>>>> handled
>>>> > >> by
>>>> > >> > > it.
>>>> > >> > > > > > >> >
>>>> > >> > > > > > >> > Thanks,
>>>> > >> > > > > > >> > Andrii Biletskyi
>>>> > >> > > > > > >> >
>>>> > >> > > > > > >> > On Mon, Feb 16, 2015 at 5:26 PM, Andrii Biletskyi <
>>>> > >> > > > > > >> > andrii.bilets...@stealth.ly> wrote:
>>>> > >> > > > > > >> >
>>>> > >> > > > > > >> > > @Guozhang:
>>>> > >> > > > > > >> > > Thanks for your comments, I've answered some of
>>>> those. The
>>>> > >> > > main
>>>> > >> > > > > > thing
>>>> > >> > > > > > >> is
>>>> > >> > > > > > >> > > having merged request for
>>>> create-alter-delete-describe - I
>>>> > >> > > have
>>>> > >> > > > > some
>>>> > >> > > > > > >> > > concerns about this approach.
>>>> > >> > > > > > >> > >
>>>> > >> > > > > > >> > > @*Jay*:
>>>> > >> > > > > > >> > > I see that introduced ClusterMetadaRequest is also
>>>> one of
>>>> > >> > the
>>>> > >> > > > > > >> concerns.
>>>> > >> > > > > > >> > We
>>>> > >> > > > > > >> > > can solve it if we implement re-routing facility.
>>>> But I
>>>> > >> > agree
>>>> > >> > > > with
>>>> > >> > > > > > >> > > Guozhang - it will make clients' internals a little
>>>> bit
>>>> > >> > easier
>>>> > >> > > > but
>>>> > >> > > > > > >> this
>>>> > >> > > > > > >> > > seems to be a complex logic to implement and
>>>> support then.
>>>> > >> > > > > > Especially
>>>> > >> > > > > > >> for
>>>> > >> > > > > > >> > > Fetch and Produce (even if we add re-routing later
>>>> for
>>>> > >> these
>>>> > >> > > > > > >> requests).
>>>> > >> > > > > > >> > > Also people will tend to avoid this re-routing
>>>> facility
>>>> > >> and
>>>> > >> > > hold
>>>> > >> > > > > > local
>>>> > >> > > > > > >> > > cluster cache to ensure their high-priority requests
>>>> > >> (which
>>>> > >> > > some
>>>> > >> > > > > of
>>>> > >> > > > > > >> the
>>>> > >> > > > > > >> > > admin requests are) not sent to some busy broker
>>>> where
>>>> > >> they
>>>> > >> > > wait
>>>> > >> > > > > to
>>>> > >> > > > > > be
>>>> > >> > > > > > >> > > routed to the correct one.
>>>> > >> > > > > > >> > > As pointed out by Jun here (
>>>> > >> > > > > > >> > >
>>>> > >> > > > > > >> >
>>>> > >> > > > > > >>
>>>> > >> > > > > >
>>>> > >> > > > >
>>>> > >> > > >
>>>> > >> > >
>>>> > >> >
>>>> > >>
>>>> https://issues.apache.org/jira/browse/KAFKA-1772?focusedCommentId=14234530&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14234530
>>>> > >> > > > > > >> > )
>>>> > >> > > > > > >> > > to solve the issue we might introduce a message
>>>> type to
>>>> > >> get
>>>> > >> > > > > cluster
>>>> > >> > > > > > >> > state.
>>>> > >> > > > > > >> > > But I agree we can just update
>>>> TopicMetadataResponse to
>>>> > >> > > include
>>>> > >> > > > > > >> > > controllerId (and probably smth else).
>>>> > >> > > > > > >> > > What are you thougths?
>>>> > >> > > > > > >> > >
>>>> > >> > > > > > >> > > Thanks,
>>>> > >> > > > > > >> > > Andrii
>>>> > >> > > > > > >> > >
>>>> > >> > > > > > >> > > On Thu, Feb 12, 2015 at 8:31 AM, Guozhang Wang <
>>>> > >> > > > > wangg...@gmail.com>
>>>> > >> > > > > > >> > wrote:
>>>> > >> > > > > > >> > >
>>>> > >> > > > > > >> > >> I think for the topics commands we can actually
>>>> merge
>>>> > >> > > > > > >> > >> create/alter/delete/describe as one request type
>>>> since
>>>> > >> > their
>>>> > >> > > > > > formats
>>>> > >> > > > > > >> are
>>>> > >> > > > > > >> > >> very much similar, and keep list-topics and others
>>>> like
>>>> > >> > > > > > >> > >> partition-reassignment / preferred-leader-election
>>>> as
>>>> > >> > > separate
>>>> > >> > > > > > >> request
>>>> > >> > > > > > >> > >> types, I also left some other comments on the RB (
>>>> > >> > > > > > >> > >> https://reviews.apache.org/r/29301/).
>>>> > >> > > > > > >> > >>
>>>> > >> > > > > > >> > >> On Wed, Feb 11, 2015 at 2:04 PM, Jay Kreps <
>>>> > >> > > > jay.kr...@gmail.com>
>>>> > >> > > > > > >> wrote:
>>>> > >> > > > > > >> > >>
>>>> > >> > > > > > >> > >> > Yeah I totally agree that we don't want to just
>>>> have
>>>> > >> one
>>>> > >> > > "do
>>>> > >> > > > > > admin
>>>> > >> > > > > > >> > >> stuff"
>>>> > >> > > > > > >> > >> > command that has the union of all parameters.
>>>> > >> > > > > > >> > >> >
>>>> > >> > > > > > >> > >> > What I am saying is that command line tools are
>>>> one
>>>> > >> > client
>>>> > >> > > of
>>>> > >> > > > > the
>>>> > >> > > > > > >> > >> > administrative apis, but these will be used in a
>>>> number
>>>> > >> > of
>>>> > >> > > > > > >> scenarios
>>>> > >> > > > > > >> > so
>>>> > >> > > > > > >> > >> > they should make logical sense even in the
>>>> absence of
>>>> > >> the
>>>> > >> > > > > command
>>>> > >> > > > > > >> line
>>>> > >> > > > > > >> > >> > tool. Hence comments like trying to clarify the
>>>> > >> > > relationship
>>>> > >> > > > > > >> between
>>>> > >> > > > > > >> > >> > ClusterMetadata and TopicMetadata...these kinds
>>>> of
>>>> > >> things
>>>> > >> > > > > really
>>>> > >> > > > > > >> need
>>>> > >> > > > > > >> > >> to be
>>>> > >> > > > > > >> > >> > thought through.
>>>> > >> > > > > > >> > >> >
>>>> > >> > > > > > >> > >> > Hope that makes sense.
>>>> > >> > > > > > >> > >> >
>>>> > >> > > > > > >> > >> > -Jay
>>>> > >> > > > > > >> > >> >
>>>> > >> > > > > > >> > >> > On Wed, Feb 11, 2015 at 1:41 PM, Andrii
>>>> Biletskyi <
>>>> > >> > > > > > >> > >> > andrii.bilets...@stealth.ly> wrote:
>>>> > >> > > > > > >> > >> >
>>>> > >> > > > > > >> > >> > > Jay,
>>>> > >> > > > > > >> > >> > >
>>>> > >> > > > > > >> > >> > > Thanks for answering. You understood
>>>> correctly, most
>>>> > >> of
>>>> > >> > > my
>>>> > >> > > > > > >> comments
>>>> > >> > > > > > >> > >> were
>>>> > >> > > > > > >> > >> > > related to your point 1) - about "well
>>>> thought-out"
>>>> > >> > apis.
>>>> > >> > > > > Also,
>>>> > >> > > > > > >> yes,
>>>> > >> > > > > > >> > >> as I
>>>> > >> > > > > > >> > >> > > understood we would like to introduce a single
>>>> > >> unified
>>>> > >> > > CLI
>>>> > >> > > > > tool
>>>> > >> > > > > > >> with
>>>> > >> > > > > > >> > >> > > centralized server-side request handling for
>>>> lots of
>>>> > >> > > > existing
>>>> > >> > > > > > >> ones
>>>> > >> > > > > > >> > >> (incl.
>>>> > >> > > > > > >> > >> > > TopicCommand, CommitOffsetChecker,
>>>> > >> ReassignPartitions,
>>>> > >> > > smth
>>>> > >> > > > > > else
>>>> > >> > > > > > >> if
>>>> > >> > > > > > >> > >> added
>>>> > >> > > > > > >> > >> > > in future). In our previous discussion (
>>>> > >> > > > > > >> > >> > >
>>>> https://issues.apache.org/jira/browse/KAFKA-1694)
>>>> > >> > people
>>>> > >> > > > > said
>>>> > >> > > > > > >> > they'd
>>>> > >> > > > > > >> > >> > > rather
>>>> > >> > > > > > >> > >> > > have a separate message for each command, so,
>>>> yes,
>>>> > >> this
>>>> > >> > > > way I
>>>> > >> > > > > > >> came
>>>> > >> > > > > > >> > to
>>>> > >> > > > > > >> > >> 1-1
>>>> > >> > > > > > >> > >> > > mapping between commands in the tool and
>>>> protocol
>>>> > >> > > > additions.
>>>> > >> > > > > > But
>>>> > >> > > > > > >> I
>>>> > >> > > > > > >> > >> might
>>>> > >> > > > > > >> > >> > be
>>>> > >> > > > > > >> > >> > > wrong.
>>>> > >> > > > > > >> > >> > > At the end I just try to start discussion how
>>>> at
>>>> > >> least
>>>> > >> > > > > > generally
>>>> > >> > > > > > >> > this
>>>> > >> > > > > > >> > >> > > protocol should look like.
>>>> > >> > > > > > >> > >> > >
>>>> > >> > > > > > >> > >> > > Thanks,
>>>> > >> > > > > > >> > >> > > Andrii
>>>> > >> > > > > > >> > >> > >
>>>> > >> > > > > > >> > >> > > On Wed, Feb 11, 2015 at 11:10 PM, Jay Kreps <
>>>> > >> > > > > > jay.kr...@gmail.com
>>>> > >> > > > > > >> >
>>>> > >> > > > > > >> > >> wrote:
>>>> > >> > > > > > >> > >> > >
>>>> > >> > > > > > >> > >> > > > Hey Andrii,
>>>> > >> > > > > > >> > >> > > >
>>>> > >> > > > > > >> > >> > > > To answer your earlier question we just
>>>> really
>>>> > >> can't
>>>> > >> > be
>>>> > >> > > > > > adding
>>>> > >> > > > > > >> any
>>>> > >> > > > > > >> > >> more
>>>> > >> > > > > > >> > >> > > > scala protocol objects. These things are
>>>> super hard
>>>> > >> > to
>>>> > >> > > > > > maintain
>>>> > >> > > > > > >> > >> because
>>>> > >> > > > > > >> > >> > > > they hand code the byte parsing and don't
>>>> have good
>>>> > >> > > > > > versioning
>>>> > >> > > > > > >> > >> support.
>>>> > >> > > > > > >> > >> > > > Since we are already planning on converting
>>>> we
>>>> > >> > > definitely
>>>> > >> > > > > > don't
>>>> > >> > > > > > >> > >> want to
>>>> > >> > > > > > >> > >> > > add
>>>> > >> > > > > > >> > >> > > > a ton more of these--they are total tech
>>>> debt.
>>>> > >> > > > > > >> > >> > > >
>>>> > >> > > > > > >> > >> > > > What does it mean that the changes are
>>>> isolated
>>>> > >> from
>>>> > >> > > the
>>>> > >> > > > > > >> current
>>>> > >> > > > > > >> > >> code
>>>> > >> > > > > > >> > >> > > base?
>>>> > >> > > > > > >> > >> > > >
>>>> > >> > > > > > >> > >> > > > I actually didn't understand the remaining
>>>> > >> comments,
>>>> > >> > > > which
>>>> > >> > > > > of
>>>> > >> > > > > > >> the
>>>> > >> > > > > > >> > >> > points
>>>> > >> > > > > > >> > >> > > > are you responding to?
>>>> > >> > > > > > >> > >> > > >
>>>> > >> > > > > > >> > >> > > > Maybe one sticking point here is that it
>>>> seems like
>>>> > >> > you
>>>> > >> > > > > want
>>>> > >> > > > > > to
>>>> > >> > > > > > >> > make
>>>> > >> > > > > > >> > >> > some
>>>> > >> > > > > > >> > >> > > > kind of tool, and you have made a 1-1 mapping
>>>> > >> between
>>>> > >> > > > > > commands
>>>> > >> > > > > > >> you
>>>> > >> > > > > > >> > >> > > imagine
>>>> > >> > > > > > >> > >> > > > in the tool and protocol additions. I want
>>>> to make
>>>> > >> > sure
>>>> > >> > > > we
>>>> > >> > > > > > >> don't
>>>> > >> > > > > > >> > do
>>>> > >> > > > > > >> > >> > that.
>>>> > >> > > > > > >> > >> > > > The protocol needs to be really really well
>>>> thought
>>>> > >> > out
>>>> > >> > > > > > against
>>>> > >> > > > > > >> > many
>>>> > >> > > > > > >> > >> > use
>>>> > >> > > > > > >> > >> > > > cases so it should make perfect logical
>>>> sense in
>>>> > >> the
>>>> > >> > > > > absence
>>>> > >> > > > > > of
>>>> > >> > > > > > >> > >> knowing
>>>> > >> > > > > > >> > >> > > the
>>>> > >> > > > > > >> > >> > > > command line tool, right?
>>>> > >> > > > > > >> > >> > > >
>>>> > >> > > > > > >> > >> > > > -Jay
>>>> > >> > > > > > >> > >> > > >
>>>> > >> > > > > > >> > >> > > > On Wed, Feb 11, 2015 at 11:57 AM, Andrii
>>>> Biletskyi
>>>> > >> <
>>>> > >> > > > > > >> > >> > > > andrii.bilets...@stealth.ly> wrote:
>>>> > >> > > > > > >> > >> > > >
>>>> > >> > > > > > >> > >> > > > > Hey Jay,
>>>> > >> > > > > > >> > >> > > > >
>>>> > >> > > > > > >> > >> > > > > I would like to continue this discussion
>>>> as it
>>>> > >> seem
>>>> > >> > > > there
>>>> > >> > > > > > is
>>>> > >> > > > > > >> no
>>>> > >> > > > > > >> > >> > > progress
>>>> > >> > > > > > >> > >> > > > > here.
>>>> > >> > > > > > >> > >> > > > >
>>>> > >> > > > > > >> > >> > > > > First of all, could you please explain
>>>> what did
>>>> > >> you
>>>> > >> > > > mean
>>>> > >> > > > > in
>>>> > >> > > > > > >> 2?
>>>> > >> > > > > > >> > How
>>>> > >> > > > > > >> > >> > > > exactly
>>>> > >> > > > > > >> > >> > > > > are we going to migrate to the new java
>>>> protocol
>>>> > >> > > > > > definitions.
>>>> > >> > > > > > >> > And
>>>> > >> > > > > > >> > >> why
>>>> > >> > > > > > >> > >> > > > it's
>>>> > >> > > > > > >> > >> > > > > a blocker for centralized CLI?
>>>> > >> > > > > > >> > >> > > > >
>>>> > >> > > > > > >> > >> > > > > I agree with you, this feature includes
>>>> lots of
>>>> > >> > > stuff,
>>>> > >> > > > > but
>>>> > >> > > > > > >> > >> thankfully
>>>> > >> > > > > > >> > >> > > > > almost all changes are isolated from the
>>>> current
>>>> > >> > code
>>>> > >> > > > > base,
>>>> > >> > > > > > >> > >> > > > > so the main thing, I think, we need to
>>>> agree is
>>>> > >> > RQ/RP
>>>> > >> > > > > > format.
>>>> > >> > > > > > >> > >> > > > > So how can we start discussion about the
>>>> concrete
>>>> > >> > > > > messages
>>>> > >> > > > > > >> > format?
>>>> > >> > > > > > >> > >> > > > > Can we take (
>>>> > >> > > > > > >> > >> > > > >
>>>> > >> > > > > > >> > >> > > > >
>>>> > >> > > > > > >> > >> > > >
>>>> > >> > > > > > >> > >> > >
>>>> > >> > > > > > >> > >> >
>>>> > >> > > > > > >> > >>
>>>> > >> > > > > > >> >
>>>> > >> > > > > > >>
>>>> > >> > > > > >
>>>> > >> > > > >
>>>> > >> > > >
>>>> > >> > >
>>>> > >> >
>>>> > >>
>>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-4+-+Command+line+and+centralized+administrative+operations#KIP-4-Commandlineandcentralizedadministrativeoperations-ProposedRQ/RPFormat
>>>> > >> > > > > > >> > >> > > > > )
>>>> > >> > > > > > >> > >> > > > > as starting point?
>>>> > >> > > > > > >> > >> > > > >
>>>> > >> > > > > > >> > >> > > > > We had some doubts earlier whether it worth
>>>> > >> > > introducing
>>>> > >> > > > > one
>>>> > >> > > > > > >> > >> generic
>>>> > >> > > > > > >> > >> > > Admin
>>>> > >> > > > > > >> > >> > > > > Request for all commands (
>>>> > >> > > > > > >> > >> > > >
>>>> https://issues.apache.org/jira/browse/KAFKA-1694
>>>> > >> > > > > > >> > >> > > > > )
>>>> > >> > > > > > >> > >> > > > > but then everybody agreed it would be
>>>> better to
>>>> > >> > have
>>>> > >> > > > > > separate
>>>> > >> > > > > > >> > >> message
>>>> > >> > > > > > >> > >> > > for
>>>> > >> > > > > > >> > >> > > > > each admin command. The Request part is
>>>> really
>>>> > >> > > dictated
>>>> > >> > > > > > from
>>>> > >> > > > > > >> the
>>>> > >> > > > > > >> > >> > > command
>>>> > >> > > > > > >> > >> > > > > (e.g. TopicCommand) arguments itself, so
>>>> the
>>>> > >> > proposed
>>>> > >> > > > > > version
>>>> > >> > > > > > >> > >> should
>>>> > >> > > > > > >> > >> > be
>>>> > >> > > > > > >> > >> > > > > fine (let's put aside for now remarks about
>>>> > >> > Optional
>>>> > >> > > > > type,
>>>> > >> > > > > > >> > >> batching,
>>>> > >> > > > > > >> > >> > > > > configs normalization - I agree with all of
>>>> > >> them).
>>>> > >> > > > > > >> > >> > > > > So the second part is Response. I see
>>>> there are
>>>> > >> two
>>>> > >> > > > cases
>>>> > >> > > > > > >> here.
>>>> > >> > > > > > >> > >> > > > > a) "Mutate" requests - Create/Alter/... ;
>>>> b)
>>>> > >> "Get"
>>>> > >> > > > > > requests -
>>>> > >> > > > > > >> > >> > > > > List/Describe...
>>>> > >> > > > > > >> > >> > > > >
>>>> > >> > > > > > >> > >> > > > > a) should only hold request result
>>>> (regardless
>>>> > >> what
>>>> > >> > > we
>>>> > >> > > > > > decide
>>>> > >> > > > > > >> > >> about
>>>> > >> > > > > > >> > >> > > > > blocking/non-blocking commands execution).
>>>> > >> > > > > > >> > >> > > > > Usually we provide error code in response
>>>> but
>>>> > >> since
>>>> > >> > > we
>>>> > >> > > > > will
>>>> > >> > > > > > >> use
>>>> > >> > > > > > >> > >> this
>>>> > >> > > > > > >> > >> > in
>>>> > >> > > > > > >> > >> > > > > interactive shell we need some human
>>>> readable
>>>> > >> error
>>>> > >> > > > > > >> description
>>>> > >> > > > > > >> > -
>>>> > >> > > > > > >> > >> so
>>>> > >> > > > > > >> > >> > I
>>>> > >> > > > > > >> > >> > > > > added errorDesription field where you can
>>>> at
>>>> > >> least
>>>> > >> > > > leave
>>>> > >> > > > > > >> > >> > > > > exception.getMessage.
>>>> > >> > > > > > >> > >> > > > >
>>>> > >> > > > > > >> > >> > > > > b) in addition to previous item message
>>>> should
>>>> > >> hold
>>>> > >> > > > > command
>>>> > >> > > > > > >> > >> specific
>>>> > >> > > > > > >> > >> > > > > response data. We can discuss in detail
>>>> each of
>>>> > >> > them
>>>> > >> > > > but
>>>> > >> > > > > > >> let's
>>>> > >> > > > > > >> > for
>>>> > >> > > > > > >> > >> > now
>>>> > >> > > > > > >> > >> > > > > agree about the overall pattern.
>>>> > >> > > > > > >> > >> > > > >
>>>> > >> > > > > > >> > >> > > > > Thanks,
>>>> > >> > > > > > >> > >> > > > > Andrii Biletskyi
>>>> > >> > > > > > >> > >> > > > >
>>>> > >> > > > > > >> > >> > > > > On Fri, Jan 23, 2015 at 6:59 AM, Jay Kreps
>>>> <
>>>> > >> > > > > > >> jay.kr...@gmail.com
>>>> > >> > > > > > >> > >
>>>> > >> > > > > > >> > >> > > wrote:
>>>> > >> > > > > > >> > >> > > > >
>>>> > >> > > > > > >> > >> > > > > > Hey Joe,
>>>> > >> > > > > > >> > >> > > > > >
>>>> > >> > > > > > >> > >> > > > > > This is great. A few comments on KIP-4
>>>> > >> > > > > > >> > >> > > > > >
>>>> > >> > > > > > >> > >> > > > > > 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.
>>>> > >> > > > > > >> > >> > > > > >
>>>> > >> > > > > > >> > >> > > > > > 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.
>>>> > >> > > > > > >> > >> > > > > >
>>>> > >> > > > > > >> > >> > > > > > 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.
>>>> > >> > > > > > >> > >> > > > > >
>>>> > >> > > > > > >> > >> > > > > > 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?
>>>> > >> > > > > > >> > >> > > > > >
>>>> > >> > > > > > >> > >> > > > > > 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.
>>>> > >> > > > > > >> > >> > > > > >
>>>> > >> > > > > > >> > >> > > > > > 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.
>>>> > >> > > > > > >> > >> > > > > >
>>>> > >> > > > > > >> > >> > > > > > 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.
>>>> > >> > > > > > >> > >> > > > > >
>>>> > >> > > > > > >> > >> > > > > > 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.
>>>> > >> > > > > > >> > >> > > > > >
>>>> > >> > > > > > >> > >> > > > > > 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.
>>>> > >> > > > > > >> > >> > > > > >
>>>> > >> > > > > > >> > >> > > > > > 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.
>>>> > >> > > > > > >> > >> > > > > >
>>>> > >> > > > > > >> > >> > > > > > 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.
>>>> > >> > > > > > >> > >> > > > > >
>>>> > >> > > > > > >> > >> > > > > > -Jay
>>>> > >> > > > > > >> > >> > > > > >
>>>> > >> > > > > > >> > >> > > > > > On Wed, Jan 21, 2015 at 10:27 PM, Joe
>>>> Stein <
>>>> > >> > > > > > >> > >> joe.st...@stealth.ly>
>>>> > >> > > > > > >> > >> > > > > wrote:
>>>> > >> > > > > > >> > >> > > > > >
>>>> > >> > > > > > >> > >> > > > > > > Hi, created a KIP
>>>> > >> > > > > > >> > >> > > > > > >
>>>> > >> > > > > > >> > >> > > > > > >
>>>> > >> > > > > > >> > >> > > > > >
>>>> > >> > > > > > >> > >> > > > >
>>>> > >> > > > > > >> > >> > > >
>>>> > >> > > > > > >> > >> > >
>>>> > >> > > > > > >> > >> >
>>>> > >> > > > > > >> > >>
>>>> > >> > > > > > >> >
>>>> > >> > > > > > >>
>>>> > >> > > > > >
>>>> > >> > > > >
>>>> > >> > > >
>>>> > >> > >
>>>> > >> >
>>>> > >>
>>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-4+-+Command+line+and+centralized+administrative+operations
>>>> > >> > > > > > >> > >> > > > > > >
>>>> > >> > > > > > >> > >> > > > > > > JIRA
>>>> > >> > > > > https://issues.apache.org/jira/browse/KAFKA-1694
>>>> > >> > > > > > >> > >> > > > > > >
>>>> > >> > > > > > >> > >> > > > > > >
>>>> /*******************************************
>>>> > >> > > > > > >> > >> > > > > > >  Joe Stein
>>>> > >> > > > > > >> > >> > > > > > >  Founder, Principal Consultant
>>>> > >> > > > > > >> > >> > > > > > >  Big Data Open Source Security LLC
>>>> > >> > > > > > >> > >> > > > > > >  http://www.stealth.ly
>>>> > >> > > > > > >> > >> > > > > > >  Twitter: @allthingshadoop <
>>>> > >> > > > > > >> > >> > http://www.twitter.com/allthingshadoop
>>>> > >> > > > > > >> > >> > > >
>>>> > >> > > > > > >> > >> > > > > > >
>>>> ********************************************/
>>>> > >> > > > > > >> > >> > > > > > >
>>>> > >> > > > > > >> > >> > > > > >
>>>> > >> > > > > > >> > >> > > > >
>>>> > >> > > > > > >> > >> > > >
>>>> > >> > > > > > >> > >> > >
>>>> > >> > > > > > >> > >> >
>>>> > >> > > > > > >> > >>
>>>> > >> > > > > > >> > >>
>>>> > >> > > > > > >> > >>
>>>> > >> > > > > > >> > >> --
>>>> > >> > > > > > >> > >> -- Guozhang
>>>> > >> > > > > > >> > >>
>>>> > >> > > > > > >> > >
>>>> > >> > > > > > >> > >
>>>> > >> > > > > > >> >
>>>> > >> > > > > > >>
>>>> > >> > > > > > >
>>>> > >> > > > > > >
>>>> > >> > > > > >
>>>> > >> > > > >
>>>> > >> > > >
>>>> > >> > >
>>>> > >> >
>>>> > >> >
>>>> > >> >
>>>> > >> > --
>>>> > >> > Jeff Holoman
>>>> > >> > Systems Engineer
>>>> > >> >
>>>> > >>
>>>>
>>>>
>>>
>>>
>>> --
>>> -- Guozhang
>>>
>>
>>
>>
>> --
>> -- Guozhang

Reply via email to