Comments (4)
I thought about this feature in the past, I admit it would be a nice feature from the user's perspective, but I've decided not to implement this for different reasons.
Most importantly, because it's wasteful in terms of resources: With this feature, you can't make sure that prefetched packages are actually needed by the client. It could be the case that the client first downloads version 1 of a given package, then flexo does a prefetch of version 2, but before the client downloads version 2, the package is already updated to version 3, and the client then directly upgrades from version 1 to version 3. So, you've just wasted the mirror's bandwidth by having downloaded version 2.
Also, how do you determine which packages to prefetch? The client might have downloaded a given package and then immediately uninstalled it. If you then also prefetch those packages, this becomes even more wasteful than it already is. So you would somehow have to tell flexo which packages are actually required by the client, which would increase the complexity quite a bit.
Given that Arch Linux mirrors are hosted by volunteers who have to cover the hosting costs with their own money, I don't feel good about implementing this kind of feature.
from flexo.
I understand and respect this decision.
from flexo.
Perhaps core components could be treated differently? Everyone downloads core components. This would also afford an opportunity to test it out.
Stephen
from flexo.
Perhaps core components could be treated differently?
But core components also tend to be rather small, which makes this feature not as useful.
I just checked the packages sizes from core.db:
- Average size is around 5 MiB.
- Median size is just 304 KiB.
At first glance, it seems to me like this would introduce significant complexity in the code base, without making flexo that much more useful.
from flexo.
Related Issues (20)
- add liveness/readyness enpoints HOT 3
- Feature Request: Object Storage (S3) HOT 3
- [Potential Bug] DemarshallError(Error("unknown variant `ftp`, expected one of `http`, `https`, `rsync`", line: 1, column: 227697)) HOT 3
- [Potential Bug] JSON fallback is not used
- Docker `latest` tag not updated HOT 1
- Flexo docker fails to start: "No such file or directory", then "Unable to fetch mirrors remotely" HOT 2
- [Potential Bug] High CPU useage due to stuck fetch cycle HOT 5
- Crash on startup HOT 2
- Periodically update the cache? HOT 2
- Integration tests failing on latest build HOT 4
- Mirrors timing out in docker HOT 7
- Error compiling rustc-serialize HOT 1
- signature from <package> is invalid HOT 27
- Listen to multiple IPs HOT 1
- ARM cache issues HOT 1
- Panic on nonexistent `latency_test_results.json` due to invalid status.json format HOT 1
- Implement support for Manjaro
- Flexo stops working from time to time HOT 2
- Different mirrors serving the same package with different size HOT 4
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 flexo.