Introducing new system concepts as code change PR is really not the way to
go about making  these changes.  The semantics and use case discussion
should come first, so that they can be discussed and the implications
understood.  It's not a good experience to put this out there without
providing a meaningful explanation of  the general concept, semantics  and
use cases that applies to a general Pulsar user.  And how is this put out
as a change with doc-not-needed ?

>The current use case is to use the non-persistent topic to store the load
data used by the new load manager.

How will Pulsar users  understand this?. Non-persistent topics are a
well-defined concept.- lossy,  totally unreliable, and no guarantee of
anything, Table View is another well-defined concept - a much more
reliable construct with compacted keys. As a general Pulsar user, what
exactly does a Table View on a non-persistent topic conceptually mean? What
are the semantics?  And then there is the TTL - how does this all fit
together?

> The current use case is to use the non-persistent topic to store the load
data used by the new load manager.
So is the idea that no external user should use this new NP-TableView?
 This is a public API

 A Table with  a  totally random selection of events in it?   How does this
work for a general use case?   With this construct it is entirely possible
that two clients A & B will have totally different data in their table
views at the same time - what does that mean?    You have introduced state
into what is essentially a stateless concept (N-P topic) in Pulsar.

I am not debating the  merits/demerits of the change. It's really about how
we go about doing things.

Ideally you want to make a case for N-P TableViews, what's the semantics,
what are the use cases, limitations and anti-patterns for this change. The
community then can provide meaningful feedback, discuss the merits and
suggest improvements. You will get a better feature, with good user
documentation and clarity about how and when applications should
adopt/reject that in their solution design.

That  benefits everyone - the contributor, the community, Pulsar users, and
Pulsar architecture


On Mon, Nov 14, 2022 at 8:59 PM Kai Wang <kw...@apache.org> wrote:

> Hi Joe,
>
> > I am not sure about the semantics of TableView on a non-persistent topic.
> > What happens if the client crashes?  What is the base state for the
> table?
>
> If users use a non-persistent topic as the TableView topic, when the
> client crashes,
> the TableViews data will be lose.
>
> The current use case is to use the non-persistent topic to store the load
> data used by the new load manager. It doesn't require strong consistency
> ensure, and no need persistence.
>
>
> Thanks,
> Kai
>
> On 2022/11/14 23:03:13 Joe F wrote:
> > I am not sure about the semantics of TableView on a non-persistent topic.
> >
> >  Exactly how does this work?
> >
> >  What happens if the client crashes?  What is the base state for the
> table?
> >
> > What exactly can I expect as a user from this?
> >
> > Joe
> >
> > On Sun, Nov 13, 2022 at 8:57 PM Kai Wang <kw...@apache.org> wrote:
> >
> > > Hi, pulsar-dev community,
> > >
> > > Since the non-persistent topic support doesn't require API changes. I
> have
> > > pushed a PR to implement it, which has already been merged.
> > >
> > > See: https://github.com/apache/pulsar/pull/18375
> > >
> > > And this PIP title has been changed to `Make TableView support TTL`.
> > >
> > > PIP link: https://github.com/apache/pulsar/issues/18229
> > >
> > > Thanks,
> > > Kai
> > >
> > > On 2022/11/04 02:28:41 Kai Wang wrote:
> > > > Hi, pulsar-dev community,
> > > >
> > > > I’ve opened a PIP to discuss : PIP-221: Make TableView support read
> the
> > > non-persistent topic.
> > > >
> > > > PIP link: https://github.com/apache/pulsar/issues/18229
> > > >
> > > > Thanks,
> > > > Kai
> > > >
> > >
> >
>

Reply via email to