By jag on Oct 20, 2006
Some folks have looked at the sources and asked "where's the database?". I'm a big believer in RAM. If I used a real database, some pages would require close to 1000 database lookups to construct. Even with all kinds of cacheing, this turns into far too much time wasted waiting for a disk to spin. Instead, I just use in-memory data structures. Every user action (a translation or a vote) adds to the data structure and to a log file. When I reboot the server, I just reprocess the logs. Given the statistics and semantics of this application, this technique works well. It's moderately straightforward to make this work well on clusters. And it's fast.