Vision
Project Outline
Packages from the Debian-Distribution
are obtained from public http-mirrors. To save bandwidth our
program will function like a drop-in, stand-alone proxy for
the internal network. But in addition it will store already
requested packages locally. Packages that are not yet stored
locally are fetched upon client-request from the parent server
transparently.
Problem Statement
To write a program that improves the performance of the Linux
Debian package update and install application named apt-get.
Key high-level goals
- Reduce bandwidth usage
- Reduce download time
System features
- Handle client request
- Respond to request from client
- Request files from remote server
- Handle server responses (e.g. file not found - 404, etc.)
- Cache files locally
- If multiple clients request a specific file simultaneously,
download only once from remote server
- Handle disk usage (purge old files)
Other requirements and constraints
- Watch out for "full disk"
- Prevent "denial of service" attacks by limiting
number of threads
|