> It makes sense, for non-persistent topic, it should not create a durable > subscription.
Agree. But we need to take care of the compatibility. How do we handle this compatibility? BR, Zike Yang On Thu, Feb 9, 2023 at 2:43 PM Jiuming Tao <jm...@streamnative.io.invalid> wrote: > > > We can add validation to inform the user that a durable subscription on a > > non-persistent topic is invalid. > > It makes sense, for non-persistent topic, it should not create a durable > subscription. > > Thanks, > Tao Jiuming > > > 2023年2月8日 23:06,Baodi Shi <ba...@apache.org> 写道: > > > >> > >> But it seems that currently all Durable subscriptions on > >> > > non-persistent topics are NonDurable, and I wonder if that confuses > >> users. > >> > > > > We can add validation to inform the user that a durable subscription on a > > non-persistent topic is invalid. > > > > > > Thanks, > > Baodi Shi > > > > > > 在 2023年2月8日 10:48:32 上,Zike Yang <z...@apache.org> 写道: > > > >> I agree to remove all subscriptions when there're no consumers on the > >> non-persistent topic. The configuration > >> `subscriptionExpirationTimeMinutes ` should not take effect on the > >> non-persistent topic. > >> > >> But it seems that currently all Durable subscriptions on > >> non-persistent topics are NonDurable, and I wonder if that confuses > >> users. > >> > >>> But for `NonPersistentDispatcherMultipleConsumers`, > >> `NonPersistentStickyKeyDispatcherMultipleConsumers`, I’m not sure that > >> if it matters when we auto delete the subscriptions which has no > >> consumers connected. > >> > >> It doesn't matter IMO. > >> > >> Thanks, > >> Zike Yang > >> > >> > >> > >> Zike Yang > >> > >> On Tue, Feb 7, 2023 at 9:22 PM Jiuming Tao > >> <jm...@streamnative.io.invalid> wrote: > >> > >> > >>> I think we are talking about the durable subscription of the > >> non-persistent > >> > >>> topic, right? > >> > >> > >> Yes, non-durable subscriptions created by Reader, if the reader > >> disconnected, the subscription will be deleted automatically. > >> > >> > >> > >> For `NonPersistentDispatcher`, it has the following implementations: > >> > >> 1. NonPersistentDispatcherMultipleConsumers > >> > >> 2. NonPersistentDispatcherSingleActiveConsumer > >> > >> 3. NonPersistentStickyKeyDispatcherMultipleConsumers > >> > >> > >> For `NonPersistentDispatcherSingleActiveConsumer`, auto delete the > >> subscription when there isn’t consumer connected affect nothing. > >> > >> > >> But for `NonPersistentDispatcherMultipleConsumers`, > >> `NonPersistentStickyKeyDispatcherMultipleConsumers`, I’m not sure that if > >> it matters when we auto delete the subscriptions which has no consumers > >> connected. > >> > >> > >> If it doesn’t matter, I agree with you. > >> > >> > >> Auto delete the durable subscriptions when there aren’t consumers > >> connected to the non-persistent topic. > >> > >> > >> > >> Thanks, > >> > >> Tao Jiuming > >> > >> > >> > >>> 2023年2月7日 19:58,PengHui Li <peng...@apache.org <mailto: > >> peng...@apache.org>> 写道: > >> > >>> > >> > >>> I think we are talking about the durable subscription of the > >> non-persistent > >> > >>> topic, right? For the Reader API (non-durable subscription), the > >> > >>> subscription will be > >> > >>> removed after the reader disconnects. If not, it should be BUG. > >> > >>> > >> > >>> IMO, we should remove the subscription automatically if all the consumers > >> > >>> are disconnected for the non-persistent topic. The consumers can only get > >> > >>> the new incoming messages after they connect to the non-persistent topic. > >> > >>> It looks like even if we leave the subscription there; it will > >> > >>> help nothing. > >> > >>> The behavior should be the same as creating a new subscription with the > >> > >>> same subscription name. > >> > >>> > >> > >>> For subscription management, users are not able to disable the > >> subscription > >> > >>> auto-creation of the non-persistent topic? We don't have any metadata > >> > >>> persist > >> > >>> in the metadata store. After the broker restarts, we will lose > >> everything. > >> > >>> > >> > >>> So I think we don't need to introduce a new configuration. Instead, we > >> > >>> should > >> > >>> figure out if there is a strong reason to leave the durable subscription > >> > >>> after > >> > >>> all the consumers are disconnected. If there is no strong reason, I tend > >> to > >> > >>> fix > >> > >>> incorrect behavior directly. > >> > >>> > >> > >>> Best, > >> > >>> Penghui > >> > >>> > >> > >>> > >> > >>> > >> > >>> > >> > >>> On Tue, Feb 7, 2023 at 4:14 PM Jiuming Tao <jm...@streamnative.io.invalid > >> <mailto:jm...@streamnative.io.invalid>> > >> > >>> wrote: > >> > >>> > >> > >>>> Hi, > >> > >>>> > >> > >>>> I’ve opened a new PIP to discuss: > >> > >>>> > >> > >>>> Currently, in Pulsar, we have a configuration named > >> > >>>> `subscriptionExpirationTimeMinutes` to manage the subscription > >> expiration > >> > >>>> of `PersistentTopic` and `NonPersistentTopic`. > >> > >>>> > >> > >>>> When we set a value which is greater than 0 to > >> > >>>> `subscriptionExpirationTimeMinutes`, it will affect both > >> `PersistentTopic` > >> > >>>> and `NonPersistentTopic`. Their inactive subscriptions will get expired > >> and > >> > >>>> will clean automatically. > >> > >>>> > >> > >>>> For `NonPersistentTopic`, its subscriptions can be clean because we > >> don't > >> > >>>> guarantee its data integrity. But for `PersistentTopic`, if we clean its > >> > >>>> subscriptions automatically may lead to data loss. > >> > >>>> > >> > >>>> However, their subscription expiration is managed by the same > >> > >>>> configuration(`subscriptionExpirationTimeMinutes`), we can't manage > >> their > >> > >>>> subscription expiration independently. > >> > >>>> > >> > >>>> So I want to introduce a new configuration named > >> > >>>> `nonPersistentSubscriptionExpirationTimeMinutes` to manage > >> > >>>> `NonPersistentTopic`'s subscription expiration. > >> > >>>> > >> > >>>> > >> > >>>> Please feel free to leave your comments, the PIP link: > >> > >>>> https://github.com/apache/pulsar/issues/19448 < > >> https://github.com/apache/pulsar/issues/19448> < > >> > >>>> https://github.com/apache/pulsar/issues/19448 < > >> https://github.com/apache/pulsar/issues/19448>> > >> > >>>> > >> > >>>> > >> > >>>> Thanks, > >> > >>>> Tao Jiuming > >> > >> > >> >