Node.Scala: implicit parallel programming for high-performance web services

  • Authors:
  • Daniele Bonetta;Danilo Ansaloni;Achille Peternier;Cesare Pautasso;Walter Binder

  • Affiliations:
  • Faculty of Informatics, University of Lugano (USI), Switzerland;Faculty of Informatics, University of Lugano (USI), Switzerland;Faculty of Informatics, University of Lugano (USI), Switzerland;Faculty of Informatics, University of Lugano (USI), Switzerland;Faculty of Informatics, University of Lugano (USI), Switzerland

  • Venue:
  • Euro-Par'12 Proceedings of the 18th international conference on Parallel Processing
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Event-driven programming frameworks such as Node.JS have recently emerged as a promising option for Web service development. Such frameworks feature a simple programming model with implicit parallelism and asynchronous I/O. The benefits of the event-based programming model in terms of concurrency management need to be balanced against its limitations in terms of scalability on multicore architectures and against the impossibility of sharing a common memory space between multiple Node.JS processes. In this paper we present Node. Scala, an event-based programming framework for the JVM which overcomes the limitations of current event-driven frameworks. Node. Scala introduces safe stateful programming for event-based services. The programming model of Node. Scala allows threads to safely share state in a standard event-based programming model. The runtime system of Node. Scala automatically parallelizes and synchronizes state access to guarantee correctness. Experiments show that services developed in Node. Scala yield linear scalability and high throughput when deployed on multicore machines.