Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

global-cache-cache-override #7

Open
hhaddouch opened this issue May 13, 2024 · 8 comments
Open

global-cache-cache-override #7

hhaddouch opened this issue May 13, 2024 · 8 comments

Comments

@hhaddouch
Copy link
Collaborator

hhaddouch commented May 13, 2024

Where a Global Cache determines that it is unable to cache a data item, the Global Cache should publish a notification message where the data download link refers to the source dataserver and the metric wmo_wis2_gc_cache_override_total is incremented by 1
More details for global-cache-cache-override are needed about the notification message; format, content, topic...

@golfvert
Copy link
Collaborator

I guess this metrics can be used when a GC decides not to cache something that should be cached. Core data with cache=true or missing directive. In this case, the notification message will be exactly the same it would have been if the original notification message had cache=false.
Not sure anything else is needed.

@kaiwirt
Copy link
Collaborator

kaiwirt commented May 15, 2024

Do we want a GC in this case to republish a message with the original link? My arguments against would be

  • The data should be cached. Which means that the originator might not want to share the data by itself
  • This contrasts cache=false where the data originator clearly states it wants to share the data by itself, so we have a different situation
  • The data might be available by other caches. So not resending the message would allow users to fetch the data from other caches which might be better than accessing the data source

How do we cope with situations where all Caches decide that they can not store the data?

@golfvert
Copy link
Collaborator

I'd view this from a user point of view... so republish as if cache=false and generate a monitoring message so that the producing centre is aware of this.
If we do something else, I'm afraid this will have an impact on users.
Like that it remains a "technicality" between GC and data producers.

@kaiwirt
Copy link
Collaborator

kaiwirt commented May 15, 2024

I am not sure it is that easy. Consider for example a data publisher only allows downloads from the GCs. In this case a cache that is not able to cache that data sends out a message with a link that does not work for the user. Instead of just not sending out a message. (The user will receive messages from other caches with links that work).

I think cache override is more related to a download error than to cache = false

@golfvert
Copy link
Collaborator

I may have misunderstood "override". For me it is not a failure. It is a decision from a GC not to cache by decision (and not failure) some data.
On failure, it should not republish a notification message. Only send a monitoring message.

@kaiwirt
Copy link
Collaborator

kaiwirt commented May 15, 2024

Yes, it is a decision from the GC. My point is that the outcome of this decision is closer to an error (i.e. the originator wants the data to be in the cache which is however not possible) than it is to cache = false (the originator does not want the cache to store the data).

My point is that to the user the consequences of receiving a message from that cache in this situation might be worse (the download link provided might not work) than to not receive that message (i.e. download the data from any other cache)

@jmaxmarno
Copy link
Collaborator

fwiw - i agree with Kai's perspective and I believe it is supported by viewing this from both the Origin, and end user cases. Override scenario:

  • the data object was intended (by the Origin) to be cached
  • the data object was not cached by the GC

This two characteristics exactly match the download failure case, and the GC should not publish a notification message.
The only difference between how a download failure scenario, and override scenario is handled is which metric should be incremented.

@golfvert
Copy link
Collaborator

Fair enough... Optimistically, I thought that overriding and nevertheless providing a notification message was doable as the origin download link may work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants