6 comments

[ 3.4 ms ] story [ 18.8 ms ] thread
Hi,

Does anyone have any idea on scaling high traffic sites in Common Lisp? Does any existing server or framework store session objects on disk? So far I couldn't find a CL client for memcached, are there any other ways to handle caching?

My impression is that the Lisp development community is fairly small, and there's a serious lack of available software -- e.g. check Freshmeat. It looks like a lot of it ends up being DIY. I'm not sure how much start-up secrecy plays into that, where once you've done the work to implement something in Lisp, you don't want to immediately share that with everyone else.
We are moving to using an Apache server with modlisp http://www.fractalconcept.com/asp/G2a5/sdataQIbvOFvsMNhMDM==/sdataQuvY9x3g$ecX with the lisp side sending html to Apache. We're using and very happy with the Allegroserve html macro, and are currently using Aserve's webactions for session control only. We're worried about the scalability of webaction's session, so our current plan is to write a new session control module ourselves. If there are any other Lispers planning to scale their webapplication who need sessions, maybe we could band together and create an opensource web session solution?
Storing objects to disk in Lisp is frequently pretty straightforward; you can just print the object to a text file and compress said text file. I've never done anything large myself, so I can't vouch for the scalability of this method, but it seems like it'd work pretty well. One of the many very nice things about CL is that most objects print as something that can be losslessly read back in by 'read'. Also, you can define such print representations for your objects, and it's easy to do because you have full access to the reader.

Also, it's not terribly difficult to write interfaces to C libraries; CFFI makes it very nice, although not as nice as Chicken.