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

Clyde should initialize transaction only when required #137

Open
sebnow opened this issue Jul 17, 2011 · 0 comments
Open

Clyde should initialize transaction only when required #137

sebnow opened this issue Jul 17, 2011 · 0 comments

Comments

@sebnow
Copy link
Contributor

sebnow commented Jul 17, 2011

Clyde initializes a transaction at the very beginning of sync_aur_trans, which is a lot earlier than the AUR packages are actually available. The packages are downloaded at a much later date, built, and only then installed. This means there is a long duration during which database operations can not be made.

The process looks like this:

  1. initialize transaction
  2. install binary packages/dependencies
  3. find AUR packages
  4. for each AUR package; download package, build package, install package.
  5. release transaction

I think the process should look more like this:

  1. download AUR packages
  2. download AUR package sources
  3. initialize transaction,
  4. install dependencies
  5. build and install AUR packages
  6. release transaction

The AUR building step might still take a while, but it would be difficult/impossible to separate building and installing AUR packages due to build-time dependencies.

This would mean the database is not locked until required. The download step can take hours for large packages (e.g. games with lots of game data), especially with many dependencies.

Perhaps AUR dependencies can be checked prior to downloading the sources to prevent unnecessary bandwidth being used. Not sure if this already happens or not.

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

1 participant