The DHD Multimedia Gallery exists as a "pro bono" source of multimedia for people who cannot produce their own or who cannot use a commercial provider. The Gallery started (as the DHD Photo Gallery) when digital cameras and scanners were relatively expensive, and so was a rare source of free/cheap digital Web graphics.
The Gallery now has encreasingly varied and comprehensive company in the genuinely-cheap/free multimedia area, which is very good news from everyone from schoolkids to Web masters!
PG2K replaces (and in some cases steals the code from) an earlier incarnation (well two: one based on shell scripts and ImageMagick, and a later variant that replaced most of the scripts with Java and wrote the entire Gallery out as a series of static HTML files (and pre-generated thumbnails, etc) so that it could be served by an ordinary Apache Web server with no CGI). The earlier "static" mechanism was very efficient and safe to serve but was starting to take more than 24 hours to rebuild, even incrementally, and had limited flexibility. It was also repeatedly overrun by greedy spiders/robots opening tens of concurrent connections each and bringing down the whole system and my expensive Internet link.
The servlet version of the Gallery has allowed the distribution to live replicas geographically distributed (in the US, UK, AU, SG, IN and CN as at October 2006), running on fairly cheap Linux and Solaris boxes from circa 1GHz/1GB capacity up to multi-CPU/multi-GB/multi-GHz boxes.
PG2K uses some live geo-sensitive load-balancing, has some i18n support, and a few interesting projects cooking (see the to-do list.)
With JDK 1.5, heavy use has been made of the the new JSR-166 concurrency utilities to improve throughput, especially RentrantLock and tryLock() and the reader/writer lock in the ExhibitDataSimpleCache, and the Semaphore in ExhibitDataHTTPTunnelSource. Also, use has been made of the improved semantics of volatile, and of the AtomicXXX types, to convert some code to being lockless. An advantage of lockless synchronisation is that it may be more efficient, but in any case it is deadlock-free!
Much effort as at the start of 2006 has been put into improving concurrency to take advantage of the many cores available in the Gallery's new T1000/Niagara/CoolThreads server.