+1 (binding) Penghui
On Tue, Jan 31, 2023 at 3:52 PM Nitin Goyal <nitin.goyal....@gmail.com> wrote: > +1 (non-binding) > > On Tue, Jan 31, 2023 at 12:29 PM guo jiwei <techno...@apache.org> wrote: > > > +1 (binding) > > > > > > Regards > > Jiwei Guo (Tboy) > > > > On Tue, Jan 31, 2023 at 2:36 PM Yunze Xu <y...@streamnative.io.invalid> > > wrote: > > > > > > +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. > > > > > -- > Regards > Nitin Goyal >