Comments (5)
is the
clone
option only supported on particularly file systems? If so, which ones?
Here's a good summary1 of OS/FS support:
OS | FS | Copy command | System call |
---|---|---|---|
Linux | Bcachefs | cp --reflink=always |
ficlone |
Btrfs | |||
XFS | |||
OCFS2 | |||
Ext4 | Unsupported. | ||
OpenZFS | |||
FreeBSD | |||
ZFS | |||
Solaris | Oracle ZFS | cp -z |
reflink |
MacOS | APFS | cp -c |
clonefile |
HFS+ | Unsupported; non-CoW FS. | ||
Windows | NTFS | ||
ReFSv2 | Not included. | DUPLICATE_EXTENTS_TO_FILE |
And they seem to be using reflink-copy
2, which has the following to say:
At the moment Linux, Android, OSX, iOS, and Windows are supported.
Note: On Windows, the integrity information features are only available on Windows Server editions starting from Windows Server 2012. Client versions of Windows do not support these features. More Information
What does it fall back to if copy-on-write is not possible, or does it just error instead?
Currently it errors. reflink-copy
does have a simple copy fallback3 available and its being reviewed4 in uv
.
Is there a practical risk that the hardlinks break, e.g. if the cache is cleared?
I've only done simple testing so AFAICT they should be pretty safe, i.e. each hardlink is a reference so the same file on disk, and deleting a copy only deletes a reference so deleting uv's cache doesn't affect installed wheels.
Footnotes
from meltano.
cc @BTheunissen
from meltano.
In particular uv pip install --link-mode=hardlink
seems like an interesting option for boosting performance of plugin installation:
--link-mode <LINK_MODE>
The method to use when installing packages from the global cache
[default: clone]
Possible values:
- clone: Clone (i.e., copy-on-write) packages from the wheel into the site packages
- copy: Copy packages from the wheel into the site packages
- hardlink: Hard link packages from the wheel into the site packages
from meltano.
@edgarrmondragon is the clone
option only supported on particularly file systems? If so, which ones? What does it fall back to if copy-on-write is not possible, or does it just error instead? Is there a practical risk that the hardlinks break, e.g. if the cache is cleared?
from meltano.
astral-sh/uv#313 might not be a deal-breaker if we keep uv optional and instruct users to update their pip_url
s if they wanna use uv
UPDATE 2024-03-22: This will be fixed in the next uv release.
from meltano.
Related Issues (20)
- feature: System database support for AWS S3 HOT 6
- Replace use of flakeheaven with Ruff for flake8-errmsg
- docs: 404 on `/concepts/plugins/project` HOT 1
- Replace use of flakeheaven with Ruff for flake8-print
- Replace use of flakeheaven with Ruff for flake8-return
- feature: Capture run ID HOT 7
- Ruff: Enable flake8-pie, flake8-quotes and flake8-debugger
- feature: Make `pip` an explicit dependency of Meltano HOT 1
- bug: public discovery.yml is throwing 404 HOT 12
- bug: Environment variables are not passed from `.env` to the `pip install ...` subprocess
- Missing dependency wheels tracker
- feature: Make installation progress messages use logging instead of `click.echo` HOT 2
- bug: SingerMapper sets mapping configuration provided from env to null HOT 3
- bug: mysql-tap test returns Plugin configuration is invalid HOT 3
- feature: Add a `--run-id` option to `meltano el` similar to the one in `meltano run`
- bug: `meltano config <extractor> test` fails for SDK-based taps configured to use `BATCH` messages
- bug: Output of `meltano select <extractor> --list` is **visually** inconsistent between different Python 3.8-3.10 and 3.11+
- bug: Known upstream uv issues
- bug: Partial state causes failure when using a filesystem-based state backend
- bug: documentation for configuring plug-in python version HOT 1
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 meltano.