-
-
Notifications
You must be signed in to change notification settings - Fork 113
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
Move the repo off of the server #433
Comments
If we're going to provide direct access (instead of through a CDN), then whatever block store we choose will need to support HTTPS to Java 6. |
More thoughts on this: I think it makes sense to point a separate domain at the off-disk repo If we then also keep a copy of the repo on disk, it gives us the
This sounds quite a bit like the original implementation of the Disadvantages:
|
👍 Could have used this today ;) |
This provides a tool to upload the existing repo to cloudfiles, and it uploads new deploys there as well. If that upload fails, it won't yet fail the deploy, since this is just experimental at this point.
This will allow non-clojure scripts to upload files (the pom list, maven index files, etc).
Otherwise, they end up with "application/unknown".
Once we move to the cloudfiles repo fully, we won't be able to load the pom files from disk, so we now store the data we need from the pom in the db at deploy time. This also includes a tool to update the db from existing poms.
An update on where this is at the moment:
|
Given the issues with the indexer (#534) and the fact that we'd lose rsync, we're keeping a copy of the repo on-disk for now. We have a protocol for storage (on the https://github.com/clojars/clojars-web/tree/storage-protocol branch) that handles repo operations and strives to keep the on-disk and cloudfiles versions in sync. |
This is done. |
Almost all of the usage of clojars (> 99%) is reading from the
repo. The repo is currently served as static files by nginx. If the
server goes down, the repo cannot be read. I would like to move the
repo off of the server and on to something that isn't affected by the
state of the server. A blobstore system (Amazon S3, Rackspace CBS,
etc) would be one approach, but I'm curious if there are other
options.
Whatever we move to would need the following features:
deleting artifacts)
Known impacts of this change would be:
we're replacing what is essentially a filesystem move operation with
a network operation. This would require making deployments
transactional, something that is already planned:
Deployment is not atomic #226
display in the UI (per request). Since the poms would no longer be
on disk, we would need to parse them at deploy time and insert that
data in the db.
(https://github.com/clojars/clojars-web/wiki/Data#rsync-the-whole-classic-repository) -
this would no longer be available. {{I'm curious how many people use
this? I see network spikes a couple of times a day which makes me
think at least a couple of people are rsync'ing}}
We already have code in place for uploading to s3, since it's
currently used for the releases.clojars.org repository.
The text was updated successfully, but these errors were encountered: