Hi Jiuming

> Is it better to create the same number of retry/dlq topic
> partitions as the original topic?

That is what I want to change, in other words,
https://github.com/apache/pulsar/pull/22705 did this change.
But the topic name is not the same as you mentioned, the behavior is like
the below after the PR:
- create topic `t1` with `16` partitions
  - you will get `t1-partition-0`, `t1-partition-1`...`tp-partition-15`.
- after you enable DLQ, you will get the following `16` DLQs:
`t1-partition-0-{subscription}-DLQ`,
`t1-partition-1-{subscription}-DLQ`...`t1-partition-15-{subscription}-DLQ`

We can not name the DLQ as `t1-DLQ` if the primary topic is partitioned
because we can not define the behavior after users expending the partitions
of `t1` to `20`. After the PR, the DLQ related to the partitions expanded
will be created automatically, which is expected.

Thanks
Yubiao Feng

On Wed, May 15, 2024 at 1:21 AM Tao Jiuming <dao...@apache.org> wrote:

> Hi, Yubiao
>
> Is it better to create the same number of retry/dlq topic partitions as
> the original topic?
>
> I mean, if the original topic has 16 partitions, we also create 16(or some
> other numbers, can be configurable) partitions for the retry/dlq topic.
>
> If the topic/partition is a retry/dlq topic, it's name matches the
> pattern:
> `{topic}-partition-{n}-{subscription}-DLQ`, right?
>
> Can we just parse the name and then get the origin topic name, and create
> retry/dlq topic with the same partitions?
>
> Say, if client wants to create
> `persistent://public/default/some_topic-partition-1-test_sub-DLQ`,
> we parse the topic name, then we get the origin topic name
> `persistent://public/default/some_topic` and the subscription name
> `test_sub`.
> After this, we look up the number of partitions of the origin topic, for
> instance, 16 partitions, in the last, create a partitioned topic
> `admin.topics.createPartitionedTopic("persistent://public/default/some_topic-test_sub-DLQ",
> 16)`.
>
> And we can also increase the retry/dlq topic partitions if the origin
> topic partitions increased.
>
> WDYT, is it feasible?
>
> Thanks,
> Tao Jiuming
>
> On 2024/05/13 18:56:01 Yubiao Feng wrote:
> > Hi community
> >
> > I want to change the behavior of DLQ/Retry Topic auto creation.
> >
> > ### Motivation
> > After you set `defaultNumPartitions` to `16`, you will get `16`
> partitions
> > per topic, and `16*16` DLQ partitions per subscription, you will get a
> huge
> > number of DLQs if you have more than one subscription under one topic.
> For
> > example:
> > - create topic `t1` with `16` partitions
> > - you will get `t1-partition-0`, `t1-partition-1`...`tp-partition-15`.
> > - after you enable DLQ, you will get the following `16*16` DLQs per
> > subscription
> >   - `t1-partition-0-{subscription}-DLQ-partition-0`
> >   - `t1-partition-0-{subscription}-DLQ-partition-1`
> >   - ...
> >   - `t1-partition-15-{subscription}-DLQ-partition-15`
> >   - `t1-partition-1-{subscription}-DLQ-partition-0`
> >   - `t1-partition-1-{subscription}-DLQ-partition-1`
> >   - ...
> >   - ...
> >   - ...
> >   - `t1-partition-15-{subscription}-partition-15`
> >
> > ### Goal
> > - Do not create partitioned DLQs/Retry topics automatically.
> > - Users can also create partitioned DLQ manually if they need it.
> >
> > I have drafted a PR, please take a look
> > - https://github.com/apache/pulsar/pull/22705
> >
> > Thanks
> > Yubiao Feng
> >
>

Reply via email to