Hi Ismael,

Thanks for the review. See my responses below.

One potential issue is that the number of topics in the response won't
> match the number of topics in the request. Worth checking what others think
> of this one.


Based on the choice of how we handled duplicate topics in the create topics
protocol, I took the same approach here. At one point create topics would
disconnect because I could't return an error per topic request. In the end
the preference was to return and error code even though the cardinality
would be different.

4. When requesting to delete a topic that is already marked for
> > >    deletion, the request will wait for the wait for the timeout and
> > return as
> > >    usual
>
> Do you mean that it will wait up to the timeout until the delete is
> "complete" as per the definition in `6`? Or will it wait unconditionally
> until the timeout expires? It would be good to make that clear.
>

That's exactly what I meant. I updated the wiki.

This could leak topic name information (as per KAFKA-3396, which was filed
> by you). We would probably want to return `InvalidTopic` for the case where
> the user doesn't have a valid `DESCRIBE TOPIC` ACL, right?


Good point. I will update the wiki and patch.

Unauthorized requests will receive a TopicAuthorizationException if they
are authorized to the "Describe" Operation on the "Topic" resource.
Otherwise they will receive an InvalidTopicException as if the topic does
not exist.

I was wondering (and this applies to the create topic as well), is there
> any value in a flag that says whether the timeout expired or not?


In both the create and delete response we return a TimeoutException error
code for the topics that did not "complete" in time. This allows the client
to know which topics actions completed and which timed out. I updated the
wiki to explicitly call this out in the response section.

Thanks,
Grant

On Tue, Jun 21, 2016 at 5:44 AM, Ismael Juma <ism...@juma.me.uk> wrote:

> Thanks Grant. A few comments inline.
>
> On Mon, Jun 20, 2016 at 9:09 PM, Grant Henke <ghe...@cloudera.com> wrote:
>
> > >    2. If there are multiple instructions for the same topic in one
> > >    request the extra request will be ignored
> > >       - This is because the list of topics is modeled server side as a
> > set
> > >       - Multiple deletes results in the same end goal, so handling this
> > >       error for the user should be okay
> >
>
> One potential issue is that the number of topics in the response won't
> match the number of topics in the request. Worth checking what others think
> of this one.
>
> 4. When requesting to delete a topic that is already marked for
> > >    deletion, the request will wait for the wait for the timeout and
> > return as
> > >    usual
>
>
> Do you mean that it will wait up to the timeout until the delete is
> "complete" as per the definition in `6`? Or will it wait unconditionally
> until the timeout expires? It would be good to make that clear.
>
>
> > >    5. The principal must be authorized to the "Delete" Operation on the
> >
> >    "Topic" resource to delete the topic.
> > >       - Unauthorized requests will receive a
> TopicAuthorizationException
> >
>
> This could leak topic name information (as per KAFKA-3396, which was filed
> by you). We would probably want to return `InvalidTopic` for the case where
> the user doesn't have a valid `DESCRIBE TOPIC` ACL, right?
>
>
> > >    - Why have a timeout at all? Deletes could take a while?
> >
>
> I was wondering (and this applies to the create topic as well), is there
> any value in a flag that says whether the timeout expired or not?
>
> Thanks,
> Ismael
>



-- 
Grant Henke
Software Engineer | Cloudera
gr...@cloudera.com | twitter.com/gchenke | linkedin.com/in/granthenke

Reply via email to