Revised Goals
Drop regions (for now)
Add mirror weighting
Drop main index "choose a region" form
Implement a more complex and dynamic action.php to handle direct links from sites
Mirror activation based on whether or not files exist (Scott did this, see sentry.pl in perl/)
Advanced logging for analytical usage reports
- Add versions
- Improve reporting capabilities
- Report over periods of time
- Charting
- Geolocation based on IP (on hold)
Aiming Upwards
We all know how dangerous thinking can be. I sat down to think, and I realized that we can make management of mirrors easier by division of labor. Some of this will require a little more abstraction on the DB side of things, but "at the end of the day", if we could manage to break up entities and define more granular relationships, we could create a system that isn't just for mozilla.org – we could create a full mirror management system for any major organization that utilizes a number of mirrors.
From my brainstorm:
- mirrors
- organizations
- products
- versions
- contacts (hey, why not)
With the addition of versions and projects, we extend in two different directions. In one, we allow for multiple orgs (not just mozilla.org – we can add paths like /pub/debian/ or /pub/gentoo/). In the other direction, we gain specificity for particular versions of each product, which is an inevitable and very natural progression (in my opinion).
Creating "contacts", kind of like frosting, is unnecessary but fun to dip your finger in and sample. Just to throw it out, it might be worth creating links to the users table, allowing any entity to be tied to a certain person. This would attach accountability or emergency contact information to particular resources. Email integration could then be utitilized. Just some dreaming.
Now, breaking down a path
–
take ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/0.10rc/firefox-1.0PRrc-i686-linux-gtk2+xft-installer.tar.gz
ftp://ftp.mozilla.org
- mirror baseurl
/pub/mozilla.org - the organization
/firefox - the product
releases/0.10rc/firefox-1.0PRrc-i686-linux-gtk2+xft-installer.tar.g - release / version
By breaking down the path we improve what we can glean from logs, broaden scope, and end up with a better DB scheme. Adding regions on top of this mix is arbitrary. Regions are external to the path and thus can simple be mapped onto the most general entity tied to a path (mirror). The existing system will maintain that relationship but it won't be utilized in the redirect script until ip-to-country becomes more of a priority. Currently mirror rating and weighting stands above geolocation.