send-off works by submitting a Runnable to a newCachedThreadPool. http://stackoverflow.com/questions/11316737/managing-agent-thread-pools-in-clojure
A Runnable sent to a thread pool will have exclusive use of that thread until it completes; therefore, greater concurrency can only be achieved by more threads, and 10k connections will need 10k threads. I don't know much about asynchronous IO implementations in Clojure, but agents probably aren't what you want. Phil On 17 November 2012 13:06, Elliot <ell...@deck36.net> wrote: > Hi all, > > I'm writing a c10k-style service, i.e. suppose 10,000 concurrent > connections, mostly IO-bound. Clojure agents with `send-off` are > fantastically close to what I want conceptually, but I'm curious about the > implementation details--can anyone confirm, this would end up forking 10,000 > threads, which would presumably kill the system under context-switching > load? > > From what I understand, Erlang/Go have lightweight "actor" processes which > are not true threads and are designed to have 10,000 of them spawned at once > handling async-IO without problem. I'd prefer to stick with Clojure if > possible but need to be able to handle the connection/IO-load. > > Anyone know how this works and/or has tried this in a production system? > > Any thoughts appreciated. Thanks! > > - Elliot > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en