You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I was wondering if there are plans to introduce the "Pinning Consumers" mechanism as a default in Hollow.
I think it would be nice if we could know when a consumer is pinned and expose this via the metrics or the API. something like consumer.isPinned() and/or consumer.getPinnedVersion(). This could help to triage issues when you have tens/hundreds of consumers with the same dataset but because of the nature of eventual consistency, a few of them could be stuck.
I don't have a clear idea on how this could be accomplish, my guess is that the AnnouncementWatcher could be modified to support the pinning mechanism and HollowConsumer expose the information, similar to:
It would be up to the users to store the pinned version in the announcementWatcher or read it from their database/blob storage every time they need this. getPinnedVersion should be another abstract method in AnnouncementWatcher.
From the HollowProducer perspective, I think Hollow could provide a versionPinner in the builder that takes an VersionPinner (new interface). e.g.
Then, probably the HollowProducer could have a pinVersion method that takes the version number as an argument and invokes versionPinner.pin(long pinnedVersion). This way users could programmatically pin version from the producer either by background jobs based on their own business rules or as simple as expose the pinVersion as a HTTP endpoint.
Also it could have the unpin.
thoughts?
The text was updated successfully, but these errors were encountered:
rpalcolea
pushed a commit
to rpalcolea/hollow
that referenced
this issue
Jan 10, 2018
* commit '33a14107c1cc34b2c29e2daf2616ff253687b7ce':
use cinder context instead of direct impl, rely on bindings in module for impl
corrections after merging in from master
Adding cinder context in cinder-api to provide implementations for metric, configurations, logger and namespace
Hi @toolbear,
I was wondering if there are plans to introduce the "Pinning Consumers" mechanism as a default in Hollow.
I think it would be nice if we could know when a consumer is pinned and expose this via the metrics or the API. something like
consumer.isPinned()
and/orconsumer.getPinnedVersion()
. This could help to triage issues when you have tens/hundreds of consumers with the same dataset but because of the nature of eventual consistency, a few of them could be stuck.I don't have a clear idea on how this could be accomplish, my guess is that the
AnnouncementWatcher
could be modified to support the pinning mechanism andHollowConsumer
expose the information, similar to:Something like
It would be up to the users to store the pinned version in the
announcementWatcher
or read it from their database/blob storage every time they need this.getPinnedVersion
should be another abstract method inAnnouncementWatcher
.From the
HollowProducer
perspective, I think Hollow could provide aversionPinner
in the builder that takes anVersionPinner
(new interface). e.g.Then, probably the
HollowProducer
could have apin
Version method that takes the version number as an argument and invokesversionPinner.pin(long pinnedVersion)
. This way users could programmatically pin version from the producer either by background jobs based on their own business rules or as simple as expose thepinVersion
as a HTTP endpoint.Also it could have the
unpin
.thoughts?
The text was updated successfully, but these errors were encountered: