You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pulsar.apache.org by Joo Hyuk Kim <be...@gmail.com> on 2023/06/25 08:31:14 UTC

[DISCUSS] Provide consistent concept around partitioned topic and topic partition/internal topic

Hi community:

Currently, it seems like there is no good definition of what "partitioned
topic" and "non-partitioned topic" mean and some places topic
partition and internal
topic interchangeably.

I would like to propose to vote (or discuss) to come up with solid
definition of what composes "partitioned topic", then apply to pulsar-site,
javadoc, and TopicName API accordingly.

Let me know what you think


# ISSUE https://github.com/apache/pulsar/issues/20622  Regards Joo Hyuk,
Kim (Vince)

Re: [DISCUSS] Provide consistent concept around partitioned topic and topic partition/internal topic

Posted by Yufan Sheng <sy...@gmail.com>.
I just treat the partitioned topic as a set of named non-partitioned
topics. Pulsar doesn't really have any partitioned definition. So the
non-partitioned topics would be the partition of the partitioned
topic.

I think the real confusion is that we can create the non-partitioned
topic independently. While most use won't manage the non-partitioned
topic and use such feature.

On Wed, Jun 28, 2023 at 6:30 AM Michael Marshall <mm...@apache.org> wrote:
>
> I agree that the terminology is confusing. On a practical note, that
> confusion likely caused this bug [0].
>
> > I'd like to say "a partitioned topic is a topic that consists of
> > multiple non-partitioned topics". It's better not to use the "internal
> > topic" concept.
>
> +1
>
> In general, I think the equivocation for partitioned topic and
> non-partitioned topic is meant to simplify the abstraction for users.
> Partitioned topics are generally thought of as a single topic.
> However, advanced use cases can leverage the fact that a partitioned
> topic is composed of non-partitioned topics. That being said, when we
> document what a partitioned topic is, we should say that it is made of
> non-partitioned topics.
>
> In looking at your GitHub issue, I agree that the method names are not
> ideal for the TopicName class. We can certainly deprecate methods and
> add new ones.
>
> One additional problem is that we have too many string equality checks
> to determine if one topic is equal to another. There are many method
> parameters in the Pulsar code base that are named "topicName" and are
> of type String. These checks led to this bug [0].
>
> I think it would be better to use the TopicName object more and to
> rely on the TopicName methods to implement equality/comparison checks.
>
> Thanks,
> Michael
>
> [0] https://github.com/apache/pulsar/pull/20392
>
> Further, in pulsar, a "topic name" can be either a partitioned or a
> non partitioned topic.
>
>
> On Sun, Jun 25, 2023 at 8:13 AM Yunze Xu <xy...@apache.org> wrote:
> >
> > I'd like to say "a partitioned topic is a topic that consists of
> > multiple non-partitioned topics". It's better not to use the "internal
> > topic" concept.
> >
> > Thanks,
> > Yunze
> >
> > On Sun, Jun 25, 2023 at 4:31 PM Joo Hyuk Kim <be...@gmail.com> wrote:
> > >
> > > Hi community:
> > >
> > > Currently, it seems like there is no good definition of what "partitioned
> > > topic" and "non-partitioned topic" mean and some places topic
> > > partition and internal
> > > topic interchangeably.
> > >
> > > I would like to propose to vote (or discuss) to come up with solid
> > > definition of what composes "partitioned topic", then apply to pulsar-site,
> > > javadoc, and TopicName API accordingly.
> > >
> > > Let me know what you think
> > >
> > >
> > > # ISSUE https://github.com/apache/pulsar/issues/20622  Regards Joo Hyuk,
> > > Kim (Vince)

Re: [DISCUSS] Provide consistent concept around partitioned topic and topic partition/internal topic

Posted by Michael Marshall <mm...@apache.org>.
I agree that the terminology is confusing. On a practical note, that
confusion likely caused this bug [0].

> I'd like to say "a partitioned topic is a topic that consists of
> multiple non-partitioned topics". It's better not to use the "internal
> topic" concept.

+1

In general, I think the equivocation for partitioned topic and
non-partitioned topic is meant to simplify the abstraction for users.
Partitioned topics are generally thought of as a single topic.
However, advanced use cases can leverage the fact that a partitioned
topic is composed of non-partitioned topics. That being said, when we
document what a partitioned topic is, we should say that it is made of
non-partitioned topics.

In looking at your GitHub issue, I agree that the method names are not
ideal for the TopicName class. We can certainly deprecate methods and
add new ones.

One additional problem is that we have too many string equality checks
to determine if one topic is equal to another. There are many method
parameters in the Pulsar code base that are named "topicName" and are
of type String. These checks led to this bug [0].

I think it would be better to use the TopicName object more and to
rely on the TopicName methods to implement equality/comparison checks.

Thanks,
Michael

[0] https://github.com/apache/pulsar/pull/20392

Further, in pulsar, a "topic name" can be either a partitioned or a
non partitioned topic.


On Sun, Jun 25, 2023 at 8:13 AM Yunze Xu <xy...@apache.org> wrote:
>
> I'd like to say "a partitioned topic is a topic that consists of
> multiple non-partitioned topics". It's better not to use the "internal
> topic" concept.
>
> Thanks,
> Yunze
>
> On Sun, Jun 25, 2023 at 4:31 PM Joo Hyuk Kim <be...@gmail.com> wrote:
> >
> > Hi community:
> >
> > Currently, it seems like there is no good definition of what "partitioned
> > topic" and "non-partitioned topic" mean and some places topic
> > partition and internal
> > topic interchangeably.
> >
> > I would like to propose to vote (or discuss) to come up with solid
> > definition of what composes "partitioned topic", then apply to pulsar-site,
> > javadoc, and TopicName API accordingly.
> >
> > Let me know what you think
> >
> >
> > # ISSUE https://github.com/apache/pulsar/issues/20622  Regards Joo Hyuk,
> > Kim (Vince)

Re: [DISCUSS] Provide consistent concept around partitioned topic and topic partition/internal topic

Posted by Yunze Xu <xy...@apache.org>.
I'd like to say "a partitioned topic is a topic that consists of
multiple non-partitioned topics". It's better not to use the "internal
topic" concept.

Thanks,
Yunze

On Sun, Jun 25, 2023 at 4:31 PM Joo Hyuk Kim <be...@gmail.com> wrote:
>
> Hi community:
>
> Currently, it seems like there is no good definition of what "partitioned
> topic" and "non-partitioned topic" mean and some places topic
> partition and internal
> topic interchangeably.
>
> I would like to propose to vote (or discuss) to come up with solid
> definition of what composes "partitioned topic", then apply to pulsar-site,
> javadoc, and TopicName API accordingly.
>
> Let me know what you think
>
>
> # ISSUE https://github.com/apache/pulsar/issues/20622  Regards Joo Hyuk,
> Kim (Vince)