activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From t-watana <watanabe.tak...@jp.fujitsu.com>
Subject Abount "KahaDB Cleanup" of durable subscribers including pending messages
Date Tue, 12 Jun 2018 00:14:32 GMT
My understanding is that, KahaDB rewrite the KAHA_SUBSCRIPTION_COMMAND to 
latest journal file for ease of deletion the oldeset jorunal log, 
when the durable subscriber has no pending message.

But, in the following case, "Durable Subscriber C and D" aren't rewritten
to latest journal despite they have no pending message, because 
"Durable Subscriber B" has pending messages.
I think that it's becoming difficult to delete the oldest journal.

- Durable Subscriber A, B, C, D
- Validation order of cleanup is "A, B, C, D"
- "Durable Subscriber A" has no pending message
- "Durable Subscriber B" has some pending messages
- "Durable Subscriber C" has no pending message
- "Durable Subscriber D" has no pending message

the following code is pasted from ActiveMQ 5.13.1 (MessageDatabase.java
line.1705-1732)
Why is the condition "gcCandidateSet.first() == dataFileId" necessary?

It seem that it's blocking the KahaDB cleanup routine.
It's same code of the master branch.







--
Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-Dev-f2368404.html

Mime
View raw message