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

Missing documentation #10

Open
seefood opened this issue Apr 22, 2018 · 1 comment
Open

Missing documentation #10

seefood opened this issue Apr 22, 2018 · 1 comment

Comments

@seefood
Copy link

seefood commented Apr 22, 2018

Current mysteries:

  • What does purge actually supposed to do and how to trigger the service to run it remotely?
  • What does the 'leastrecentlyused' command do that is different?
  • What does the 'transfer' command do?
  • Is 'labellog' giving me timestamps of latest check-out (usage) or checkin (creation date)?
  • It seems 'purge' ignores --objectStores and only tries to operate on the local files directly. Does that mean I can/should run local commands on the server cache while the server is running, not by talking to the API? Won't that disrupt the server if objects on disk mismatch the metadata in RAM?
  • Option --maximumDiskUsage Doesn’t seem to work in the server mode, so how does the server automatically purge LRU old images?
  • Even running out of disk-space doesn't trigger the server's purging of LRU objects. Is that normal? What should be done to correctly manage the cache of a 24/7 server? a cronjob?
  • Perhaps more, I'll gladly add them here with time if it helps.
@levioctl
Copy link
Contributor

Hi @seefood, not sure if it's relevant anymore, but still :)
I'll try to answer some of what you asked, but since i was not the original author, i may be missing some things.

  • What does purge actually supposed to do and how to trigger the service to run it remotely?
    Purge cleans files in the object store which do not reside in any label. It is currently broken (I broke it when i worked at Stratoscale, and nobody noticed since. I've now submitted a PR to fix it)

  • What does the 'leastrecentlyused' command do that is different?
    Haven't actually used it, but it seems to remove all labels (and associated objects) which do not match the given regex pattern, and out of that, remove the least recently used labels as long as disk usage is above maximumDiskUsage.

  • What does the 'transfer' command do?
    transfer copies a label and the associated objects to another object store.

  • Is 'labellog' giving me timestamps of latest check-out (usage) or checkin (creation date)?
    It's check-out dates. However there might be an issue with this command, now that i look at it; The command always reads the local label log (in /var/lib/osmosis/objectstore/labelLog), however it looks as if the server holds its own label log in memory (up to 100 records, and only beyond that it starts writing to the label log), so it looks like the output may be some missing records at the beginning.

  • It seems 'purge' ignores --objectStores and only tries to operate on the local files directly. Does that mean I can/should run local commands on the server cache while the server is running, not by talking to the API? Won't that disrupt the server if objects on disk mismatch the metadata in RAM?
    It is a problem; We used to stop the service (although once every few months) for purging, as it doesn't support purge while serving (although i'm not sure what the behavior will be. It might be that 'checkout' requests that pull objects which are not purged succeed).

  • Option --maximumDiskUsage Doesn’t seem to work in the server mode, so how does the server automatically purge LRU old images? + Even running out of disk-space doesn't trigger the server's purging of LRU objects. Is that normal? What should be done to correctly manage the cache of a 24/7 server? a cronjob?
    It doesn't :/ , it has to be done manually.

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

2 participants