Comments (18)
Hi @ellisonbg,
XDG_DATA_HOME
is used by lots of other programs, not just Quilt, so changing it could break things. Also, that directory is meant to be private, so sharing it between different users is a bad idea. (E.g., Quilt stores login credentials there, not just packages.)
Moving just the quilt_packages
directory would be possible with simple code changes - though even that may be a bad idea: 1) malicious users could easily mess with others' data; 2) if two users started downloading the same package simultaneously, they'd be writing to the same files and likely corrupt the data.
The only "safe" way to do this would be a global directory that's readable by everyone, but only writeable by an admin who pre-installs a few useful packages there. Quilt almost supports reading packages from multiple directories; we've discussed using an environment variable like QUILT_PACKAGE_DIRS
, but haven't actually implemented it yet. This would be the place to do it: https://github.com/quiltdata/quilt/blob/master/compiler/quilt/tools/store.py#L85
from quilt.
from quilt.
hi Brian--
We're on it! and excited to add this to Quilt right away - this is an obvious and killer feature. In the meantime, can I ask a few "requirements" type questions:
-
what are the goal(s) of sharing the storage? to save storage space? pre-install packages for users? something else?
-
are all of your students are sharing a single Linux server/instance? if so, how are they isolated from one another (e.g. Linux user accounts?)? if not (separate instances), how do you plan to share the filesystem (e.g. NFS mounts?)? Can students run code (and install data) on their own computers/laptops? If so, is it OK that they have a copy of the data locally (e.g. disconnected operation)?
-
if you're trying to save space, what are the numbers? # of files/dataframes? typical size of each?
how many students? how much storage space do you have? etc. -
do you need to run your own registry? or can you have students use the normal public Quilt registry (which is free)? https://quiltdata.com/search/?q= If you're running your own registry instance, can we assume there's lots of bandwidth between the students' instance(s) and the registry (e.g. same AWS 'region')?
thanks!
adam
from quilt.
from quilt.
In that case, I think we have good news! A preview:
#286
Obviously, there will be docs and examples showing how to set this up and manage it... but basically, an admin can designate one or more shared director(ies) which clients access (read-only, via import) by setting an environment variable (QUILT_PACKAGE_DIRS). If a package isn't available in the user's local directory, it checks the shared directories. A share directory is simply the "local" quilt_packages directory of the admin account on the same (network) file system.
We have a few other features/changes queued for master & release (to pypi aka pip install) over the next few days, but if you're feeling adventurous, you're welcome to try this right now. We'd love the feedback.
from quilt.
from quilt.
@ellisonbg We've moved the work to a new PR, #286
from quilt.
Resolved in #286 and added to the docs here. Let us know if you run into any hiccups.
from quilt.
from quilt.
@ellisonbg: @dimaryaz will get back to you with which hash to use on master; these changes aren't on pip yet
from quilt.
Keeping issue open until release hits PyPI (better experience for students who install Quilt).
from quilt.
Installing Quilt from top of tree master will work for @ellisonbg and students:
[redacted :)]
from quilt.
Whoops. The above does not work with the new project structure. Will circle back with installation instructions.
from quilt.
from quilt.
@ellisonbg: here's the correct command to install from git master:
pip install --user 'git+https://github.com/quiltdata/quilt#subdirectory=compiler'
(You may also want to use --user
if you're not installing as root.)
from quilt.
from quilt.
Docs now sync'd with gitbook at https://docs.quiltdata.com/shared-store.html
from quilt.
Merged and released to pip:
https://github.com/quiltdata/quilt/releases/tag/2.9.0
https://pypi.python.org/pypi/quilt
Now it's just pip install quilt
for system-wide local storage.
from quilt.
Related Issues (20)
- Ability to push to custom endpoint URL HOT 6
- Add option to set object ACL (or better) for cross-account push
- Avoid streaming remote file content to generate hashes for packages HOT 3
- Allow user to set `CACHE_PATH` via env var to prevent failures in AWS Lambda HOT 1
- package ignoring locally installed versions HOT 9
- Catalog failing to render thumbnails on package view but succeeding on file view HOT 2
- Catalog does not render large Vega JSON files (created by altair) HOT 2
- Accessing package causes ascii decoding error HOT 3
- [question] Quilt and min.io? HOT 15
- Add package created and last updated timestamps part of the API response HOT 2
- Can't resolve 'jsoneditor/dist/jsoneditor.css' HOT 4
- Dependency Dashboard HOT 2
- Add a way to pre-fill metadata on push HOT 4
- Cannot retrieve the old version data HOT 1
- quilt3 verify enhancement
- Remove $ref restriction HOT 1
- Remove schema version restriction HOT 3
- add kms docs
- Quilt 2.9.15 within AWS Lambda execution HOT 3
- Support for running Quilt in an EKS pod with OpenID authentication to AWS disappeared/missing HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from quilt.