+1 (binding)

On Fri, Jun 24, 2016 at 7:16 PM, Onur Karaman <okara...@linkedin.com.invalid
> wrote:

> +1
>
> On Fri, Jun 24, 2016 at 9:52 AM, Jay Kreps <j...@confluent.io> wrote:
>
> > +1
> >
> > On Thu, Jun 23, 2016 at 8:32 PM, Grant Henke <ghe...@cloudera.com>
> wrote:
> >
> > > I would like to initiate the voting process for the "KIP-4 Delete
> Topics
> > > Schema changes". This is not a vote for all of KIP-4, but specifically
> > for
> > > the delete topics changes. I have included the exact changes below for
> > > clarity:
> > > >
> > > > Delete Topics Request (KAFKA-2946
> > > > <https://issues.apache.org/jira/browse/KAFKA-2946>)
> > > >
> > > > DeleteTopics Request (Version: 0) => [topics] timeout
> > > >   topics => STRING
> > > >   timeout => INT32
> > > >
> > > > DeleteTopicsRequest is a batch request to initiate topic deletion.
> > > >
> > > > Request semantics:
> > > >
> > > >    1. Must be sent to the controller broker
> > > >    2. If there are multiple instructions for the same topic in one
> > > >    request the extra request will be ingnored
> > > >       - 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
> > > >    3. When requesting to delete a topic that does not exist, a an
> > > >    InvalidTopic error will be returned for that topic.
> > > >    4. When requesting to delete a topic that is already marked for
> > > >    deletion, the request will wait up to the timeout until the delete
> > is
> > > >    "complete" and return as usual.
> > > >       - This is to avoid errors due to concurrent delete requests.
> The
> > > >       end result is the same, the topic is deleted.
> > > >    5. The principal must be authorized to the "Delete" Operation on
> the
> > > >    "Topic" resource to delete the topic.
> > > >       - 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.
> > > >       6. Setting a timeout > 0 will allow the request to block until
> > the
> > > >    delete is "complete" on the controller node.
> > > >       - Complete means the local topic metadata cache no longer
> > contains
> > > >       the topic
> > > >          - The topic metadata is updated when the controller sends
> out
> > > >          update metadata requests to the brokers
> > > >       - If a timeout error occurs, the topic could still be deleted
> > > >       successfully at a later time. Its up to the client to query for
> > > the state
> > > >       at that point.
> > > >    7. Setting a timeout <= 0 will validate arguments and trigger the
> > > >    delete topics and return immediately.
> > > >       - This is essentially the fully asynchronous mode we have in
> the
> > > >       Zookeeper tools today.
> > > >       - The error code in the response will either contain an
> argument
> > > >       validation exception or a timeout exception. If you receive a
> > > timeout
> > > >       exception, because you asked for 0 timeout, you can assume the
> > > message was
> > > >       valid and the topic deletion was triggered.
> > > >    8. The request is not transactional.
> > > >       1. If an error occurs on one topic, the others could still be
> > > >       deleted.
> > > >       2. Errors are reported independently.
> > > >
> > > > QA:
> > > >
> > > >    - Why is DeleteTopicsRequest a batch request?
> > > >       - Scenarios where tools or admins want to delete many topics
> > should
> > > >       be able to with fewer requests
> > > >       - Example: Removing all cluster topics
> > > >    - What happens if some topics error immediately? Will it
> > > >    return immediately?
> > > >       - The request will block until all topics have either been
> > deleted,
> > > >       errors, or the timeout has been hit
> > > >       - There is no "short circuiting" where 1 error stops the other
> > > >       topics from being deleted
> > > >    - Why have a timeout at all? Deletes could take a while?
> > > >       - True some deletes may take a while or never finish, however
> > some
> > > >       admin tools may want extended blocking regardless.
> > > >       - If you don't want any blocking setting a timeout of 0 works.
> > > >       - Future changes may make deletes much faster. See the Follow
> Up
> > > >       Changes
> > > >       <
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-4+-+Command+line+and+centralized+administrative+operations#KIP-4-Commandlineandcentralizedadministrativeoperations-follow-up-changes
> > >
> > > section
> > > >       above.
> > > >    - Why implement "partial blocking" instead of fully async or fully
> > > >    consistent?
> > > >       - See Cluster Consistent Blocking
> > > >       <
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-4+-+Command+line+and+centralized+administrative+operations#KIP-4-Commandlineandcentralizedadministrativeoperations-cluster-consistent-blocking
> > > >
> > > >        below
> > > >    - Why require the request to go to the controller?
> > > >       - The controller is responsible for the cluster metadata and
> its
> > > >       propagation
> > > >       - See Request Forwarding
> > > >       <
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-4+-+Command+line+and+centralized+administrative+operations#KIP-4-Commandlineandcentralizedadministrativeoperations-request
> > > >
> > > >        below
> > > >
> > > > Delete Topics Response
> > > >
> > > > DeleteTopics Response (Version: 0) => [topic_error_codes]
> > > >   topic_error_codes => topic error_code
> > > >     topic => STRING
> > > >     error_code => INT16
> > > >
> > > > DeleteTopicsResponse contains a map between topic and topic creation
> > > > result error code (see New Protocol Errors
> > > > <
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-4+-+Command+line+and+centralized+administrative+operations#KIP-4-Commandlineandcentralizedadministrativeoperations-NewProtocolErrors
> > > >
> > > > ).
> > > >
> > > > Response semantics:
> > > >
> > > >    1. When a request hits the timeout, the topics that are not
> > "complete"
> > > >    will have the TimeoutException error code.
> > > >       - The topics that did complete successfully with have no error.
> > > >
> > > >
> > > The KIP is available here for reference (linked to the Create Topics
> > schema
> > > section):
> > > *
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-4+-+Command+line+and+centralized+administrative+operations#KIP-4-Commandlineandcentralizedadministrativeoperations-DeleteTopicsRequest(KAFKA-2946)
> > > <
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-4+-+Command+line+and+centralized+administrative+operations#KIP-4-Commandlineandcentralizedadministrativeoperations-DeleteTopicsRequest(KAFKA-2946)
> > > >*
> > >
> > > A sample patch is on github:
> > > https://github.com/granthenke/kafka/tree/delete-wire-new
> > > Note: This branch and patch is based on the CreateTopic
> request/response
> > > PR. I will open a PR once that patch is complete.
> > >
> > > Here is a link to the past discussion on the mailing list:
> > >
> > > *
> > >
> >
> http://search-hadoop.com/m/uyzND1fokOBn6uNd2&subj=+DISCUSS+KIP+4+Delete+Topic+Schema
> > > <
> > >
> >
> http://search-hadoop.com/m/uyzND1fokOBn6uNd2&subj=+DISCUSS+KIP+4+Delete+Topic+Schema
> > > >*
> > >
> > > Thank you,
> > > Grant
> > > --
> > > Grant Henke
> > > Software Engineer | Cloudera
> > > gr...@cloudera.com | twitter.com/gchenke | linkedin.com/in/granthenke
> > >
> >
>

Reply via email to