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 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