WWRFC-0001

This page has been created for the discussion of Redundant Data sources, more specifically: The ability to detect a server failure and use a different server in case of that, both at startup, and throughout using the program.

Due to technical complications, I'm going to make this issue include:

The ability to test the speed of all of the servers it has, to find which one responds / transfers the fastest, at start up, and periodically throughout runtime.

As they are so inter-twined.

Proposal
At startup the program tallies up a list of all data sources, and requests a pre-specified speed test tile (It could even select seperate tiles based on a pre-configred setting of how fast the machine is, IE, ask the user what connection he/she's on and if its dialup, download a 10 KB tile, if its broadband download a 100 KB tile) from each server. Any servers that dont respond, or respond with the wrong data (MD5sum or SHA1 hash of the data files are pre-computed) get removed from the list as broken. Then, the servers can get ranked according to speed, and the client chooses the fastest one.

Periodically throughout the programs use it reranks the speed of the server it is connected to (once every .5 hours?), and compares it to the list. If its rank has changed (a lot), it re-ranks all the servers and selects a new server.

If the client is having trouble recieving a tile (Not too sure how we should work 404's, as some of the datasets reply with 404's for tiles that are missing, perhaps a certain threshold?), or is loosing connection to the server, it should pick the next server in the list.