> 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 >> >> >>