> 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> 写道:
> 
> 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>>
>> 
>> 
>> Thanks,
>> Tao Jiuming

Reply via email to