+1 (binding)

Thanks,
Yunze

On Tue, Jan 31, 2023 at 6:57 AM <mattisonc...@gmail.com> wrote:
>
> Hello everyone.
>
> I would like to start the vote for PIP-242 
> https://github.com/apache/pulsar/issues/19239,
> Please let me know if you have any concerns or questions.
>
> Best,
> Mattison
>
> ------- Paste original PIP content to help quote ------
>
> ### Motivation
>
> Currently, the Apache Pulsar broker allows users to create a topic name that 
> includes `-partition-`, which is confusing for our developers to identify 
> whether this is a partition of a partitioned topic. Plus, we need to add more 
> logic to be compatible with this special topic name. for example:
>
> - https://github.com/apache/pulsar/pull/19240
> - https://github.com/apache/pulsar/pull/19230
> - https://github.com/apache/pulsar/pull/19171
> - https://github.com/apache/pulsar/pull/19086
> - ...
>
> ### Goal
> This proposal wants `-partition-` to be a topic name keyword. Users can only 
> create a topic with it if the topic is partitioned. For the compatibility 
> reason, we want to Introduce a new configuration - `enableStrictTopicName` 
> for the broker to help reject creating a topic in the following cases:
> 1. Create a partitioned topic that includes `-partition-`.
> 2. Create a topic which is not a partitioned topic.
>
> **Create a topic:**
> _no corresponding partitioned topic_
>
> - persistent://public/default/local-name (passed)
> - persistent://public/default/local-name-partition-z (rejected by keyword)
> - persistent://public/default/local-name-partition-0 (rejected by keyword)
>
> _Has corresponding partitioned topic, **partitions=2** and topic partition 
> name is **persistent://public/default/local-name**_
>
> - persistent://public/default/local-name-partition-0 (passed, Because it is 
> the partition topic's sub-partition)
> - persistent://public/default/local-name-partition-z (rejected by keyword)
> - persistent://public/default/local-name-partition-4 (rejected, Because it 
> exceeds the number of maximum partitions)
>
> **Create a partitioned topic(topic metadata)**
>
> - persistent://public/default/local-name (passed)
> - persistent://public/default/local-name-partition-z (rejected by keyword)
> - persistent://public/default/local-name-partition-0 (rejected by keyword)
>
>
> ### API Changes
>
> Add a new configuration, `enableStrictTopicName=false`.
>
> ### Implementation
>
> 1. Add configuration `enableStrictTopicName=false`.
> 2. Add rejection logic when the user enables `enableStrictTopicName`.
> 4. Add warning logs to inform users that we do not recommend creating 
> non-partitioned topics with the keyword `-partition-`.
> 5. Make `enableStrictTopicName=true` in the next major release.

Reply via email to