The Coral Content Distribution Network, sometimes called Coral Cache or Coral for short, is a free peer-to-peer content distribution network designed to mirror web content. Coral uses the bandwidth of volunteers to avoid slashdotting/the Digg effect and to reduce the load on websites and other web content providers in general. This leverages the bandwidth of the participating Coral nodes as proxy servers, so it is similar to a distributed web proxy.
To access a website through the Coral cache (and thus reduce the load on the site and use the Coral network instead), one simply has to add
.nyud.net to the hostname in the site's URL. So, for example,
http://en.wikipedia.org/wiki/Main_Page<code> becomes http://en.wikipedia.org.nyud.net/wiki/Main_Page. The latter is known as a coralized link. Originally, the port was 8090, later 8080 was added in 2006 and now port 80 is used (the standard HTTP port).
One of Coral's key goals is to avoid ever creating hot spots that might dissuade volunteers from running the software for fear of load spikes. It achieves this through an indexing abstraction called a distributed sloppy hash table (DSHT); DSHTs create self-organizing clusters of nodes that fetch information from each other to avoid communicating with more distant or heavily-loaded servers.
The sloppy hash table refers to the fact that coral is made up of concentric rings of distributed hash tables (DHTs), each ring representing a wider and wider geographic range (or rather, ping range). The DHTs are composed of nodes all within some latency of each other (say a ring of nodes within 20 milliseconds of each other). It avoids hot spots (the 'sloppy' part) by only continuing to query progressively larger sized rings if they are not overburdened — i.e. if there are many hits to the top-most two rings, it will just ping the close ones, when it reaches a hit that is overloaded it stops progressing upward. This therefore decreases hot spots while at the same time limiting the amount of global knowledge. The contributions of this work are the DSHT, which are avoiding hot spots (sloppy queries), and the concentric rings.
Users who access the system are referred to a relatively close member of the system, which then finds the file on the coral DHT and forwards it to the user.
The project has been in an open beta testing phase since March 2004. During beta testing, the Coral node network is hosted on PlanetLab, a large scale distributed research network of 400 servers, instead of third party volunteer systems. Of those 400 servers, about 275 are currently running Coral. The source code is freely available under the terms of the GNU GPL.