Concurrent Blocking MultiLane + Thoughts on Scala+Node.js+Akka
MultiLane – A Concurrent Blocking Multiset offers some interesting reading in between coding Scala, and pondering on Akka+Node.js.
We introduce an extremely simple transformation that allows composition of a more scalable concurrent blocking multiset, or bag, from multiple “lanes” of a potentially less scalable underlying multiset. Our design disperses accesses over the various lanes, reducing contention and memory coherence hot spots. Implemented in Java, for instance, we construct a multiset from multiple lanes of java.util.concurrent.SynchronousQueue [9] that yields more than 8 times the aggregate throughput of a single instance of SynchronousQueue when run on a 64-way Sun Niagara-2 system with 16 producer threads and 16 consumer threads. We experimented with various queues from java.util.conconcurrent and found that in general a MultiLane form will outperform its underlying counterpart
On the Scala road, essentially I’m interested in an architecture that leverage HTML5 SPI, Socket.IO/node.js for the last mile, and Scala/akka on the backend.
I’ve briefly looked at Typesafe, and see the appropriate buzz words, but I’m currently not 100% clear if Play 2.0 will delivery from a Node.js perspective – maybe I’ve missed something on the sites. vasilrem offers a read on “node.js and Scala without mediators” and “Building COMET applications with Redis PubSub, Atmosphere and Akka”
