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

cache: transient plugins #2269

Open
markus2330 opened this Issue Oct 15, 2018 · 2 comments

Comments

Projects
None yet
2 participants
@markus2330
Contributor

markus2330 commented Oct 15, 2018

@mpranj we forgot that the global cache will not work at all if a single resolver is always out-of-date.

For example, if someone has mounted the "noresolver" plugin (e.g. to work with the "uname" plugin), we would always throw away the cache.

Possible solutions:

  1. Also store the transient data into the global cache (where the timestamps are) and let the resolver check if the data is unchanged. The comparison could be implemented in "noresolver" but somehow plugins would need to be invoked to get the data.
  2. have a functionality that transient data can be added to the KeySet also after cache hits. This would need changes in the "split" logic of KDB. The advantage is that this would also allow the user the exclude encrypted backends.
@mpranj

This comment has been minimized.

Contributor

mpranj commented Oct 15, 2018

Thank you for reporting and providing solutions!
I was aware of the problem in general, but not that this could be a "typical" scenario.

@mpranj mpranj referenced this issue Oct 15, 2018

Open

Global Cache #2270

0 of 6 tasks complete
@markus2330

This comment has been minimized.

Contributor

markus2330 commented Oct 17, 2018

Yes, for example the "constants" plugin actually should be even part of the default backends. So we need a solution for the "noresolver".

Of course we do not need a solution for every possible backend. For example, we might be able to live without backends returning random numbers or a timestamp (if having this conflicts heavily with a good mmap solution). At the moment we do not have such backends anyway. But of course we would need to document such limitations even if they do not limit any of the current plugins.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment