You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Christian Schneider (Jira)" <ji...@apache.org> on 2021/02/22 16:18:00 UTC
[jira] [Updated] (SLING-10154) Allow to seamlessly move clients to
different set of topics
[ https://issues.apache.org/jira/browse/SLING-10154?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Christian Schneider updated SLING-10154:
----------------------------------------
Description:
The offset of a message is only valid in the context of a messaging system (by url) and topic name. So we must key the offsets we store by these two identifiers.
We can create the new URL(messagingUrl).getHost() + "#" + JcrUtil.escapeIllegalJcrChars(topicName)_._
We then store the processed package offset by this key instead of the old "package" identifier.
When the env is new or we switch to a not yet used key there is no stored offset. In this case we should get the latest offset of the topic and assign to it. This way we avoid reprocessing of all messages. Additionally this can be used to reset the offset by removing the stored key path from the repository and restart the publish farm.
After the restart the offset would be repopulated with the latest offset. This would reset the queues.
Additionally we change the precondition code to skip packages earlier than the earliest confirmed package offset. This way we avoid that publish hangs waiting on a status it can never reveive as golden publish started with a higher latest offset.
To reset offsets a JMX bean is provided to allow to reset the local stores.
> Allow to seamlessly move clients to different set of topics
> -----------------------------------------------------------
>
> Key: SLING-10154
> URL: https://issues.apache.org/jira/browse/SLING-10154
> Project: Sling
> Issue Type: Improvement
> Components: Content Distribution
> Reporter: Christian Schneider
> Assignee: Christian Schneider
> Priority: Major
> Fix For: Content Distribution Journal Core 0.1.18
>
>
> The offset of a message is only valid in the context of a messaging system (by url) and topic name. So we must key the offsets we store by these two identifiers.
> We can create the new URL(messagingUrl).getHost() + "#" + JcrUtil.escapeIllegalJcrChars(topicName)_._
> We then store the processed package offset by this key instead of the old "package" identifier.
> When the env is new or we switch to a not yet used key there is no stored offset. In this case we should get the latest offset of the topic and assign to it. This way we avoid reprocessing of all messages. Additionally this can be used to reset the offset by removing the stored key path from the repository and restart the publish farm.
> After the restart the offset would be repopulated with the latest offset. This would reset the queues.
> Additionally we change the precondition code to skip packages earlier than the earliest confirmed package offset. This way we avoid that publish hangs waiting on a status it can never reveive as golden publish started with a higher latest offset.
> To reset offsets a JMX bean is provided to allow to reset the local stores.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)