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

x/pkgsite: split postgres.UpsertModuleVersionState into InsertModuleVersionState and UpdateModuleVersionState #39628

Open
julieqiu opened this issue Jun 17, 2020 · 1 comment

Comments

@julieqiu
Copy link
Contributor

@julieqiu julieqiu commented Jun 17, 2020

At the moment, postgres.UpsertModuleVersionState is overloaded: it is used both to insert new versions from the index, and update versions after a fetch. Refactor the following:

  • Split UpsertModuleVersionState into InsertModuleVersionState and UpdateModuleVersionState. Notably:
    • InsertModuleVersionState does not accept a code or fetch error.
    • UpdateModuleVersionState does not accept an index timestamp.
  • On fetch, call UpdateModuleVersionState and simply log NotFound errors, which would occur if the version did not come from the index

This would result in some duplicate processing, because if we fetch a version that is not in the index through the proxy, it will subsequently be added to the index. However, this would be easier to reason about: the module_version_state table should have a 1:1 correspondence with index.golang.org, and timestamps should all be correct.

Related: #39621

@AndersonQ
Copy link
Contributor

@AndersonQ AndersonQ commented Jul 7, 2020

On it :)

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

Successfully merging a pull request may close this issue.

None yet
3 participants
You can’t perform that action at this time.