Is this how news.ycombinator.com runs? (Ctrl+F for "Closures Simulate Subroutines")
lib.store.yahoo.net
lib.store.yahoo.net
The link name "fnid=" is a pretty strong giveaway as to what is underneath.
How are hash keys deleted? Age? Or are just the last N generated ones kept?
We keep only the most recently generated 20,000 closures. When you click on a link that says it has expired, that means either it has been purged from the closure table, or that we've restarted the server.
Doesn't MzScheme (assuming it's what Arc is built on) have first-class continuation already?
I guess this technique doesn't scale too well unless the hash table is either shared across servers or a user is kept on one server, which then causes problems of its own.
I'm guessing 20,000 closures is plenty and I've been bitten by server restarts. Out of curiosity, do you keep track of the minimum age of the 20,000th hash entry prior to deleting to make room for another? If that's something huge, it would confirm server restarts are the normal reason the "unknown fnid" message is seen.